I found there's no something like operator[] in request_pool, so that it is impossible to start or wait a request independently (not even possible if using another std::vector<request*> since reference to requests cannot be accessed after being pushed into the pool). For example, operation like this seems not possible for now:
mpl::prequest_pool send;
...
send.start(i)
...
send.wait(i)
...
Is there any way to start or wait a single request in the request pool? If not possible, is it better to add an operator[] or start and wait with index?
Update: I check the implementation and I think start and wait with index should be preferred. However, for completeness, there should also be an indexed version of get_status but it has been occupied by another member function for accessing status list, returned by MPI_Wait/Testall/some/any.
I found there's no something like
operator[]inrequest_pool, so that it is impossible tostartorwaita request independently (not even possible if using anotherstd::vector<request*>since reference to requests cannot be accessed after being pushed into the pool). For example, operation like this seems not possible for now:Is there any way to
startorwaita single request in the request pool? If not possible, is it better to add anoperator[]orstartandwaitwith index?Update: I check the implementation and I think
startandwaitwith index should be preferred. However, for completeness, there should also be an indexed version ofget_statusbut it has been occupied by another member function for accessing status list, returned byMPI_Wait/Testall/some/any.