Установка MPI на Linux и настройка CLion

Помечено: ,

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

  • Автор
    Сообщения
  • #5453
    @admin

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

    Установка MPI в Linux

    Кстати, в OpenSuse для установки MPI достаточно добавить соответствующий пакет в Yast. Приведенная ниже инструкция пригодится если в вашем дистрибутиве нет такого пакета или есть, но нужна другая версия.

    Проходим на официальный сайт, в раздел загрузки. Там нас интересует табличка с платформами и версиями библиотеки, находим Ubuntu и скачиваем.

    Попадаем на страницу Ubuntu packages и выбираем свою платформу. Мы попадаем на страницу с выбором зеркала для скачивания. … И вот у нас на диске deb пакет библиотеки, который мы устанавливаем двойным кликом.

    После установки в системе появились компиляторы для языков C/C++ и Fortran, которые называются соответственно mpicc/mpic++ и mpifortran. Каждый из них снабжен подробной документацией, что резко уменьшает продолжительность танцев с бубном.

    Рассмотрим компиляцию и запуск на классическом примере — программа «Hello, world».

    #include <iostream>
    //Не забываем подключить библиотеку к проекту
    #include "/usr/include/mpich/mpi.h"
    using namespace std;
     
    int main(int argc, char **argv) {
        //Инициализируем mpi
        MPI_Init(&argc, &argv);
         
        cout << "Hello world" << endl;
     
        //Завершаем работу с mpi
        MPI_Finalize();
        return 0;
    }

    Компилируется это дело командой

    mpic++ -o hello hello.cpp

    И сразу запускаем с помощью mpiexec, параметр -n говорит о том, сколько процессов запустить для этой программы.

    mpiexec -n 5 ./hello

    Таким образом мы запустим 5 процессов.

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

    Проекты на C/C++ в CLion`е собираются с помощью автоматизированной кроссплатформенной системы сборки CMake. Суть в двух словах, мы пишем файл CMakeLists.txt в корне проекта, который содержит правила для сборки, на которые ориентируется Make, либо ее аналог в Windows. Более подробно о CMake написано в статье на хабре.

    Подключать библиотеку мы будем именно с помощью настроек CMake.

    Нам нужно добавить библиотеку mpi.h, сделать это можно с помощью правила include_directories(). В качестве аргумента передаем полный путь до библиотеки(в Linux Ubuntu — /usr/include/mpi/). Не забываем нажать «Reload changes» справа в углу.

    Готово, теперь CLion знает все функции MPI, но пока не умеет их собирать.

    Настройка компилятора прописывается в CMakeLists.txt правилами set(). Напомню, что в Ubuntu компиляторы живут по адресу /usr/bin/mpicc для си, и /usr/bin/mpic++ для си++ соответственно. Поэтому добавляем два правила: set(CMAKE_C_COMPILER "/usr/bin/mpicc") и set(CMAKE_CXX_COMPILER "/usr/bin/mpic++").

    Буквально только, после очередной переустановки системы, мной было замечено, что библиотека корректно подключилась только с настройкой

    cmake_minimum_required(VERSION 3.6)

    Будьте внимательны.

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