Кластерные вычисления

Введение в MPI

Показывать лекцию целиком

Цель - изучить базовую структуру MPI-программ и способ их запуска на кластере.

Базовая структура MPI-программ предполагает обязательное применение функций

  • MPI_Init,
  • MPI_Comm_size,
  • MPI_Comm_rank и
  • MPI_Finalize.
  • Их использование представлено в примере ниже.

    Компиляция MPI-программ осуществляется утилитами

  • mpicc ( для программ, написанных на языке С), или
  • mpiCC ( для программ, написанных на языке С++).
  • Эти утилиты являются надстройками над соответствующими компиляторами, установленными в рамках ОС.

    Пример запуска MPI-программы на компиляцию:

    mpiCC myprog.cpp -o myprog

    Запуск оттранслированной программы на счет производится с помощью команды вида:

    mpirun   [параметры mpirun] <имя программы>
             [ входные параметры программы ]

    Основными параметрами mpirun являются:

  • -h | -help - показывает возможные аргументы и параметры команды mpirun
  • - maxtime - задает максимальное время счета программы (в минутах)
  • - np <число процессоров> - задает число процессоров, на которых запускается программа
  • Пример запуска

    mpirun -np 4 -maxtime 5 myprog

    Задача 1. Откомпилировать и выполнить программу, приведенную выше, задающую базовую структуру MPI-программ. Запустить программу на количестве процессоров от 1 до 4.

    Задача 2. Написать и отладить MPI-программу, в которой корневой процесс (процесс с рангом 0) выдает на консоль количество запущенных процессов, а также сообщение

    "Root process: Hello, world",

    а все остальные процессы выдают сообщение

    "Slave process: my rank is xxxx",

    где xxx есть ранг соответствующего процесса.

    Выполнить запуски программы на разном количестве процессоров.

    Вернуться к учебному плану