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

Оглавление:

  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 КбайтЗагрузки:55

Время на прочтение
4 мин

Количество просмотров 23K

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

  • использование сокетов и работа с 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 технологиях? Пока мой интерес к параллельным вычислениям вызван другой проблемой: ускорение моделирования разного рода процессов.

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!


оглавление

  • 1 Установите VS Code и Microsoft MPI
  • 2 Установите и настройте плагин Code Runner в VS Code
  • 3 Запустите программу
  • 4 Некоторые СОВЕТЫ, которые могут не помочь

Visual Studio Code — это легкая и мощная IDE, разработанная Microsoft, с простым и красивым интерфейсом и богатой поддержкой расширений.
обращать внимание! ! ! В этой статье предполагается, что вы установили gcc / g ++ и правильно настроили соответствующие переменные среды. Если вы установили и настроили его нормально, при вводе gcc — version или g ++ —version в командной строке или PowerShell должно появиться сообщение, подобное приведенному ниже:

Если вы еще не установили его, вы можете обратиться кhttps://zhuanlan.zhihu.com/p/76613134Настройте mingw-w64, в Интернете также есть много других руководств.

1 Установите VS Code и Microsoft MPI

VS Code скачать
Установите и используйте VScode под Windows, а также в китайской конфигурации
(Не требуется) Язык VS Code установлен на китайский
(Не требуется) VS Code изменить тему интерфейса
(Необязательно) Используйте шрифт Cascadia Code в vscode
Процесс установки несложный, в Интернете есть множество руководств. Как установить VS Code, повторяться не буду.
После завершения установки вы можете установить плагины C / C ++ и C ++ Intellisense в расширенном магазине (открыть с помощью Ctrl + Shift + X)

Microsoft MPI скачать
Последнюю версию можно загрузить (всего два установочных пакета: msmpisetup.exe и msmpisdk.msi)
можно установить в соответствии с его конфигурацией и параметрами по умолчанию, а также можно изменить путь установки, но после изменения помните, что конфигурация будет использоваться позже.
(я изменил место установки на диск E)

В обычных условиях нет необходимости вручную добавлять переменные среды.
Проверьте установку MPI: откройте терминал (cmd, а не Powershell) и введите команду:

set MSMPI

Если появляется результат возврата, показанный на рисунке ниже, это означает, что он был установлен нормально:

2 Установите и настройте плагин Code Runner в VS Code

Откройте VS Code, откройте расширенный рынок (щелкните слеваИли используйте Ctrl + Shift + X, чтобы открыть), найдите плагин Code Runner и установите его. (Для подробного использования плагина Code Runner вы можете щелкнуть плагин и просмотреть его на перенаправленной странице)
После завершения установки следуйте рисунку ниже, чтобы перейти на страницу настройки расширения. Найдите опцию Executor map и нажмите «Изменить в settings.json».

Если содержимое «code-runner.executorMap»: {…} уже существует в settings.json, напрямую измените две строки «c» и «cpp», найденные в нем, на:

"c": "cd $dir && gcc $fileName -o $fileNameWithoutExt -fopenmp -l msmpi -L \"C:\\Program Files (x86)\\Microsoft SDKs\\MPI\\Lib\\x64\" -I \"C:\\Program Files (x86)\\Microsoft SDKs\\MPI\\Include\" && mpiexec -n 4 $fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt -fopenmp -l msmpi -L \"C:\\Program Files (x86)\\Microsoft SDKs\\MPI\\Lib\\x64\" -I \"C:\\Program Files (x86)\\Microsoft SDKs\\MPI\\Include\" && mpiexec -n 4 $fileNameWithoutExt",

пожалуйстапутьИзмените путь установки MPI, поместитеКоличество процессовИзмените его до подходящего значения (оно может превышать фактическое количество ядер физической машины).
Если нет, скопируйте его, как показано ниже, и вставьте непосредственно перед последней фигурной скобкой в ​​settings.json и измените его содержимое, как описано выше.

Заметка:

Эта часть в основном упоминается и вдохновлена ​​сайтом:
Настройте ms-mpi на vscode (легкая среда разработки ms-mpi)
, но где

mpiexec -n 4 $dir$fileNameWithoutExt

Он продолжает сообщать об ошибках во время работы, и сообщение об ошибке:

Просматривая сообщение об ошибке, я обнаружил, что $ dir, который должен иметь обратную косую черту в конце, не имеет обратной косой черты и имеет лишние пробелы. Измените его на:

mpiexec -n 4 $dirWithoutTrailingSlash\\$fileNameWithoutExt

Команда нормальная и может быть запущена. Конечно, если вы откроете папку, в которой находится исходный файл, открыв рабочую область, затем измените ее на

mpiexec -n 4 $workspaceRoot\\$fileNameWithoutExt

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

mpiexec -n 4 $fileNameWithoutExt

3 Запустите программу

Пример кода языка C ++:

#include <iostream>
#include <mpi.h>
#include <stdint.h>
using namespace std;

int main(int argc,char* argv[]){
    cout<<"hello"<<endl;
    int myid, numprocs;
    int  namelen;
    char processor_name[MPI_MAX_PROCESSOR_NAME];
    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&myid);
    MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
    MPI_Get_processor_name(processor_name,&namelen); 
    std::cout<<"Hello World! Process "<<myid<<" of "<<numprocs<<" on "<<processor_name<<std::endl;
    MPI_Finalize();
    return 0;
}

Пример кода языка C:

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

int main(int argc,char* argv[]){
    printf("hello\n");
    int myid, numprocs;
    int  namelen;
    char processor_name[MPI_MAX_PROCESSOR_NAME];
    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&myid);
    MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
    MPI_Get_processor_name(processor_name,&namelen); 
    printf("Hello World! Process %d of %d on %s\n",myid,numprocs,&processor_name);
    MPI_Finalize();
    return 0;
}

Используйте сочетания клавишCtrl+Alt+NБеги, можешь получить результат.
c
(результат выполнения на языке c)
c++
(результат выполнения на языке c ++)
Странно, почему стили вывода на двух языках разные?
Измените код языка C и добавьте его после printf

fflush(NULL);

Форсируя содержимое буфера вывода, вы можете получить тот же вывод, что и стиль C ++.
Код и выходные результаты выглядят следующим образом:

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

int main(int argc,char* argv[]){
    printf("hello\n");
    fflush(NULL);
    int myid, numprocs;
    int  namelen;
    char processor_name[MPI_MAX_PROCESSOR_NAME];
    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&myid);
    MPI_Comm_size(MPI_COMM_WORLD,&numprocs);
    MPI_Get_processor_name(processor_name,&namelen); 
    printf("Hello World! Process %d of %d on %s\n",myid,numprocs,&processor_name);
    fflush(NULL);
    MPI_Finalize();
    return 0;
}

4 Некоторые СОВЕТЫ, которые могут не помочь

  1. вНебольшая заметка, Перечисляет четыре возможные конфигурации команд выполнения (включая исходную конфигурацию команд на веб-сайте CSDN, но не может работать на моем компьютере). Из-за сложности и неопределенности реальной ситуации, если в рекомендации не указано $ Конфигурация команды dir не может работать на вашем компьютере (теоретически, она не должна запускаться), вы можете попробовать несколько других команд.
  2. Если вы по-прежнему не можете запустить, вернитесь к исходной рекомендуемой конфигурации команды без $ dir, войдите на страницу конфигурации Code Runner и попробуйте проверить параметр, чтобы включить или отключить Run In Terminal перед запуском.
  3. Если он по-прежнему не запускается, попробуйте сначала не компилировать и не запускать в VSCode, а переключитесь в соответствующий каталог в cmd или Powershell и используйте соответствующие команды для компиляции и запуска напрямую.Если появляется сообщение об ошибке mpiexec и других команд, которые не могут быть найдены, попробуйте проверить Microsoft MPI Независимо от того, верна ли установка, верна ли конфигурация переменной среды, или перезапустите и попробуйте снова.

В этой заметке показано как установить MPI, подключить его к Visual Studio, а затем использовать с заданными параметрами (числом вычислительных узлов). В статье используется Visual Studio 2015, т.к. именно с ней возникали проблемы у моих студентов (эта заметка написана студентами для студентов), однако вероятно инструкция подойдет и для других версий.

Шаг 1:
Необходимо установить пакет HPC Pack 2008 SDK SP2 (в вашем случае может быть уже другая версия), доступный на официальном сайте Microsoft. Разрядность пакета и системы должны соответствовать.

Шаг 2:
Необходимо настроить пути, для этого переходим во вкладку Debug — Properties:

Далее во вкладке VC++ Directories необходимо прописать в поле Include Directories:

“C:\Program Files\Microsoft HPC Pack 2008 SDK\Include”

.

В поле Library Directories:

“C:\Program Files\Microsoft HPC Pack 2008 SDK\Lib\amd64”

.

В поле с библиотеками, если стоит 32 разрядная версия, вместо amd64 нужно прописать i386.

Далее во вкладке Linker – Input в поле Additional Dependencies необходимо указать библиотеку

msmpi.lib

:

Шаг 3:

Для настройки запуска необходимо перейти во вкладку Debugging и в поле Command указать:

“C:\Program Files\Microsoft HPC Pack 2008 SDK\Bin\mpiexec.exe”

.

В поле Command Arguments указать, например,

-n 4 $(TargetPath)

Число 4 указывает на количество процессов.

Для запуска программы необходимо подключить библиотеку

mpi.h

. Путь к проекту не должен содержать кириллицу. При возникновении ошибок можно воспользоваться Microsoft MPI, доступный по на сайте Microsoft.

Для этого после установки достаточно прописать в поле Command вкладки Debugging путь:

“C:\Program Files\Microsoft MPI\Bin\mpiexec.exe”

Также перед запуском программы не забудьте указать её разрядность:

Пример запуска программы с MPI:

#include<mpi.h>
#include<iostream>
using namespace std;

int main(int argc, char **argv)
{
     int rank, size;
     MPI_Init(&argc, &argv);
     MPI_Comm_size(MPI_COMM_WORLD, &size);
     MPI_Comm_rank(MPI_COMM_WORLD, &rank);
     cout << "The number of processes: " << size << " my number is " << rank << endl;
     MPI_Finalize();
     return 0;
}

Работа программы на 2 узлах:

В соседней статье вы можете прочитать про установку MPI в Linux и настройку в CLion .

  • Как установить msi файл на windows 10
  • Как установить one drive на windows 10
  • Как установить nahimic windows 10
  • Как установить oracle instant client windows
  • Как установить node red на windows