Лабораторія обчислювальної астрофізики
В Головній астрономічній обсерваторії у 2007 році при прямій фінансовій підтримці Національної академії наук України було введено в експлуатацію високопродуктивний обчислювальний GRID/GPU кластер. На даний час вже проведено поетапну модернізацію кластера.
Початкові (первісні) карти-прискорювачі замінено на більш сучасні графічні прискорювачі GeForce GTX 660, що дозволило підвищити продуктивність моделювання астрофізичних задач до приблизно 11 Tflops.
Кластер є гетерогенним і складається з керуючого вузла, та 3+8 обчислювальних вузлів (2 х Intel Xeon E5410, 2.33GHz, 16 GB RAM та 2 х Intel Xeon E5420, 2.50 GHz, 32 GB RAM, 2 х GPU GeForce GTX 660, відповідно). Для комунікації використовується мережа на базі Gigabit ethernet. Загальна кількість обчислювальних ядер складає 88. Система збереження даних складеться з дискового масиву об’ємом 5 ТB.
Кластер ГАО також є частиною Українського академічного GRID-сегменту. На кластері встановлено GRID middleware Nordugrid ARC 5.0.3. Виконувати свої задачі на кластері ГАО мають можливість учасники віртуальних організацій:
- multiscale;
- sysbio;
- moldyngrid;
- virgo_ua.
Для забезпечення ефективної роботи кластера у GRID-середовищі встановлено runtime-environment для підтримки віртуальних організацій moldyngrid і virgo_ua:
- GROMACS-4.5.5;
- PHI-GPU;
- VIRGO/COSMOMC;
- VIRGO/GADGET;
- VIRGO/FERMI;
- VIRGO/XMM.
На сьогодні на кластері виконуються наступні астрофізичні завдання:
- Пряме моделювання центральних областей галактик з урахуванням динаміки центральних надмасивних чорних дір.
- Динамічне моделювання стійкості та хімічної еволюції галактичного диска і зоряних систем в диску галактик.
- Динамічна еволюція стійкості локального обсягу Всесвіту.
СПІВРОБІТНИКИ ЛАБОРАТОРІЇ
Берцик Петер Петерович | зав.лаб., с.н.с. | д.ф.-м.н. | berczik(at)mao.kiev.ua | кімн. 210,тел. 8-00 |
Іванов Даніїл Дмитрович | технік I кат. | ivanovdd(at)mao.kiev.ua | кімн. 117,тел. 7-00 | |
Соболенко Маргарита Олександрівна | інж. І кат. | sobolenko(at)mao.kiev.ua | кімн. 114, тел. 5-93 |
Моніторинг кластера:
http://golowood.mao.kiev.ua/ganglia/
Моніторинг ресурсів Українського академічного GRID-сегменту:
http://www.nordugrid.org/monitor/loadmon.php
Інструкція з запуску завдань на кластері ГАО
Для того, щоб поставити задачу на виконання, потрібно підготувати скрипт запуску, або зробити це в інтерактивному режимі. Задача компілюється, потім ставиться в чергу за допомогою програми qsub (man qsub).
Приклади запуску серійної задачі:
a)
~$ echo "sleep 1m" | qsub
b) за допомогою сценарію:
створюється скрипт запуску задачі run.sh:
~$ cat run.sh
#PBS -k oe
#PBS -m abe
#PBS -N run
#!/bin/sh
cd $PBS_O_WORKDIR
export PATH=$PATH:$PBS_O_WORKDIR
sleep 1m
exit 0
~$
Запуск скрипта:
~$ qsub -V run.sh
(обов'язково потрібно вказати опцію -V).
Для компіляції та запуску паралельних задач на кластері можна використовувати компілятори GNU або Intel. Вибір компілятора здійснюється за допомогою команд mpi-selector та mpi-selector-menu.
Переглянути список доступних реалізацій MPI можна за допомогою команди:
~$ mpi-selector --list
openmpi-1.4.3
openmpi-1.4.3-intel
~$
На даний час встановлено дві реалізації OpenMPI: openmpi-1.4.3 (GNU) і openmpi-1.4.3-intel (Intel).
Дізнатись, яку реалізацію MPI ви використовуєте, можна за допомогою команди:
~$ mpi-selector --query
default:openmpi-1.4.3
level:user
~$
Змінити реалізацію MPI можна за допомогою команди:
~$ mpi-selector-menu
Current system default: openmpi-1.4.3
Current user default: openmpi-1.4.3
"u" and "s" modifiers can be added to numeric and "U"
commands to specify "user" or "system-wide".
1. openmpi-1.4.3
2. openmpi-1.4.3-intel
U. Unset default
Q. Quit
Selection (1-2[us], U[us], Q): 1u
Defaults already exist; overwrite them? (Y/N) y
Current system default: openmpi-1.4.3
Current user default: openmpi-1.4.3
"u" and "s" modifiers can be added to numeric and "U"
commands to specify "user" or "system-wide".
1. openmpi-1.4.3
2. openmpi-1.4.3-intel
U. Unset default
Q. Quit
Selection (1-2[us], U[us], Q): Q
~$
mpi-selector-menu змінює системні змінні PATH та MANPATH лише при наступному вході користувача у shell. Тому після виконання команди mpi-selector-menu необхідно виконати команду bash -l чи відкрити новий shell.
Приклад запуску паралельних програм:
Компілюється програма, написана з використанням MPI-бібліотеки:
якщо це C-програма:
~$ mpicc -o your_program.exe your_program.c -lm
якщо це програма на Fortran-і:
~$ mpif77 -o your_program.exe your_program.f -lm
Створюється скрипт запуску задачі run-mpi.sh:
~$ cat run-mpi.sh
#PBS -N run-mpi
#PBS -k oe
#PBS -m abe
#PBS -l nodes=8
#!/bin/sh
cd $PBS_O_WORKDIR
export PATH=$PATH:$PBS_O_WORKDIR
mpiexec -n 8 ./your_program.exe
exit 0
~$
Задати чергу, у яку буде запущена задача, можна шляхом додавання у скрипт рядка:
#PBS -q cpu_8x6
Черга cpu_8x6 призначена для запуску CPU-задач, черги gpu_1 і gpu_2 − для запуску GPU-задач.
Запуск скрипта:
~$ qsub -V run-mpi.sh
(обов'язково потрібно вказати опцію -V).
В даному випадку задачу запущено на 8 CPU, це вказується в параметрі -n 8 програми mpiexec та параметрі #PBS -l nodes=8.
Більш докладно про описані опції і програми − man qsub, man mpiexec.
Опції в скрипті PBS:
-k: зберегти стандартне виведення (stdout) та стандартне виведення помилок (stderr).
-m: послати e-mail повідомлення у разі, якщо задача знята batch-системою, коли задача почала виконуватись та коли виконалась.
-N: назва задачі в системі batch.
Подивитись на стан черги та чи запущена задача на виконання можна за допомогою команди:
~$ qstat
(більш докладно − man qstat).