Руководство пользователя
Ниже приведено краткое руководство пользователя. Полная версия доступна по ссылке: руководство пользователя.
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_mars | vl_mercury | vl_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 идентификатор_задачи. Точно так же задачу можно удалить, если она уже выполняется.