Кластер состоит из одного управляющего и 165 вычислительных серверов. Управляющий сервер имеет локальное имя mgt1, вычислительные узлы именуются: n1-n42, n57-n70, n113-n168, n225-n243, n246-n251, n281-n308.
На каждом узле кластера, установлен жесткий диск для хранения временных данных, смонтированный в директорию /tmp. При завершении задачи на узле, эта директория очищается. На узлах n1-n34 доступно 56Гб., на n35-n42, n57-n70, n113-n168 - 120ГБ, n239-n242, n246-n250 - 244ГБ, n281-n308 - 95 ГБ.
На узлах n239-n242, n246-n249 установлено по 96 Гб оперативной памяти. Эти узлы требуются для определенных задач, например ANSYS Mechanical. Для использования этих узлов, необходимо в файле задания при указании количества требуемых узлов, указывать параметр bigmem, например:
#PBS -l nodes=1:ppn=8:bigmem+15:ppn=8
при этом для задачи выделяются один узел с большим объемом памяти и 15 обычных узлов.
На узлах n225-n238, установлено по 24 Гб оперативной памяти. Для использования в своих задачах, указывайте параметр ppn=12:mem в файле задания, т.к. эти ноды имеют по 12 ядер на узел, например:
#PBS -l nodes=8:ppn=12:mem
На нодах n243 и n250 установлено по две графические карты Nvidia Tesla 2070. Для использования графических карт в своих заданиях, необходимо указывать в файле задания параметр узла gpu, например:
#PBS -l nodes=1:ppn=2:gpu
Для того, чтобы запустить свое задание на кластере, необходимо войти на кластер, как описано в разделе "Удаленный доступ на кластеры" и загрузить свои исходные данные если они необходимы. Далее нужно создать командный файл задания для системы пакетной обработки заданий. Ниже приводится простой пример командного файла запуска последовательной программы, которого в большинстве случаев будет достаточно. Можно просто скопировать его в файл на кластере. В данном примере запускается задание, с именем myjob, выполняющееся примерно 10 часов, требующее одного ядра, стандартные потоки вывода-вывода перенаправляются в один файл. Далее следует команда перехода в текущую директорию (по умолчанию СПО считает домашнюю директорию текущей) и запуск программы my_prog.
#!/bin/bash
#PBS -N myjob
#PBS -A myaccount
#PBS -l walltime=10:00:00
#PBS -l nodes=1:ppn=1
#PBS -j oe
cd $PBS_O_WORKDIR
./my_prog
Сохраняем файл с именем myjob.pbs, даем команду ниже. Задание поставилось в очередь с номером 2190.
[user@mgt1 ~]$ qsub myjob.pbs
2190.mgt1
Далее, командой qstat можно просматривать состояние задачи:
[user@mgt1 ~]$ qstat -a
Состояние задачи может быть следующим:
После окончания выполнения задачи в рабочей директории будет создан файл myjob.o2190, содержащий текст стандартного вывода программы.
Для получения подробной информации о состоянии задания, а также определения причин почему задание не запускается на выполнение, можно использовать команду checkjob
[user@mgt1 ~]$ checkjob 54939.mgt1
job 54939 (RM job '54939.mgt1')
AName: STDIN
State: Idle
Creds: user:user group:users class:batch
WallTime: 00:00:00 of 1:00:00
SubmitTime: Fri Jun 7 14:04:02
(Time Queued Total: 00:00:53 Eligible: 00:00:01)
TemplateSets: DEFAULT
NodeMatchPolicy: EXACTNODE
Total Requested Tasks: 520
Total Requested Nodes: 65
Req[0] TaskCount: 520 Partition: ALL
TasksPerNode: 8 NodeCount: 65
SystemID: Moab
SystemJID: 54939
Notification Events: JobFail
UMask: 0000
OutputFile: mgt1:/home/user/STDIN.o54939
ErrorFile: mgt1:/home/user/STDIN.e54939
Partition List: [ALL]
SrcRM: mgt1 DstRM: mgt1 DstRMJID: 54939.mgt1
Submit Args: -I -l nodes=65:ppn=8
Flags: INTERACTIVE
Attr: INTERACTIVE,checkpoint
StartPriority: 24781
PE: 520.00
NOTE: job cannot run (insufficient available procs: 68 available)
NOTE: job violates constraints for partition mgt1 (job 54939 violates active HARD MAXPROC limit of 512 for user user partition ALL (Req: 520 InUse: 0))
BLOCK MSG: job 54939 violates active HARD MAXPROC limit of 512 for user user partition ALL (Req: 520 InUse: 0) (recorded at last scheduling iteration)
Для запуска простого параллельного приложения с использованием библиотеки Intel MPI 4 можно использовать следующий пример файла задания:
#!/bin/bash
#PBS -N mympi_job
#PBS -A myaccount
#PBS -l walltime=10:00:00
#PBS -l nodes=2:ppn=8
#PBS -j oe
cd $PBS_O_WORKDIR
export PATH=$PBS_O_PATH
# Загрузка окружения Intel MPI версии 4
module load impi/4
# Экспорт некоторых переменных окружения, специфичных для используемой MPI библиотеки
#(в данном случае Intel MPI, см. документацию MPI библиотеки)
export I_MPI_DEVICE=rdma
export I_MPI_DEBUG=0
export I_MPI_FALLBACK_DEVICE=disable
#
mpirun -r ssh -machinefile $PBS_NODEFILE -np $PBS_NP ./my_mpi_prog