Adapting Code for DM Parallelism
Identify data dependencies and assure coherency, perhaps through message passing:
- High conceptual effort
- Low coding effort; little impact on source
Restructure single-address-space code to work in multiple distributed memories
- Identify and translate loop constructs to iterate over only that part of the domain that is local to the processor.
- Deal with global-local index disassociation that arises from partitioning the global domain across local memories.
- references to local memory (array indices) must be treated as local indices
- references to position within the global domain (boundary tests) must be treated as global indices
- Low conceptual effort
- High coding effort, high impact on source
Leverage: relatively small investment in tool development can yeild significant productivity benefits
Follow-on tools to address coherency will provide significant benefits for supporting same-source model software