Presentation is loading. Please wait.

Presentation is loading. Please wait.

Benjamin Perry and Martin Swany University of Delaware Computer Information Science.

Similar presentations


Presentation on theme: "Benjamin Perry and Martin Swany University of Delaware Computer Information Science."— Presentation transcript:

1 Benjamin Perry and Martin Swany University of Delaware Computer Information Science

2  Background  The problem  The solution  The results  Conclusions and Future work

3  MPI programs communicate via MPI data types  MPI data types are usually modeled after native data types  Payloads are often arrays of MPI data types

4  The sending MPI library packs payload into contiguous block  The receiving MPI library unpacks payload into original form  Non-contiguous blocks incur a copy penalty  SPMD programs, particularly in homogenous environments, can use optimized packing

5  Background  The problem  The solution  The results  Conclusions and Future work

6  Users model MPI types after native types  Some fields do not need to be transmitted  Users often replace dead fields with a gap in the MPI type to align with native type

7  Smaller payload…. but  MPI type is non-contiguous ◦ Copy penalty during packing and unpacking  Multi-core machines and high-performance networks feel the cost depending on payload  Multi-core machines are becoming ubiquitous ◦ SPMD applications are ideal for these platforms

8  Background  The problem  The solution  The results  Conclusions and Future work

9  Applies only to SPMD applications  Static analysis to locate MPI data types ◦ MPI_type_struct()  Build internal representation of MPI data type ◦ MPI data type defined via library call at runtime ◦ Parameters indicate base types, consecutive instances, and displacements ◦ Def/use analysis to determine static definition

10  Look for gaps in displacement array ◦ Size of base types multiplied by consecutive array  Match MPI type to native type ◦ Analyze the types of the payload ◦ MPI type must be subset of native data structure ◦ All sends and receives with MPI type handle must also share same base types

11  Perform transformation on MPI type and native type ◦ Adjust parameters in MPI_type_struct ◦ Relocate non-transmitted fields to bottom of type  End goal: improve library performance of packing large arrays

12  Safety check ◦ Cast to a type ◦ Address-of  Except for computing displacement ◦ Non-local types  Profitability ◦ Sends / receives within loops ◦ Large arrays of MPI types in sends / receives ◦ Cost incurred by cache misses, locality by adjusting native type when native type is in loops

13  Background  The problem  The solution  The results  Conclusions and Future work

14  LLVM compiler pass  OpenMPI  Intel Core2 Quad-core 2.4gz  Ubuntu  Control: sending un-optimized data type with gap using payloads of various sizes  Tested: Rearranging gap in MPI type and native type using payloads of various sizes

15

16

17  Background  The problem  The solution  The results  Conclusions and Future work

18  MPI data types modeled after native data types  Users introduce gaps, making data noncontiguous and costly to pack on fast networks  Discover this scenario at compile time  Fix it if safe and profitable  Greatly improves multi-core performance; infiniband also receives boost.

19  Data type fission with user-injected gaps ◦ Separate transmitted fields from non-transmitted fields ◦ Complete eliminates data copy during packing  Data type fission with non-used fields ◦ Perform analysis on receiving end to see which fields are actually being used ◦ Cull non-used fields from data type; perform fission

20 ? ? ? ? ?


Download ppt "Benjamin Perry and Martin Swany University of Delaware Computer Information Science."

Similar presentations


Ads by Google