Improving interoperability between OmpSs and MPI
Tutor / director / evaluatorLabarta Mancho, Jesús José
CovenanteeBarcelona Supercomputing Center
Document typeMaster thesis
Rights accessOpen Access
Programming tools and application libraries are the second level of the software stack in HPC systems, on top of the operative system and the middleware. They allow users to build their applications and simplify their development. In addition, these tools and libraries are specifically designed and optimized to make the most efficient use of the processors installed in these systems. The following generations of computers will introduce many new challenges to HPC software development. As an example, Sunway TaihuLight supercomputer, a Chinese supercomputer among the most powerful computer systems in the world, incorporates 260 cores per processor with an unusual memory hierarchy. Maintaining such level of complexity in an application is unfeasible. Furthermore, applications dealing with these hardware particularities would not be portable, requiring constant changes when moving from one system to another. Message passing libraries and parallel programming frameworks are one of the core parts in HPC systems, that cope with the details of their hardware components and provide a standard interface to applications, allowing these to run on multiple compute nodes while maintaining portability. Current software efforts tend towards moving the common software parts to specialized libraries, meanwhile applications are left with the specific logic of the problem they are meant to solve. Therefore, being able to combine these libraries in an application is essential. In this work, we present OmpSs-MPI interoperability library. This library is conceived to simplify the development of hybrid programs with OmpSs (a parallel programming framework) and MPI (a message passing library). In addition, it paves the way for existing OmpSs-only or MPI-only applications to adopt the benefits of MPI and OmpSs models respectively.