
Message Passing Interface (MPI) – это стандарт для организации обмена данными между процессами в распределённых вычислениях. На Ubuntu чаще всего используют две реализации MPI: OpenMPI и MPICH, каждая из которых имеет свои преимущества в зависимости от задач и совместимости с другими библиотеками.
Перед установкой MPI важно проверить текущую версию Ubuntu и архитектуру системы с помощью команд lsb_release -a и uname -m. Это позволяет выбрать корректные пакеты и избежать конфликтов с установленными библиотеками.
Установка MPI обычно осуществляется через пакетный менеджер apt, что позволяет автоматически получить зависимости и актуальные версии. Для OpenMPI используются пакеты openmpi-bin и libopenmpi-dev, для MPICH – mpich и libmpich-dev. Настройка переменных окружения PATH и LD_LIBRARY_PATH после установки обеспечивает корректное использование MPI-команд.
Проверка работоспособности MPI включает компиляцию тестового файла с помощью mpicc и запуск через mpirun. Эти шаги позволяют убедиться, что процессы могут обмениваться данными корректно на локальной машине или в кластере.
Проверка версии Ubuntu и архитектуры системы
Архитектуру процессора можно узнать с помощью команды uname -m. Значение x86_64 соответствует 64-битной системе, i386 или i686 – 32-битной.
Результаты проверки удобно оформить в таблице для быстрого ориентирования при выборе MPI-пакетов:
| Команда | Назначение | |
|---|---|---|
| lsb_release -a | Distributor ID: Ubuntu Release: 22.04 Description: Ubuntu 22.04 LTS |
Определение версии дистрибутива и его релиза |
| uname -m | x86_64 | Определение архитектуры процессора (64-бит или 32-бит) |
После проверки версии и архитектуры можно корректно выбрать пакеты MPI, совместимые с вашей системой, и избежать ошибок при установке.
Обновление списков пакетов и установленных компонентов

Перед установкой MPI важно обновить списки пакетов и существующие компоненты системы, чтобы гарантировать установку актуальных версий библиотек и инструментов.
Для обновления используйте следующие команды в терминале:
- sudo apt update – обновляет списки доступных пакетов с репозиториев.
- sudo apt upgrade – обновляет уже установленные пакеты до последних версий.
- sudo apt install build-essential – устанавливает набор компиляторов и библиотек, необходимых для сборки MPI-программ.
Рекомендуется выполнять apt update и apt upgrade отдельно, чтобы отслеживать возможные ошибки и конфликты версий. После обновления система будет готова к установке OpenMPI или MPICH без несовместимостей.
Для проверки текущего состояния пакетов можно использовать команду:
- dpkg -l | grep mpi – отображает установленные MPI-пакеты.
Выбор реализации MPI для задач пользователя

При установке MPI важно выбрать реализацию, которая соответствует требованиям ваших вычислительных задач. На Ubuntu чаще всего применяются две версии: OpenMPI и MPICH.
OpenMPI обеспечивает широкую совместимость с современными кластерами и поддерживает интеграцию с библиотеками типа CUDA для GPU-вычислений. Она подходит для проектов с распределёнными вычислениями на разных узлах и большим количеством процессов.
MPICH ориентирован на стабильность и предсказуемое поведение в научных расчётах. Он хорошо подходит для локальных вычислительных сетей и проектов, где важна минимизация накладных расходов на коммуникацию.
Выбор MPI зависит от следующих факторов:
- Необходимость работы с GPU и внешними библиотеками – выбирайте OpenMPI.
- Сетевые условия и количество узлов – для небольших локальных сетей подойдет MPICH.
- Совместимость с уже используемыми библиотеками и инструментами разработки.
Рекомендуется проверить требования используемых программ к MPI и выбрать реализацию, которая обеспечит стабильное выполнение кода без дополнительных настроек.
Установка OpenMPI через пакетный менеджер apt
Для установки OpenMPI на Ubuntu используйте пакетный менеджер apt. Сначала обновите списки пакетов командой sudo apt update, чтобы получить актуальные версии.
Основные пакеты для установки OpenMPI:
- openmpi-bin – содержит бинарные файлы для запуска MPI-программ.
- libopenmpi-dev – включает заголовочные файлы и библиотеки для компиляции MPI-программ.
Установка выполняется командой:
sudo apt install openmpi-bin libopenmpi-dev
После завершения установки проверьте корректность с помощью команды mpirun —version. Она должна вывести установленную версию OpenMPI и подтверждать доступность всех бинарных файлов.
Если требуется запуск MPI с конкретным компилятором, убедитесь, что переменные окружения PATH и LD_LIBRARY_PATH включают пути к установленным библиотекам OpenMPI.
Установка MPICH и отличие от OpenMPI на практике
MPICH устанавливается через пакетный менеджер apt аналогично OpenMPI. Основные пакеты:
- mpich – содержит исполняемые файлы для запуска MPI-программ.
- libmpich-dev – заголовочные файлы и библиотеки для компиляции MPI-кода.
Команда для установки:
sudo apt install mpich libmpich-dev
Основные отличия MPICH от OpenMPI на практике:
- MPICH более предсказуем в локальных сетях с небольшим количеством узлов.
- OpenMPI поддерживает больше расширенных функций для кластеров и интеграцию с GPU.
- MPICH использует меньше накладных расходов на коммуникацию в научных расчётах, что повышает стабильность при повторяемых экспериментах.
- OpenMPI легче интегрировать с современными внешними библиотеками и средствами профилирования.
Выбор между ними зависит от архитектуры проекта: для вычислений на одном узле или небольшой локальной сети предпочтительнее MPICH, для распределённых кластеров и работы с GPU – OpenMPI.
Настройка переменных окружения для MPI

Для корректной работы MPI необходимо настроить переменные окружения, чтобы система могла находить бинарные файлы и библиотеки MPI при компиляции и запуске программ.
Основные переменные:
- PATH – путь к исполняемым файлам MPI (например, /usr/bin для OpenMPI или MPICH).
- LD_LIBRARY_PATH – путь к динамическим библиотекам MPI (обычно /usr/lib/x86_64-linux-gnu/openmpi для OpenMPI или аналогичный для MPICH).
Добавление переменных выполняется через редактирование файла ~/.bashrc или ~/.profile:
export PATH=/usr/lib/openmpi/bin:$PATH export LD_LIBRARY_PATH=/usr/lib/openmpi/lib:$LD_LIBRARY_PATH
После изменений необходимо применить настройки командой source ~/.bashrc. Проверить корректность можно с помощью which mpirun и echo $LD_LIBRARY_PATH.
Правильная настройка переменных обеспечивает совместимость MPI-команд с компиляторами и предотвращает ошибки при запуске многопроцессных программ.
Проверка установки с помощью mpicc и mpirun

После установки MPI важно убедиться, что компилятор и средства запуска работают корректно. Для компиляции MPI-программ используется mpicc, а для запуска многопроцессных приложений – mpirun.
#include <mpi.h>
#include <stdio.h>
int main(int argc, char** argv) {
MPI_Init(&argc, &argv);
int world_size;
MPI_Comm_size(MPI_COMM_WORLD, &world_size);
int world_rank;
MPI_Comm_rank(MPI_COMM_WORLD, &world_rank);
printf("Процесс %d из %d\n", world_rank, world_size);
MPI_Finalize();
return 0;
}
Компиляция выполняется командой:
mpicc hello.c -o hello
Запуск на 4 процессах:
mpirun -np 4 ./hello
Решение типовых ошибок после установки MPI

После установки MPI могут возникать ошибки, связанные с компиляцией, запуском или конфликтом версий библиотек. Наиболее частые проблемы и их решение:
- mpicc: command not found – компилятор MPI не найден. Проверьте переменную PATH и убедитесь, что пути к MPI-бинарникам добавлены: export PATH=/usr/lib/openmpi/bin:$PATH.
- mpirun: executable not found – бинарный файл MPI не обнаружен. Проверьте корректность установки пакета openmpi-bin или mpich и переменную PATH.
- Ошибка связки с библиотеками (libmpi.so) – возникает при запуске MPI-программ. Добавьте путь к библиотекам в LD_LIBRARY_PATH: export LD_LIBRARY_PATH=/usr/lib/openmpi/lib:$LD_LIBRARY_PATH.
- Несовпадение версий MPI – если установлены разные реализации MPI, убедитесь, что компилятор и запуск используют одну версию. Проверить можно командами mpicc —version и mpirun —version.
- Ошибки при запуске многопроцессных программ – проверьте сетевые настройки и наличие разрешений на запуск процессов на всех узлах, используемых в кластере.
После исправления переменных окружения и проверки версий MPI рекомендуется повторно выполнить тестовую программу для подтверждения работоспособности.
Вопрос-ответ:
Какая команда позволяет определить версию Ubuntu и архитектуру системы перед установкой MPI?
Для проверки версии Ubuntu используют команду lsb_release -a, которая выводит дистрибутив, номер релиза и описание. Архитектуру процессора можно определить с помощью uname -m. Вывод x86_64 означает 64-битную систему, i386 или i686 — 32-битную.
В чем отличие OpenMPI от MPICH и как выбрать подходящую реализацию для проекта?
OpenMPI поддерживает интеграцию с внешними библиотеками, кластерами и GPU, что удобно для распределённых вычислений. MPICH ориентирован на стабильность и низкие накладные расходы на коммуникацию в локальных сетях. Выбор зависит от архитектуры проекта: для локальных вычислений подходит MPICH, для распределённых задач с большим количеством узлов — OpenMPI.
Какие пакеты нужно установить для работы с OpenMPI на Ubuntu?
Для работы с OpenMPI требуются пакеты openmpi-bin и libopenmpi-dev. Первый содержит исполняемые файлы MPI, второй — библиотеки и заголовочные файлы для компиляции программ. Установка выполняется командой: sudo apt install openmpi-bin libopenmpi-dev.
Почему после установки MPI возникает ошибка ‘mpicc: command not found’ и как её исправить?
Ошибка возникает, если пути к бинарным файлам MPI не добавлены в переменную окружения PATH. Исправляется добавлением строки export PATH=/usr/lib/openmpi/bin:$PATH в файл ~/.bashrc и применением изменений через source ~/.bashrc.
Как проверить корректность установки MPI с помощью тестовой программы?
Создайте небольшой файл на C, который использует функции MPI_Init, MPI_Comm_size, MPI_Comm_rank и MPI_Finalize. Компилируйте с помощью mpicc и запускайте командой mpirun -np 4 ./имя_программы. Если установка выполнена правильно, программа выведет номера процессов и их общее количество.
