Общие сведения

Название "интерфейс передачи сообщений", говорит само за себя. Это хорошо стандартизованный механизм для построения параллельных программ в модели обмена сообщениями. Существуют стандартные "привязки" MPI к языкам С/С++, Fortran 77/90. Существуют бесплатные и коммерческие реализации почти для всех суперкомпьютерных платформ, а также для сетей рабочих станций UNIX и Windows NT. В настоящее время MPI - наиболее широко используемый и динамично развивающийся интерфейс из своего класса.

Стандартизацией MPI занимается MPI Forum. Последняя версия стандарта - 2.0. В этой версии к MPI добавлены такие важные элементы функциональности, как динамическое управление процессами, односторонние коммуникации (Put/Get), параллельный ввод/вывод. Однако ни в одной реализации на настоящее время интерфейс MPI 2.0 полностью не поддерживается.

Реализация на кластере СКИФ МГУ

Установлена mvapich - оптимизированная реализация MPI для коммуникационной сети InfiniBand. Использование - абсолютно аналогично mpich (ссылки см. ниже).
ВНИМАНИЕ! для корректной работы в mvapich следует использовать команду mpicxx вместо применяемой в mpich mpiCC.

MPICH. Переносимая реализация (работает почти на всех UNIX-системах и Windows NT), разработанная в Argonne National Laboratory. Поддерживаются кластеры на базе SMP-узлов. Поддерживается стандарт MPI 1.2 и некоторые элементы стандарта MPI 2.0.

Примеры

  • Информация для пользователей Суперкомпьютерного комплекса МГУ
  • Для настройки компилятора, с которым хочет работать пользователь, необходимо воспользоваться утилитой mpi-selector:

    • mpi-selector --list даст список доступных компиляторов;
    • mpi-selector --set <name> установит один из доступных компиляторов;
    • по умолчанию скрипты mpicc/mpicxx, mpif77/mpif90 работают с компилятором Intel.