Действия
Использование компилятора Portland¶
Для использования компилятора pgi требуется включить модуль окружения pgi64
$ module load pgi64После этого становятся доступными
pgcc
(драйвер компилятора C), pgCC
(драйвер компилятора C++), pgfortran
(pgf95
, pgf90
и pgf77
включают опции, специфические для соответствующих диалектов). При запуске программ скомпилированных ими лучше тоже подключать модуль pgi64.
PGI + MPI¶
В настоящее время на кластере поддерживаются две библиотеки MPI: OpenMPI и MPICH (идущая в комплекте с PGI). Рекомендуется использовать OpenMPI, т.к. в MPICH отсутствует поддержка Infiniband.
Последовательность действий для компиляции и запуска MPI программы следующая:
- Загрузить модуль окружения для выбранной библиотеки MPI и компилятора. При использовании PGI модуль pgi64 будет загружен автоматически.
$ module load openmpi/pgi # или mpich/pgi, или openmpi/gcc
Если подключить сразу два модуля, то ничего хорошего скорее всего не выйдет. Проверить список подключенных модулей можно командойmodule list
, а отключить все подключенные модули командойmodule purge
.
- Скомпилировать программу с помощью обертки для компилятора
mpicc
,mpif77
илиmpif90
. При этом будет вызван выбранный компилятор. Оберткам можно передавать все специфичные для выбранного компилятора опции.$ mpicc mysource.c -o myprogram
Если сборка производится с помощьюmake
, то возможно потребуется явно указать на использование обертки компилятора (mpicc, mpif77, ...) с помощью переменныхCC, FC, F77, F90, CXX
и т.п.
- В скрипт для запуска задачи через систему очередей добавить загрузку модуля окружения (
module load <выбранный модуль>
). Поставить задачу в очередь. Подробнее про систему очередей$ qsub -l nodes=4 mystartscript.sh
Обновлено Дмитрий Чубаров больше 12 лет назад · 2 изменени(я, ий)