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

Descripción completa

Detalles Bibliográficos
Autores: Piñeiro Pomar, César Alfredo, Vázquez Álvarez, Álvaro, Pichel Campos, Juan Carlos
Tipo de recurso: artículo
Fecha de publicación:2025
País:España
Institución:Universidad de Santiago de Compostela (USC)
Repositorio:Minerva. Repositorio Institucional de la Universidad de Santiago de Compostela
Idioma:inglés
OAI Identifier:oai:minerva.usc.gal:10347/43130
Acceso en línea:https://hdl.handle.net/10347/43130
Access Level:acceso abierto
Palabra clave:Parallel computing
MPI
Bindings
Java
Go
Descripción
Sumario: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).