Abstract:
|
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. |