Компіляція і запуск mpi програм, суперкомп'ютерний центр самарського університету

Вибір реалізації MPI

Для вибору MPI середовища використовуйте команду module avail. module load [modulename].

В даному випадку доступні кілька модулів. Зокрема impi / 3, завантажує змінні середовища для роботи з Intel MPI бібліотекою версії 3.

Завантажені змінні зберігаються протягом поточної сесії. Щоб при повторному вході на кластер потрібні модулі завантажувалися автоматично, додайте в файл .modules в своїй домашній директорії, наступний рядок

module load modulename

Компіляція MPI програм

Після завантаження потрібного модуля, можна використовувати програми для компіляції і запуску паралельних програм (mpicc, mpicxx, mpif77, mpif90, і т.д.).

] $ Which mpicc
/home/COMMON/intel/impi/3.2.2/bin64/mpicc

Компілювати програми можна наступними командами (вихідний код в файлі hello.c):

] $ Mpicc -o hello.mpi hello.c

Додаткові ключі компіляції, якщо вони потрібні, можна подивитися в офіційній документації виробників компіляторів.

Запуск MPI програм

Запуск MPI програм можливий тільки через систему пакетної обробки завдань (див. "Робота з системою пакетної обробки завдань"). У файлі пакетного завдання необхідно запустити Вашу програму за допомогою команди mpirun (аргументи програми mpirun вказані для бібліотеки Intel MPI).

#! / Bin / bash
#PBS -N hello.mpi
#PBS -A код_проекта
#PBS -l procs = 8
#PBS -l walltime = 00: 01: 00
cd $ PBS_O_WORKDIR
module load impi / 4
mpirun -r ssh -machinefile $ PBS_NODEFILE -np $ PBS_NP ./hello.mpi

В наведеному вище прикладі, запрошено 8 процесорів (ядер). Час виконання програми 1 хв. Змінна $ PBS_O_NODEFILE містить шлях до файлу в який СПО записує імена обраних нодов. У змінній $ PBS_NP міститься кількість запитаних процесів (procs або nodes * ppn).

Для постановки завдання в чергу використовується команда qsub.