1 |
INDIRECT
-
Keep a copy of the map array distributed by BLOCK
-
Keep a list of all elements on the local processor for adjusting loop bounds
-
Inspector/executor strategy for locating nonlocal elements
-
Inspector: Gather all information needed from map array
-
Executor: Use this information to perform the computation
-
Only do the inspector once, if possible (i.e. when distributions and array access patterns stay exactly the same)
-
Allows arbitrary load balancing and communication reduction through partitioning
-
But finding the right partition is NP-complete
|