Удаленный доступ, передача файлов, компиляция и запуск приложений.


Удаленный терминальный доступ

Удаленный доступ к вычислительному кластеру осуществляется через головную машину комплекса t60.parallel.ru и только с ключом, указанным в заявке при регистрации. Непосредственный терминальный доступ на узлы кластера невозможен.

Для доступа нужно использовать протокол SSH версии 2. Читайте более подробную информацию об удаленном доступе и копировании файлов на кластер.


Хранение файлов

Пользовательские директории (вида /home/<имя пользователя>), физически размещенные на системе хранения данных, доступны по сети на всех узлах. Максимальный объем данных в этом каталоге обусловлен дисковой квотой для пользователя. Дисковая квота определяется при регистрации, но в дальнейшем может быть увеличена при необходимости.


Выбор среды MPI

На СКИФ-МГУ "Чебышёв" установлено несколько реализаций MPI. Для переключения между ними используется программа mpi-selector. Чтобы получить список реализаций, наберите mpi-selector --list. Для выбора нужной - mpi-selector --set your-mpi-version. После смены реализации необходимо открыть новую ssh-сессию.

Если Вы используете Intel MPI, openmpi или mpich, то указывайте команде mpirun дополнительный ключ -as intel, -as openmpi или -as mpich соответственно.


Компиляция программ

Для компиляции MPI-программ рекомендуется пользоваться командами mpicc/mpicxx (для программ на С и С++) и mpif77/mpif90 (для программ на Фортране 77/90). Эти команды автоматически подключают заголовочные файлы и библиотеки MPI. Для программ на языке С++ нужно использовать расширение имени файла .C или .cpp, для программ на языке Фортран 90 - .f90.

По умолчанию скрипты mpicc/mpicxx и mpif77/mpif90 работают с компилятором Intel. Для настройки компилятора, с которым хочет работать пользователь, необходимо воспользоваться утилитой mpi-selector. Для получения полного списка доступных в данный момент компиляторов нужно запустить утилиту с опцией --list, для установки необходимого компилятора - с опцией --set <name>, где <name> - один из вариантов, выданных опцией --list. Установленный данной утилитой компилятор сохраняется в качестве компилятора по умолчанию для данного пользователя.

Рекомендуется использовать опции компиляторов для оптимизации программ. Для компиляторов, установленных на нашем кластере, приемлемый уровень оптимизации даёт опция -O3, для справки о других опциях оптимизации рекомендуем обращаться к руководствам по компиляторам. Обращаем Ваше внимание, что при компиляции программ с помощью скриптов mpicc/mpicxx и mpif77/mpif90 не должны использоваться опции -static и -fast.

Если необходимо только скомпилировать один модуль, и не выполнять сборку исполняемого файла, используется опция "-с", например:

      mpicxx -c -program2.C

При этом будет создан объектный модуль "program2.o". Объектный модуль не является исполняемым, он используется как один из блоков при компоновке исполняемого файла.

Если необходимо создать исполняемый файл, то имеет смысл воспользоваться опцией -o имя, чтобы задать его имя (по умолчанию его имя будет a.out). Например:

      mpif90 -O3 program.f -o program.e

При этом будет создан исполняемый файл program.e, который можно запускать на исполнение командой mpirun.

Для сборки многомодульных приложений целесообразно пользоваться утилитой GNU make.

Простейшие примеры MPI-программ на языках С и Фортране 77/90 доступны, например, в каталоге /share/mpi/mvapich-1.1-intel/examples.

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

  • gcc/gfortran: -fopenmp
  • icc/ifort: -openmp
  • pgcc/pgCC/pgf77/pgf90: -mp

Необходимое число порождаемых нитей можно задать при помощи переменной среды OMP_NUM_THREADS:

      export OMP_NUM_THREADS=8

Запуск приложений

При обычной работе в многопользовательском удаленном режиме пользователи ставят свои задачи в очередь. В простейшем случае запрос на выполнение программы осуществляется командой mpirun:

      mpirun -np N program <параметры программы>

Если указанное число процессоров в данный момент недоступно, задача будет поставлена в очередь. Если программа является однопроцессорной или использует технологию OpenMP и написана без использования MPI, то при ее запуске нужно добавить ключ -as single. Например:

      mpirun -np 1 -as single program.e

Для запуска программ, скомпилированных с IntelMPI используйте ключ -as intel, для запуска программ, скомпилированных с OpenMPI - -as openmpi.

Читайте более подробную информацию о системе управления заданиями и других ее опциях.


Оболочка и текстовые редакторы

В качестве пользовательского командного интерпретатора используется bash, справку по которому можно получить командой "man bash". Для редактирования файлов на системе доступны текстовые редакторы joe и vi. Также доступна NC-подобная оболочка "Midnight Commander" (mc).

При работе с оболочкой bash пользователь всегда имеет приглашение для ввода команд, которое заканчивается знаком "$" и из которого можно понять, под каким именем пользователя, на какой машине исполняются вводимые команды и какой каталог является текущим. Например, приглашение вида

      [alex@T60-2 hpl]$ 

означает, что мы работаем под именем пользователя alex, и текущим является каталог с названием hpl.


Базовые команды ОС Unix

Для пользователей, не знакомых с операционной системой Unix, приводим базовые команды, необходимые для работы:

  • pwd - получить полный путь текущего каталога;
  • cd - сменить текущий каталог;
  • ls - распечатать содержимое каталога;
  • cp - копировать файл;
  • mv - переместить (переименовать) файл;
  • rm - удалить файл;
  • cat - выдать содержимое файла на консоль;
  • gzip - сжать файл;
  • exit - выйти из оболочки (или отключиться от машины).

Справку по любой команде можно получить командой man имя_команды.


В случае проблем

О всех проблемах, связанных с работой на кластере, немедленно сообщайте администраторам по электронной почте support@parallel.ru.

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