|
SimGrid 3.7.1
Scalable simulation of distributed systems
|
Parallel map. More...
Typedefs | |
| typedef struct s_xbt_parmap * | xbt_parmap_t |
| Parallel map data type (opaque type) | |
Enumerations | |
| enum | e_xbt_parmap_mode_t { XBT_PARMAP_POSIX, XBT_PARMAP_FUTEX, XBT_PARMAP_BUSY_WAIT, XBT_PARMAP_DEFAULT } |
| Synchronization mode of the worker threads of a parmap. More... | |
Functions | |
| xbt_parmap_t | xbt_parmap_new (unsigned int num_workers, e_xbt_parmap_mode_t mode) |
| Creates a parallel map object. | |
| void | xbt_parmap_destroy (xbt_parmap_t parmap) |
| Destroys a parmap. | |
| void | xbt_parmap_apply (xbt_parmap_t parmap, void_f_pvoid_t fun, xbt_dynar_t data) |
| Applies a list of tasks in parallel. | |
| void * | xbt_parmap_next (xbt_parmap_t parmap) |
| Returns a next task to process. | |
Parallel map.
A function is applied to all elements of a dynar in parallel with n worker threads. The worker threads are persistent until the destruction of the parmap.
If there are more than n elements in the dynar, the worker threads are allowed to fetch themselves remaining work with xbt_parmap_next() and execute it.
| enum e_xbt_parmap_mode_t |
| xbt_parmap_t xbt_parmap_new | ( | unsigned int | num_workers, |
| e_xbt_parmap_mode_t | mode | ||
| ) |
Creates a parallel map object.
| num_workers | number of worker threads to create |
| mode | how to synchronize the worker threads |
| void xbt_parmap_destroy | ( | xbt_parmap_t | parmap | ) |
Destroys a parmap.
| parmap | the parmap to destroy |
| void xbt_parmap_apply | ( | xbt_parmap_t | parmap, |
| void_f_pvoid_t | fun, | ||
| xbt_dynar_t | data | ||
| ) |
Applies a list of tasks in parallel.
| parmap | a parallel map object |
| fun | the function to call in parallel |
| data | each element of this dynar will be passed as an argument to fun |
| void* xbt_parmap_next | ( | xbt_parmap_t | parmap | ) |
Returns a next task to process.
Worker threads call this function to get more work.
| Back to the main Simgrid Documentation page |
The version of SimGrid documented here is v3.7.1. Documentation of other versions can be found in their respective archive files (directory doc/html). |
Generated by
|