Основные изменения в 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 находится в разработке.

Ссылки