Как установить mpi на windows

Иногда необходимо запустить приложение на нескольких машинах (или процессорах), чтобы улучшить производительность (т.е. уменьшить время выполнения). Можно создать компьютерную сеть для последующего запуска приложения распределённо по всем узлам. При разработке такого приложения необходимо организовать обмен сообщениями. Я знаю две реализации:

  • использование сокетов и работа с OS API напрямую,
  • использование MPI.

Первый вариант обладает большими возможностями, но библиотека MPI существенно проще и, в действительности, шире применяется в параллельных вычислениях. MPI представляет собой стандарт некоторого набора функций для обмена сообщениями между процессами одного приложения. Существует бесплатная реализация данной библиотеки MPICH2, которая будет использоваться в данной статье. Вы модете найти большое количество мануалов и руководств по функциям библиотеки. Сейчас я остановлюсь только на установке и проверке работоспособности.

Установка библиотеки MPICH2 под Windows

Для того чтобы начать работу с библиотекой MPICH2, необходимо скачать совместимую с используемой операционной системой версию продукта здесь. Для ОС Windows – это установочный пакет формата MSI, поэтому инсталляция библиотеки проходит стандартным образом. Важно, что установку в этом случае надо проводить для всех пользователей системы.

Теперь необходимо добавить два основных исполняемых файла библиотеки mpiexec.exe и smpd.exe в список правил брандмауэра. Это необходимо, поскольку, при организации кластера используется сеть и доступ к каждому узлу сети должен быть разрешен для компонентов MPI. Конкретные настройки зависят от типа используемого брандмауэра.

На следующем этапе необходимо создать пользователя в системе, от имени которого будут исполняться компоненты библиотеки. Важно, что данный пользователь обязательно должен иметь свой пароль, т.к. MPICH2 не позволяет зарегистрировать исполняющего пользователя с пустым паролем. Регистрация осуществляется с помощью компонента wmpiregister.exe, находящегося в папке bin библиотеки и имеющего понятный оконный интерфейс:

Однако, это возможно сделать, используя консольную команду [путь_к_библиотеке]/bin/mpiexec -register.

Установка практически завершена. Осталось проверить правильность всех сделанных настроек. Для этой цели в папке examples есть примеры программ с параллельными алгоритмами. Для запуска можно использовать компонент wmpiexec.exe, который использует оконный интерфейс, который не нуждается в дополнительных комментариях.

Другой путь для исполнения приложений с использованием MPI – через консоль, например, написав подобную команду [путь_к_библиотеке]/bin/mpiexec -n 2 cpi.exe, где -n 2 указывает количество задействованных процессов (здесь их 2), а cpi.exe – это имя исполняемого приложения. Для простоты работы через консоль советую добавить в переменную окружения PATH путь к mpiexec.exe. Если выполнение приложения производится на однопроцессорной машине, то происходит эмуляция многопроцессорности, т.е. проверять работоспособность своих приложений можно «не отходя от кассы».

Проверка работоспособности

В качестве IDE для разработки используется MVS 2005. Напишем программу, которая будет привествовать этот мир от имени разных новорожденных процессов процессов. Для этого используется пустой проект (empty project) с изменением некоторых настроек проекта.

Итак, в первую очередь добавим директории, где будут лежать подключаемые заголовочные файлы и файлы библиотеки. Если кто-то не знает, то делается это следующим образом:

  • Выбираем пункт меню Tools => Options.
  • В дропдауне “Show directories for:” выбираем пункт “Include files”.
  • Добавляем [путь_к_библиотеке]\Include
  • В дропдауне “Show directories for:” выбираем пункт “Library files”.
  • Добавляем [путь_к_библиотеке]\Lib
  • В Solution Explorer кликаем правой кнопкой мыши на проекте и выбираем add => existing item. Выбираем все файлы с расширением .lib в папке [путь_к_библиотеке]\Lib

Проект полностью готов для работы с MPI. Могу посоветовать создавать фильтр для файлов библиотеки, добавленных в проект, чтобы они не мешались. Теперь добавим cpp файл с кодом приложения:

#include "stdio.h"
#include "mpi.h"
#include "stdlib.h"
#include "math.h"int ProcNum;
int ProcRank;int main(int argc, char *argv[]){
  MPI_Status status;

  MPI_Init(&argc, &argv);
  MPI_Comm_rank(MPI_COMM_WORLD, &ProcRank);
  MPI_Comm_size(MPI_COMM_WORLD, &ProcNum);

  printf(

"From process %i: Hello, World!\n", ProcRank);

  MPI_Finalize();
}


* This source code was highlighted with Source Code Highlighter.

Компилируем его и запускаем полученный бинарник через wmpiexec на 4 процессах.

Как видим, мир поприветствовал каждый рождённый процесс.

Я умышленно приводил код без каких либо комментариев, а только с целью демонстрации работы библиотеки. В будущем я планирую посвятить статью списку функций MPI. Также интересной является тема избыточной параллельности и, вообще, вопрос когда стоит распарарллеливать приложение, а когда нет. Эти исследования также будут приведены позже. Поэтому у меня возник основной вопрос — сфера применимости в web технологиях? Пока мой интерес к параллельным вычислениям вызван другой проблемой: ускорение моделирования разного рода процессов.

Оглавление:

  1. MPI стандарт для параллельного программирования
  2. Установка среды MPI Windows
  3. Создание проекта в Visual Studio для приложения MPI
  4. Подключение заголовочных файлов MS-MPI в проект на С++
  5. Подключение компонуемых библиотек MS-MPI в проект на С++
  6. Программный код приложения MPI
  7. Тестирование параллельных процессов MPI
  8. Команда запуска параллельных процессов
  9. Исходник запуска программы на MPI

MPI стандарт для параллельного программирования

Скорость вычисления одного процессора связана с его тактовой частотой, чем частота выше, тем быстрее процессор может выполнять запущенную задачу. Но тактовая частота ограниченный ресурс и ограничения связаны не только с технологией изготовления, но и скоростью движения электронов.

MPI (Message Passing Interface) — интерфейс передачи сообщений между процессами для организации согласованного параллельного вычисления одной задачи. Стандарт MPI предполагает использование для сложных вычислений множества процессоров одновременно.

MS-MPI — это реализация стандарта интерфейса передачи сообщений компании Майкрософт для разработки и запуска параллельных приложений на платформе Windows.

Необходимо отметить, что высокопроизводительный эффект вычислений от использования параллельных программ в среде MPI проявляется только на многопроцессорных системах и компьютерах с многоядерными процессорами.

Установка среды MPI Windows

Для функционирования интерфейса передачи сообщений MPI на операционной системе Windows необходима установка пакетов MS-MPI, описание и ссылки для загрузки пакетов находятся на: Message Passing Interface Windows. Для скачивания предлагаются два файла:
msmpisetup.exe – установщик MS-MPI
msmpisdk.msi — комплект разработки программного обеспечения (SDK).
На странице загрузки размещены также и инструкции по установке MS-MPI с помощью данных файлов.

Успешную установку пакетов и создания набора переменных среды MS-MPI можно проверить в командной строке запущенной от имени администратора командой set MSMPI. При правильной установке в консоли напечатаются переменные среды и их физические пути.

Проверка установки пакетов MS-MPI

Результат проверки

Создание проекта в Visual Studio для приложения MPI

Для тестирования среды для высокопроизводительных вычислений по стандарту MPI создадим проект консольного приложения на языке С++. Приложение будет инициировать функциональность MPI, выводить служебные сообщения и по завершению работы финализировать все состояния, связанные со средой MPI.

Создание проекта в Visual Studio происходит в несколько шагов: выбор типа проекта, задание имени и расположения файлов проекта на вашем компьютере. Ниже скриншоты наглядно показывают эти этапы.

Выбор типа проекта в Visual Studio

Выбор типа проекта в Visual Studio
Настройка имени и расположения проекта

Настройка имени и расположения проекта

Подключение заголовочных файлов MS-MPI в проект на С++

Подключение компонуемых библиотек и заголовочных файлов происходит в диалоговом окне свойств проекта. Вызвать окно можно щелкнув на элемент Свойства контекстного меню строки имени проекта.

Доступ к заголовочным файлам прописываются на вкладке Свойства конфигурации-> Дополнительные каталоги включаемых файлов. Прописываем доступ через переменные среды для 64-разрядной и 32-разрядной версии приложения соответственно:
$(MSMPI_INC);$(MSMPI_INC)\x64
$(MSMPI_INC);$(MSMPI_INC)\x86
Вместо переменных среды можно прописывать абсолютные пути. Теперь можно добавить в исходный файл проекта С++ директиву:
#include "mpi.h"

Добавление заголовочных файлов в проект C++

Добавление заголовочных файлов в проект C++

Подключение компонуемых библиотек MS-MPI в проект на С++

После прописывания доступа к заголовочным файлам подключаем также компонуемые библиотеки на вкладке Свойства конфигурации-> Компоновщик-> Дополнительные зависимости (между названиями обязателен разделитель ;):
msmpi.lib
и Свойства конфигурации-> Компоновщик-> Дополнительные каталоги библиотек, для 64-разрядной и 32-разрядной версии соответственно:
$(MSMPI_LIB64)
$(MSMPI_LIB32).

Подключение компонуемых библиотек C++ Visual Studio

Подключение компонуемых библиотек C++ Visual Studio

Программный код приложения MPI

Для тестового запуска напишем минимальный программный код инициализации среды параллельный вычислений MPI и ее завершения. Если всё было подключено правильно приложение запустится без ошибок.

Листинг кода первого запуска приложения MPI:

#include 
#include "mpi.h"

int main()
{
    // Инициализация среды параллельных вычислений MPI.
    MPI_Init(NULL, NULL);

    // -----
    // Размещение программного кода параллельной программы.
    // -----

    // Завершение работы среды параллельных вычислений MPI
    MPI_Finalize();

    // Приостановка консольного окна перед закрытием для 
    // тестирования программного кода в студии.
    std::cin.get();
}

При первом запуске приложения в среде высокопроизводительны вычислений MS-MPI операционная система Windows выбросит предупредительное окно брандмауэра с запросом на разрешение передачи сообщений между процессами параллельных приложений. Для полноценной работы приложений MPI необходимо разрешить доступ.

 Запрос брандмауэра на разблокирование всех функций приложения MPI

Запрос брандмауэра на разблокирование всех функций приложения MPI

Тестирование параллельных процессов MPI

Добавим еще немного кода чтобы оживить программу и создать смысл запуска N-ого количества процессов одновременно. Каждый процесс в группе имеет свой уникальный номер, называемый рангом. Ранг процесса MPI — это целое число в диапазоне [0, N-1], где N — количество процессов в группе.

Теперь каждый запущенный процесс будет печатать свой ранг в группе, а процесс с рангом 0 дополнительно выведет количество размер группы. Функция MPI_Comm_rank(MPI_Comm comm, int *rank) позволит каждому процессу получить свой уникальный ранг.

Листинг кода программы тестирования параллельных процессов MPI:

#include 
#include "mpi.h"

int main()
{
    // Инициализация среды параллельных вычислений MPI.
    MPI_Init(NULL, NULL);

    // Получение ранга текущего процесса в группе запущенных приложений.
    // MPI_COMM_WORLD - коммуникатор, объединяющий все процессы параллельной программы.
    int rank = -1;
    MPI_Comm_rank(MPI_COMM_WORLD, &rank);

    // Получение количества процессов в группе.
    int count_processes = -1;
    MPI_Comm_size(MPI_COMM_WORLD, &count_processes);

    // Вывод ранга (идентификатора) текущего процесса.
    // Экземпляр ранга 0 дополнительно выводит 
    // количество процессов в группе.
    if (rank == 0)
    {
        std::cout
            << "This is - " << rank
            << " proccess \n"
            << "Number of processors - " << count_processes << "\n"
            << "-------------------------------\n";
    }
    else
    {
        std::cout
            << "This is - " << rank
            << " proccess \n"
            << "-------------------------------\n";
    }

    // Завершение работы среды параллельных вычислений MPI
    MPI_Finalize();

    // Приостановка консольного окна перед закрытием для 
    // тестирования программного кода в студии.
    //std::cin.get();
}

Команда запуска параллельных процессов

В составе пакетов MS-MPI устанавливается утилита mpiexec.exe, которая осуществляет запуск программ, написанных для среды MPI. По умолчанию mpiexec.exe устанавливается в каталог C:\Program Files\Microsoft MPI\Bin, путь к каталогу доступен через переменную среды MSMPI_BIN.

Командная строка для тестирования параллельных процессов открывается в папке нахождения приложения MPI. Для этого удобно в адресной строке проводника Windows, находясь в папке приложения, набрать команду cmd. Запуск N-ого количества параллельных процессов осуществляется командой:
mpiexec -n N название_файла_программы_MPI
Т. е. для запуска 8 параллельных процессов такая команда:
mpiexec -n 8 StartMPI.exe
Если не указывать опцию -n и запустить программу MPI командой:
mpiexec StartMPI.exe
то запустится количество одновременных процессов равное количеству процессоров или ядер процессора аппаратного устройства. Для справки по опциям и аргументам запуска программ MPI служит команда:
mpiexec -help

Скриншот запуска 8 параллельных процессов MPI

По хаотичному порядку рангов параллельных процессов MPI можно сделать вывод: процессы программы MPI работают независимо друг от друга и одновременный запуск не обеспечивает упорядоченность выполнения процессов.

Исходник запуска программы на MPI

Архивный файл исходника содержит проект приложения параллельных вычислений MPI на языке С++. Исходник написан в среде MS Visual Studio 2022. Процессы запущенной программы в среде MPI выводят свои ранги и размер группы.

Скачать исходник

Тема: «Настройка MPI Windows, пример программы»

startmpi-vs17.zip
Размер:539 КбайтЗагрузки:266

Skip to content

IreneLi

Irene Li’s Personal Website

(If you meet any errors and need help, please leave them in the comments.)

Windows

  1. Install Microsoft Visual Studio.
  2. Install Microsoft MPI (MSDN)
    Find here.
  3. Test

step2

Install Open MPI in Ubuntu 14.04, 13.10

  1. Download the latest version of OpenMPI:

Go to https://www.open-mpi.org/software/ompi/v1.10/, download the first one (openmpi-1.10.2.tar.bz2):

  1. Open a terminal, install dependencies (you could add “sudo” before some of the commands if you are meeting errors!):

sudo apt-get install libibnetdisc-dev

  1. Decompress the download file:

sudo tar -xvf openmpi-1.10.2.tar.bz2

cd openmpi-1.10.2
4. Configure the installation file
./configure –prefix=”/home/$USER/.openmpi”

  1. Install OpenMPI (This path will take time to complete, few minutes)

make

sudo make install
6. Setup path in Environment Variable

export PATH=”$PATH:/home/$USER/.openmpi/bin”
export LD_LIBRARY_PATH=”$LD_LIBRARY_PATH:/home/$USER/.openmpi/lib/”
7. Test if install was successful

mpirun
Result should show ‘How to use’ message:

test

Install Open MPI in Mac

  1. Download the latest version of OpenMPI:

Go to https://www.open-mpi.org/software/ompi/v1.10/, download the first one (openmpi-1.10.2.tar.bz2):

  1. Open a terminal, install dependencies:

sudo apt-get install libibnetdisc-dev
3. Decompress the download file:

tar -xvf openmpi-1.10.2.tar.bz2

cd openmpi-1.10.2
4. Configure the installation file
./configure –prefix=/usr/local/openmpi
5. Install OpenMPI (This path will take time to complete, few minutes)

make

sudo make install
6. Setup path in Environment Variable

export MPI_DIR=/usr/local/openmpi
echo $PATH
export PATH=/usr/local/openmpi/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/openmpi/lib:$LD_LIBRARY_PATH
export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH

  1. Test if install was successful

mpirun
Result should show ‘How to use’ message:

test


Download MPI for Windows(Microsoft MPI)

https://www.microsoft.com/en-us/download/details.aspx?id=57467

Run both .exe and .msi file, they will install Microsoft MPI under C:\Program Files\Microsoft MPI by default.(But if you have changed the register manually, the path might be changed)

Configure MPI in Visual Studio 2019

Open Project -> Project_name Properties

Under VC++ Directories

Add C:\Program Files (x86)\Microsoft SDKs\MPI\Include in Include Directories

Add C:\Program Files (x86)\Microsoft SDKs\MPI\Lib\x86 in Library Directories

In C/C++ -> Preprocessor -> Preprocessor Definitions

Add MPICH_SKIP_MPICXX

In C/C++ -> Code Generation

Change Runtime Library to MTd

In Linker -> Input -> Additional Dependencies

Add msmpi.lib and msmpifec.lib

Testing

#include<stdio.h>
#include<mpi.h>
#include<stdlib.h>

int main(int argc, char* argv[])
{
	int myid, numprocs, namelen;
	char processor_name[MPI_MAX_PROCESSOR_NAME];

	MPI_Init(&argc, &argv);        // starts MPI
	MPI_Comm_rank(MPI_COMM_WORLD, &myid);  // get current process id
	MPI_Comm_size(MPI_COMM_WORLD, &numprocs);      // get number of processeser
	MPI_Get_processor_name(processor_name, &namelen);

	if (myid == 0) printf("number of processes: %d\n...", numprocs);
	printf("%s: Hello world from process %d \n", processor_name, myid);

	MPI_Finalize();

	return 0;
}

Click Build -> Build Solution

And your terminal will looks like the following screenshot. Please make sure you can build .exe file successfully without error.

You can see the .exe file path inside the terminal, for me, it is E:\TestingPrograms\omp_test\x64\Debug\omp_test.exe

Open file explorer, E:\TestingPrograms\omp_test\x64\Debug\ folder (Your path will be different!)

Do right-click while pressing Shift button

Enter mpiexec -n 5 omp_test.exe in powershell or command-line window(depend on your Windows version, for Win10 you will see powershell, but for early version you will see command-line)

You can replace 5 with number of process you want, omp_test.exe must be replaced by the name of your builded .exe file

The result will be:

Done!


Build backends

mpi4py supports three different build backends: setuptools (default),
scikit-build-core (CMake-based), and meson-python
(Meson-based). The build backend can be selected by setting the
MPI4PY_BUILD_BACKEND environment variable.

MPI4PY_BUILD_BACKEND
Choices:

"setuptools", "scikit-build-core", "meson-python"

Default:

"setuptools"

Request a build backend for building mpi4py from sources.

Using setuptools

Tip

Set the MPI4PY_BUILD_BACKEND environment variable to
"setuptools" to use the setuptools build backend.

When using the default setuptools build backend, mpi4py relies on
the legacy Python distutils framework to build C extension modules.
The following environment variables affect the build configuration.

MPI4PY_BUILD_MPICC

The mpicc compiler wrapper command is searched for in
the executable search path (PATH environment variable)
and used to compile the mpi4py.MPI C extension module.
Alternatively, use the MPI4PY_BUILD_MPICC environment
variable to the full path or command corresponding to the MPI-aware
C compiler.

MPI4PY_BUILD_MPILD

The mpicc compiler wrapper command is also used for
linking the mpi4py.MPI C extension module.
Alternatively, use the MPI4PY_BUILD_MPILD environment
variable to specify the full path or command corresponding to the
MPI-aware C linker.

MPI4PY_BUILD_MPICFG

If the MPI implementation does not provide a compiler wrapper, or
it is not installed in a default system location, all relevant
build information like include/library locations and library lists
can be provided in an ini-style configuration file under a
[mpi] section. mpi4py can then be asked to use the custom build
information by setting the MPI4PY_BUILD_MPICFG
environment variable to the full path of the configuration file. As
an example, see the mpi.cfg file located in the top level
mpi4py source directory.

MPI4PY_BUILD_CONFIGURE

Some vendor MPI implementations may not provide complete coverage
of the MPI standard, or may provide partial features of newer MPI
standard versions while advertising support for an older version.
Setting the MPI4PY_BUILD_CONFIGURE environment variable
to a non-empty string will trigger the run of exhaustive checks for
the availability of all MPI constants, predefined handles, and
routines.

MPI4PY_BUILD_MPIABI

Setting the MPI4PY_BUILD_MPIABI environment variable to
"1" enables enhanced support for the MPI 5.0 standard ABI and
the MPICH or Open MPI legacy ABIs. The mpi4py.MPI extension
module is then able to dynamically link at runtime with older
versions (down to the MPI 3.0 standard) of the corresponding MPI
implementation used at compile time. This feature is only available
on Linux, macOS, and Windows. POSIX-like systems other than Linux
and macOS are not currently supported, although they could easily
be: all what is needed is for the platform to either support weak
symbols in shared modules/libraries, or support the standard POSIX
dlopen()/dlsym() APIs.

MPI4PY_BUILD_PYSABI

Build with the CPython 3.10+ Stable ABI.
Setting the MPI4PY_BUILD_PYSABI environment variable to a
string "{major}.{minor}" defines the Py_LIMITED_API value to
use for building extension modules.

The following environment variables are aliases for the ones described
above. Having shorter names, they are convenient for occasional use in
the command line. Its usage is not recommended in automation scenarios
like packaging recipes, deployment scripts, and container image
creation.

MPICC

Convenience alias for MPI4PY_BUILD_MPICC.

MPILD

Convenience alias for MPI4PY_BUILD_MPILD.

MPICFG

Convenience alias for MPI4PY_BUILD_MPICFG.

Using scikit-build-core

Tip

Set the MPI4PY_BUILD_BACKEND environment variable to
"scikit-build-core" to use the scikit-build-core build backend.

When using the scikit-build-core build backend, mpi4py delegates all
of MPI build configuration to CMake’s FindMPI module. Besides the
obvious advantage of cross-platform support, this delegation to CMake
may be convenient in build environments exposing vendor software
stacks via intricate module systems. Note however that mpi4py will not
be able to look for MPI routines available beyond the MPI standard
version the MPI implementation advertises to support (via the
MPI_VERSION and MPI_SUBVERSION macro constants
in the mpi.h header file), any missing MPI constant or symbol
will prevent a successful build.

Using meson-python

Tip

Set the MPI4PY_BUILD_BACKEND environment variable to
"meson-python" to use the meson-python build backend.

When using the meson-python build backend, mpi4py delegates build
tasks to the Meson build system.

Warning

mpi4py support for the meson-python build backend is
experimental. For the time being, users must set the CC
environment variable to the command or path corresponding to the
mpicc C compiler wrapper.

Using pip

You can install the latest mpi4py release from its source distribution
at PyPI using pip:

$ python -m pip install mpi4py

You can also install the in-development version with:

$ python -m pip install git+https://github.com/mpi4py/mpi4py

or:

$ python -m pip install https://github.com/mpi4py/mpi4py/tarball/master

Note

Installing mpi4py from its source distribution (available at PyPI)
or Git source code repository (available at GitHub) requires a C
compiler and a working MPI implementation with development headers
and libraries.

Warning

pip keeps previously built wheel files on its cache for future
reuse. If you want to reinstall the mpi4py package using a
different or updated MPI implementation, you have to either first
remove the cached wheel file with:

$ python -m pip cache remove mpi4py

or ask pip to disable the cache:

$ python -m pip install --no-cache-dir mpi4py

Using conda

The conda-forge community provides ready-to-use binary packages
from an ever growing collection of software libraries built around the
multi-platform conda package manager. Four MPI implementations are
available on conda-forge: Open MPI (Linux and macOS), MPICH (Linux and
macOS), Intel MPI (Linux and Windows) and Microsoft MPI (Windows).
You can install mpi4py and your preferred MPI implementation using the
conda package manager:

  • to use MPICH do:

    $ conda install -c conda-forge mpi4py mpich
    
  • to use Open MPI do:

    $ conda install -c conda-forge mpi4py openmpi
    
  • to use Intel MPI do:

    $ conda install -c conda-forge mpi4py impi_rt
    
  • to use Microsoft MPI do:

    $ conda install -c conda-forge mpi4py msmpi
    

MPICH and many of its derivatives are ABI-compatible. You can provide
the package specification mpich=X.Y.*=external_* (where X and
Y are the major and minor version numbers) to request the conda
package manager to use system-provided MPICH (or derivative)
libraries. Similarly, you can provide the package specification
openmpi=X.Y.*=external_* to use system-provided Open MPI
libraries.

The openmpi package on conda-forge has built-in CUDA support, but
it is disabled by default. To enable it, follow the instruction
outlined during conda install. Additionally, UCX support is also
available once the ucx package is installed.

Warning

Binary conda-forge packages are built with a focus on
compatibility. The MPICH and Open MPI packages are build in a
constrained environment with relatively dated OS images. Therefore,
they may lack support for high-performance features like
cross-memory attach (XPMEM/CMA). In production scenarios, it is
recommended to use external (either custom-built or system-provided)
MPI installations. See the relevant conda-forge documentation about
using external MPI libraries .

Linux

On Fedora Linux systems (as well as RHEL and their derivatives
using the EPEL software repository), you can install binary packages
with the system package manager:

  • using dnf and the mpich package:

    $ sudo dnf install python3-mpi4py-mpich
    
  • using dnf and the openmpi package:

    $ sudo dnf install python3-mpi4py-openmpi
    

Please remember to load the correct MPI module for your chosen MPI
implementation:

  • for the mpich package do:

    $ module load mpi/mpich-$(arch)
    $ python -c "from mpi4py import MPI"
    
  • for the openmpi package do:

    $ module load mpi/openmpi-$(arch)
    $ python -c "from mpi4py import MPI"
    

On Ubuntu Linux and Debian Linux systems, binary packages are
available for installation using the system package manager:

$ sudo apt install python3-mpi4py

Note that on Ubuntu/Debian systems, the mpi4py package uses Open
MPI. To use MPICH, install the libmpich-dev and python3-dev
packages (and any other required development tools). Afterwards,
install mpi4py from sources using pip.

macOS

macOS users can install mpi4py using the Homebrew package
manager:

Note that the Homebrew mpi4py package uses Open MPI. Alternatively,
install the mpich package and next install mpi4py from sources
using pip.

Windows

Windows users can install mpi4py from binary wheels hosted on the
Python Package Index (PyPI) using pip:

$ python -m pip install mpi4py

The Windows wheels available on PyPI are specially crafted to work
with either the Intel MPI or the Microsoft MPI
runtime, therefore requiring a separate installation of any one of
these packages.

Intel MPI is under active development and supports recent version of
the MPI standard. Intel MPI can be installed with pip (see the
impi-rt package on PyPI), being therefore straightforward to get it
up and running within a Python environment. Intel MPI can also be
installed system-wide as part of the Intel HPC Toolkit for Windows or
via standalone online/offline installers.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Microsoft word windows phone
  • Разрегистрировать dll windows 10
  • Room planner for windows
  • Эмуляция сенсорного экрана windows
  • Как добавить в автозагрузку защитник windows 10