STAPL API Reference |
Modules Classes |
Communication primitives with relaxed consistency. More...
Functions | |
template<typename Handle , typename MemFun , typename... T> | |
void | stapl::unordered::async_rmi (all_locations_t, Handle const &h, MemFun const &pmf, T &&... t) |
Asynchronous RMI primitive to all locations the object exists on. More... | |
template<typename U , typename Handle , typename MemFun , typename... T> | |
void | stapl::unordered::async_rmi (location_range_wrapper< U > const &r, Handle const &h, MemFun const &pmf, T &&... t) |
Asynchronous RMI primitive to a range of locations the object exists on. More... | |
template<typename Handle , typename MemFun , typename... T> | |
void | stapl::unordered::async_rmi (unsigned int dest, Handle const &h, MemFun const &pmf, T &&... t) |
Asynchronous unordered RMI primitive. More... | |
template<typename Handle , typename MemFun , typename... T> | |
futures< typename callable_traits< MemFun >::result_type > | stapl::unordered::opaque_rmi (all_locations_t, Handle const &h, MemFun const &pmf, T &&... t) |
Asynchronous RMI primitive to all locations the object it exists on. More... | |
template<typename BinaryOperation , typename Handle , typename MemFun , typename... T> | |
runtime::binary_operation_result_t< typename callable_traits< MemFun >::result_type, BinaryOperation > | stapl::unordered::sync_reduce_rmi (BinaryOperation op, Handle const &h, MemFun const &pmf, T &&... t) |
Reduction RMI primitive. More... | |
template<typename BinaryOperation , typename Handle , typename MemFun , typename... T> | |
future< runtime::binary_operation_result_t< typename callable_traits< MemFun >::result_type, BinaryOperation >> | stapl::unordered::reduce_rmi (BinaryOperation op, Handle const &h, MemFun const &pmf, T &&... t) |
Reduction RMI primitive. More... | |
Communication primitives with relaxed consistency.
Unordered primitives may violate the RMI consistency model.
void stapl::unordered::async_rmi | ( | all_locations_t | , |
Handle const & | h, | ||
MemFun const & | pmf, | ||
T &&... | t | ||
) |
Asynchronous RMI primitive to all locations the object exists on.
The given member function is called on the object in all the locations it exists on. Any return values are discarded.
This is an unordered version of the stapl::async_rmi() that may break RMI ordering rules.
h | Handle to the target object. |
pmf | Member function to invoke. |
t | Arguments to pass to the member function. |
void stapl::unordered::async_rmi | ( | location_range_wrapper< U > const & | r, |
Handle const & | h, | ||
MemFun const & | pmf, | ||
T &&... | t | ||
) |
Asynchronous RMI primitive to a range of locations the object exists on.
The given member function is called on the object on the range r
of locations it exists on. Any return values are discarded.
This is an unordered version of the stapl::async_rmi() that may break RMI ordering rules.
r | Destination locations. |
h | Handle to the target object. |
pmf | Member function to invoke. |
t | Arguments to pass to the member function. |
void stapl::unordered::async_rmi | ( | unsigned int | dest, |
Handle const & | h, | ||
MemFun const & | pmf, | ||
T &&... | t | ||
) |
Asynchronous unordered RMI primitive.
The given member function is called on the object in the destination location. Any return values are discarded.
This function supports combining: if two or more async_rmi() calls are made to the same object, function and location one after another, then the requests are compressed and only the arguments of the requests past the first are sent, saving on space and request execution time.
This is an unordered version of the stapl::async_rmi() that may break RMI ordering rules.
dest | Destination location. |
h | Handle to the target object. |
pmf | Member function to invoke. |
t | Arguments to pass to the member function. |
futures<typename callable_traits<MemFun>::result_type> stapl::unordered::opaque_rmi | ( | all_locations_t | , |
Handle const & | h, | ||
MemFun const & | pmf, | ||
T &&... | t | ||
) |
Asynchronous RMI primitive to all locations the object it exists on.
The given member function is called on the object in all the locations it exists on. The return values are ordered by location id.
If the return values are not needed, it is recommended that unordered::async_rmi() is used.
This is an unordered version of the stapl::opaque_rmi() that may break RMI ordering rules.
h | Handle to the target object. |
pmf | Member function to invoke. |
t | Arguments to pass to the member function. |
runtime::binary_operation_result_t< typename callable_traits<MemFun>::result_type, BinaryOperation> stapl::unordered::sync_reduce_rmi | ( | BinaryOperation | op, |
Handle const & | h, | ||
MemFun const & | pmf, | ||
T &&... | t | ||
) |
Reduction RMI primitive.
The given member function is called on all locations the object is defined on with the given arguments and returns an object that is the result of the reduction using the supplied function.
If the operator op
is non-commutative, this has to be declared by using stapl::non_commutative().
This is an unordered version of the stapl::sync_reduce_rmi() that may break RMI ordering rules.
op | Reduction operator. |
h | Handle to the target object. |
pmf | Member function to invoke. |
t | Arguments to pass to the member function. |
future< runtime::binary_operation_result_t< typename callable_traits<MemFun>::result_type, BinaryOperation>> stapl::unordered::reduce_rmi | ( | BinaryOperation | op, |
Handle const & | h, | ||
MemFun const & | pmf, | ||
T &&... | t | ||
) |
Reduction RMI primitive.
The given member function is called on all locations the object is defined on with the given arguments and returns an object that is the result of the reduction using the supplied function.
If the operator op
is non-commutative, this has to be declared by using stapl::non_commutative().
This is an unordered version of the stapl::reduce_rmi() that may break RMI ordering rules.
op | Reduction operator. |
h | Handle to the target object. |
pmf | Member function to invoke. |
t | Arguments to pass to the member function. |