Подключение MPI в Visual Studio

      Комментарии к записи Подключение MPI в Visual Studio отключены

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 2 нед., 6 дн. назад.

  • Автор
    Сообщения
  • #3876

    В этой заметке показано как установить 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 узлах:

Для ответа в этой теме необходимо авторизоваться.