Главная » Оборудование » Руководство пользователя

Руководство пользователя


Ниже приведено краткое руководство пользователя. Полная версия доступна по ссылке: руководство пользователя.

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

На кластере (на 15.12.2013) поддерживаются следующие компиляторы языков программирова­ния для архитектуры x86_64:


Таблица 1: Компиляторы на кластере

 

КомпиляторПуть к файлу компилятораОбертка MPIЯзык
Intel C 14.0.1 /opt/intel/composer_xe_2013_sp1.1.106/bin/intel64/icc mpiicc C
Intel C++ 14.0.1 /opt/intel/composer_xe_2013_sp1.1.106/bin/intel64/icpc mpiicpc C++
Intel Fortran 14.0.1 /opt/intel/composer_xe_2013_sp1.1.106/bin/intel64/ifort mpiifort Fortran 77/90
GNU C 4.1.2 /usr/bin/gcc mpigcc C
GNU C++ 4.1.2 /usr/bin/g++ mpigxx C++
GNU Fortran 4.1.2 /usr/bin/gfortran mpif90 Fortran 90
GNU Fortran 3.4.6 /usr/bin/g77 mpif77 Fortran 77

 

В качестве реализации MPI библиотеки на кластере (на 15.12.2013) поддерживается Intel MPI. Библиотека доступна со всех узлов кластера и расположена по пути /opt/intel/impi/4.1.2. Пути к 64-битной версии данной библиотеки добавлены в переменные среды «PATH» и «LD_LIBRARY_PATH».

 Для компиляции mpi программ лучше всего использовать обёртки к компиляторам, чем вручную прописывать для этого специальные флаги. Так, например, чтобы скомпилировать mpi программу, на­ писанную на языке Fortran, нужно воспользоваться оберткой mpiifort. Данная команда вызовет компи­лятор Intel Fortran, с указанием всех необходимых флагов.

 

1.2 Запуск задач


1.2.1 Диспетчеризация задач

Для диспетчеризации задач на кластере используется система PBS Torque. С её помощью пользователь может отправлять свои задачи на исполнение, снимать их с исполнения и получать информацию по текущему статусу задачи. Данная система построена на основе очередей. Чтобы поставить задачу на исполнение, пользователь должен добавить ее при помощи команды qsub в какую-либо очередь. Очереди отличаются друг от друга совокупностью ресурсов, которыми они обладают.

 

1.2.2 Система очередей

На данный момент действуют 3 очереди: vl_mars, vl_mercury, vl_pluto. В таблице 2 представле­ны отличия между очередями.

 

Таблица 2: Очереди на кластере

 vl_marsvl_mercuryvl_pluto
Доступно узлов 4 5 8
Процессоры, установленные
на узлах
Six Core AMD
Opteron 8431
Quad Core Intel®
Xeon® E5450
EM64T
Dual Core Intel®
Xeon® 5060
EM64T
Процессоров на узле 4 2 2
Вычислительных ядер на узле 24 8 4
Памяти на узле 96GB 16GB 4GB
Сеть передачи данных InfiniBand InfiniBand Gigabit Ethernet

 

Никаких ограничений по времени исполнения и количеству доступных ресурсов для этих очередей не установлено.


1.2.3 Постановка задачи в очередь

Для постановки задачи в очередь на исполнение используется команда qsub. Данная команда принимает в качестве параметра имя скрипта, в котором описываются требуемые задачей ресурсы и указываются команды, исполняемые при запуске. Рассмотрим простейший скрипт, запускающий параллельную MPI программу на 16 логических процессорах.

 

#PBS -k oe
#PBS -l nodes=2:ppn=8
#PBS -r n
#PBS -M user@mail.com
#PBS -m abe
#PBS -q vl_mercury
#PBS -N jobname
#!/bin/sh

cd /home/user/test/

mpirun ./job

exit 0

 

Прокомментируем каждую из строчек:


#PBS -k oe - указание сброса потока вывода (o) и потока ошибок (e);
#PBS -l nodes=2:ppn=8 - требуемое количество узлов (2) и процессоров на каждом из них (8);
#PBS -r n - является ли задача перезапускаемой (y - является, n - не является);
#PBS -M user@mail.com - почтовый адрес пользователя;
#PBS -m abe - какие сообщения отправляются на указанный адрес?(a - ошибка в выполнении задачи; b - начало выполнения; e - завершение выполнения);
#PBS -q vl_mercury - идентификатор очереди;
#PBS -N jobname - название задачи;
#!/bin/sh - указание необходимого командного интерпретатора;
cd /home/user/test/ - переход в директорию с исполняемым файлом;
mpirun ./job - запуск приложения;
exit 0 - выход.

 

 Для постановки данной задачи в очередь нужно использовать следующую команду:

 

[user@mercury test] qsub job.qsub

 

Здесь job.qsub - имя qsub скрипта.

 

1.2.4 Состояние пользовательских задач

Просмотреть состояние задач в очереди можно с помощью команды qstat идентификатор_задачи. Идентификатор_задачи - идентификатор, полученный при постановке задачи в очередь. Команда qstat -a идентификатор_задачи даст несколько больше информации. Текущее состояние задачи отмечено в столбце S.

  • Q — задача находится в очереди, ждет освобождения ресурсов.
  • R — задача в данный момент выполняется.
  • C — задача завершилась. Информация о выполненных задачах хранится 5 минут.

С помощью команды qstat -n идентификатор_задачи можно получить информацию о том, какие именно процессоры выделены для запущенных задач.

 

1.2.5 Остановка задач

Если по каким-то причинам задача так и не начала запускаться, например, запрошено слишком много процессоров, или памяти, то удалить задачу из очереди можно с помощью команды qdel идентификатор_задачи. Точно так же задачу можно удалить, если она уже выполняется.