Вы здесь

Компиляция программ на кластере

Выбор среды компиляции
По умолчанию на каждом кластере установлен определенный набор компиляторов и библиотек. При входе на вычислитель каждому пользователю на экран выдается информация о некоторых установках по умолчанию, а также дополнительная служебная информация. Для выбора другого доступного ПО (компилятора, библиотеки обмена сообщениями, пакета прикладных программ) необходимо использовать модули установки переменных окружения. Для быстрого доступа к настройкам основных модулей можно воспользоваться командой mpiset (эта команда без параметров выдает текущие установки). В дальнейшем, при запуске задачи на счет, необходимо следить, чтобы выставленная конфигурация (например, через mpiset) совпадала при компиляции и при запуске.

О компиляции
Компиляция (в расчете на использование MPI) выполняется утилитами (командами):

  • mpicc для программ на Си
  • mpicxx для программ на C++
  • mpif77 для программ на Фортране 77
  • mpif90 для программ на Фортране 90

Они запускают компилятор, передавая ему дополнительные флаги, специфичные для MPI (ключ -show у этих утилит покажет, какая команда будет выполнена). Заметим, что компиляция программы (например исходной) без MPI может быть выполнена и обычными средствами со ссылкой на используемый компилятор (icc, gcc, pgcc, ...).
Для файлов на Си и C++ важно расширение имени файла: для языка Си это .c, для языка С++ это .cxx.

В командной строке задается список файлов, которые надо откомпилировать, и имя выходного файла. Для удобства желательно сообщения об ошибках компиляции перенаправить в файл. Например, если наш исполняемый файл должен называться outprog и собирается из файлов in1.c и in2.c, находящихся в каталоге proj, то необходимо выполнить следующие действия:

cd proj
mpicc –o outprog in1.c in2.c 2>errors.log

Сообщения об ошибках компиляции попадут в файл errors.log. В командной строке файл можно пролистать командой:

less errors.log 

При пролистывании используются клавиши <Пробел> - следующая страница, b - предыдущая страница, q - выход из просмотра.

Подключение дополнительных библиотек обеспечивается добавлением опции –l<имя_библиотеки> в строку компиляции. Например, библиотека BLAS подключается так:

mpicc -o mytest mytest.c -L /usr/lib64/atlas -lcblas 

Если программа скомпилирована успешно, создастся файл mytest. Это можно посмотреть в WinSCP, не забыв обновить список файлов в окне, или в командной строке командой ls, которая выдает список файлов.

Компиляция программ, использующих для распараллеливания стандарты OpenMP, CUDA и OpenACC, а также особенности запуска таких программ рассмотрены в отдельных инструкциях, а именно:

Яндекс.Метрика