Основные изменения в MPI 5.0
5 июня 2025 вышла новая версия стандарта MPI 5.0, которая включает значительные изменения относительно MPI 4.1 (major update). Добавлена новая глава "Chapter 20. Application Binary Interface (ABI)", внесены изменения в терминологию — в разделе 6 названия операции Gather-to-all заменено на All-Gather.
Теперь стандарт явно описывает бинарный интерфейс между приложением и MPI библиотекой. Это позволяет обеспечить корректное функционирование скомпилированного MPI-приложения с разными библиотеками совместимыми с MPI ABI. Изменения в стандарте направлены на решение этой проблемы. Спецификация ABI упрощает взаимодействие с MPI библиотеками из языков и runtime-систем отличных от C и Fortran.
Спецификация MPI 5.0 ABI
-
Новые функции:
MPI_Abi_get_version(),MPI_Abi_get_info("mpi_aint_size" / "mpi_count_size" / "mpi_offset_size"),MPI_Abi_set_fortran_info(),MPI_Abi_get_fortran_info(),MPI_Comm_toint(),MPI_Comm_fromint() -
Явное описание порядка размещения в памяти полей структуры
MPI_Structдля C и Fortran -
Размеры дескрипторов объектов MPI и констант:
MPI_Comm,MPI_Datatype,MPI_COMM_WOLRD,DATATYPE_NULL -
Размеры целых типов и интервалы их значений:
MPI_Aint,MPI_Offset,MPI_Count -
Способы уведомления библиотеки о размере типов данных из Fortran программ:
MPI_Abi_set_fortran_info(),MPI_Abi_get_fortran_info() -
Преобразование дескрипторов из С в целочисленный тип Fortran:
MPI_Comm_toint(),MPI_Comm_fromint() -
Название библиотеки, которая должна обеспечивать поддержку MPI ABI:
mpi_abi
По состоянию на июль 2025 поддержка MPI 5.0 ABI в открытых библиотеках MPICH/MVAPICH и Open MPI находится в разработке.
Ссылки
-
MPI 5.0 Std (pdf): https://www.mpi-forum.org/docs/mpi-5.0/mpi50-report.pdf
-
MPI 5.0 Major Updates: https://www.mpi-forum.org/mpi-50/
-
MPI GitHub: https://github.com/mpi-forum/
-
Nexxt MPI: https://www.mpi-forum.org/mpi-next/
-
MPI Application Binary Interface Standardization: https://arxiv.org/abs/2308.11214
-
Jeff R. Hammond et al. MPI Application Binary Interface (ABI) Standardization: https://eurompi23.github.io/assets/slides/Hammond_eurompi23.pdf