1 1 Компиляция и выполнение

Процесс компиляции и выполнения параллельных программ, написанных с использованием MPI, примерно одинаков в MPICH, LAM/MPI и OpenMPI. Оба пакета содержат в себе специализированные скрипты (wrappers) облегчающие вызов компиляторов. Для языка FORTRAN такой скрипт называется mpif77. Компиляция исходного текста программы, написанной на FORTRANe выполняется следующим образом:

mpif77 myprog.f -o myprog

Здесь myprog.f - исходный текст программы, myprog - исполняемый модуль, полученный в результате компиляции.

Следующий этап работы с кластером - запуск параллельных программ на исполнение. В обоих версиях MPI, которые мы рассматриваем, запуск программы происходит с помощью команды mpirun:

MPICH, OpenMPI
mpirun -np 4 -machinefile ~/machines /tmp/prog1/myprog

LAM/MPI
mpirun -np 4 /tmp/prog1/myprog

Параметр -np задает количество процессоров кластера, на которых будет запущена программа. Для MPICH используется дополнительный параметр -machinefile, который указывает на файл (~/machines), содержащий список машин клсатера. Естественно, здесь приведены простейшие варианты запуска. Команда mpirun имеет гораздо больше параметров, позволяющих оператору кластера произвольно сложным образом формировать задание на счет.

Следует отметить, что запускаемая программа должна быть скопирована с консоли кластера на все узловые машины в одно и тоже место. Так, если мы в передыдущих примерах запускали программу /tmp/prog1/myprog, то на узлах кластера по этому же пути должен существовать исполняемый файл с тем же названием, хотя и не обязательно тот же самый.


Copyright © 1998-2011 Юрий Сбитнев