Опубликован: 22.04.2008 | Уровень: профессионал | Доступ: платный
Дополнительный материал 4:

Введение в 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 есть ранг соответствующего процесса.

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

Дмитрий Молокоедов
Дмитрий Молокоедов
Россия, Новосибирск, НГПУ, 2009
Паулус Шеетекела
Паулус Шеетекела
Россия, ТГТУ, 2010