HDOT – an Approach Towards Productive Programming of Hybrid Applications
MPI applications matter. However, with the advent of many-core processors, traditional MPI applications are challenged to achieve satisfactory performance. This is due to the inability of these applications to respond to load imbalances, to reduce serialization imposed by synchronous communication patterns, to overlap communication with computation and finally to deal with increasing memory overheads. The MPI specification provides asynchronous calls to mitigate some of these factors. However, application developers rarely make the effort to apply them efficiently. In this work, we present a methodology to develop hybrid applications called Hierarchical Domain Over-decomposition with Tasking (HDOT), that reduces programming effort by emphasizing the reuse of data partition schemes from process-level and applying them on task-level, allowing a top-down approach to express concurrency and allowing a natural coexistence between MPI and shared-memory programming models. Our integration of MPI and OmpSs-2 shows promising results in terms of programmability and performance measured on a set of applications.
READ FULL TEXT