Template Function shad::rt::asyncExecuteOnAll(Handle&, FunT&&, const InArgsT&)

Function Documentation

template <typename FunT, typename InArgsT>
void shad::rt::asyncExecuteOnAll(Handle &handle, FunT &&func, const InArgsT &args)

Execute a function on all localities asynchronously.

Typical Usage:

struct Args {
  int a;
  char b;
};

void task(Handle & handle, const Args & args) {  /* do something */ }

Args args { 2, 'a' };
Handle handle;
asyncExecuteOnAll(handle, task, args);
/* do something else */
waitForcompletion(handle);

Template Parameters
  • FunT: The type of the function to be executed. The function prototype must be:
    void(Handle &, const InArgsT &);
    
  • InArgsT: The type of the argument accepted by the function. The type can be a structure or a class but with the restriction that must be memcopy-able.
Parameters
  • handle: An Handle for the associated task-group.
  • func: The function to execute.
  • args: The arguments to be passed to the function.