Towards universal MPI bindings for enhanced new language support

In the field of High Performance Computing (HPC), Message Passing Interface (MPI) is the most widely used and prevalent programming model. Only the low-level programming languages C, C++, and Fortran have bindings available in the standard. Although there are attempts to provide MPI bindings for oth...

Full description

Bibliographic Details
Authors: Piñeiro Pomar, César Alfredo, Vázquez Álvarez, Álvaro, Pichel Campos, Juan Carlos
Format: article
Publication Date:2025
Country:España
Institution:Universidad de Santiago de Compostela (USC)
Repository:Minerva. Repositorio Institucional de la Universidad de Santiago de Compostela
Language:English
OAI Identifier:oai:minerva.usc.gal:10347/43130
Online Access:https://hdl.handle.net/10347/43130
Access Level:Open access
Keyword:Parallel computing
MPI
Bindings
Java
Go
Description
Summary:In the field of High Performance Computing (HPC), Message Passing Interface (MPI) is the most widely used and prevalent programming model. Only the low-level programming languages C, C++, and Fortran have bindings available in the standard. Although there are attempts to provide MPI bindings for other programming languages, these may be limited, which could lead to incompatibilities, performance overhead, and functional gaps. To address those problems, we present MPI4All, a brand-new tool designed to make the process of developing effective MPI bindings for any programming language more straightforward. Support for additional languages can be added with little difficulty, and MPI4All is independent of the MPI implementation. Programming language binding generators for Go and Java are included in the most recent version of MPI4All. We demonstrate their good performance results with respect to other state-of-the-art approaches. This work is an extended version of the ICCS-2024 conference paper (Piñeiro et al., 2024).