Вибір реалізації 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.