Abstract
High performance scientific applications are frequently multiphysics codes composed from single-physics programs, or have a functional decomposition based on physics as well as a domain decomposition for parallelism. In either case, dividing the application into independent components that can be developed and tested separately is useful. This requires a fast and efficient mechanism to share the large parallel data structures that are used in scientific applications. The “ M× Nproblem” is the transfer of data between two scientific parallel programs with different numbers of processes on each side. We present a solution to the M× Nproblem based on an I/O message passing interface (MPI). In this solution, the client application reads and writes data using the standard MPI I/O, but instead of going to hard drives the data are streamed in parallel between module programs working together on an integrated simulation. This approach builds on existing technology, emphasizes the easy migration of current applications, and simplifies the unit testing of the components while maintaining parallel high performance throughout the application. It also does not require a component to know how many processes another communicating component has.
Get full access to this article
View all access options for this article.
