Опубликован: 22.04.2008 | Доступ: свободный | Студентов: 527 / 50 | Оценка: 4.50 / 4.75 | Длительность: 06:55:00
Специальности: Программист
Дополнительный материал 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 есть ранг соответствующего процесса.

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