Chaoran Yang, Portable, MPI-Interoperable Coarray Fortran

Slides

The past decade has seen the advent of a number of parallel programming models such as Coarray Fortran (CAF), Unified Parallel C, X10, and Chapel. Despite the productivity gains promised by such programming models, most parallel scientific applications are slow to adopt these models and continue to rely on MPI as their data movement model of choice. One of the reasons for this trend is that it is not easy for users to incrementally adopt these newer programming models within their existing MPI applications. Because most of these new programming models have their own runtime systems, using multiple programming models within a single application duplicates runtime resources and is potentially error-prone. Such independent runtime systems for each programming model were deemed necessary because MPI was considered insufficient to play this role for these languages.

With the recently released MPI-3, however, several new capabilities have been added to MPI, including a much more comprehensive one-sided communication framework. In this paper, we investigate whether MPI-3 can form a runtime system for one example programming model, CAF, with a broader goal of enabling a single application to use both MPI and CAF simultaneously without duplicating runtime resources.