MPI4All: Universal Binding Generation for MPI Parallel Programming

Message Passing Interface (MPI) is the predominant and most extensively utilized programming model in the High Performance Computing (HPC) area. The standard only provides bindings for the low-level programming languages C, C++, and Fortran. While efforts are being made to offer MPI bindings for other programming languages, the support provided may be limited, potentially resulting in functionality gaps, performance overhead, and compatibility problems. To deal with those issues, we introduce MPI4All, a novel tool aimed at simplifying the process of creating efficient MPI bindings for any programming language. MPI4All is not dependent on the MPI implementation, and adding support for new languages does not require significant effort. The current version of MPI4All includes binding generators for Java and Go programming languages. We demonstrate their good performance with respect to other state-of-the-art approaches.

keywords: Parallel Computing, MPI, Bindings, Java, Go