Dynamic load balancing for distributed arrays
Provides atomic counter-based load balancing using MPI-3 RMA. Rank 0 hosts the counter, all ranks can atomically increment it.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int64), | private, | pointer, save | :: | counter_ptr(:) | => | null() | |
| type(win_t), | private, | save | :: | counter_win | |||
| type(comm_t), | private, | save | :: | dlb_comm | |||
| logical, | private, | save | :: | dlb_initialized | = | .false. |
Finalize dynamic load balancing
Initialize dynamic load balancing
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(comm_t), | intent(in) | :: | comm |
MPI communicator to use |
Get next work unit atomically
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int64), | intent(out) | :: | counter |
Output: unique counter value (0-indexed) |