Пример запуска Gromacs на кластере СКИТ
В качестве примера используем gmxbench с домашнего сайта gromacs.
Создаем директорию для экспериментов:
[glad@access ~]$ mkdir test
[glad@access ~]$ cd test
Загружаем и распаковываем gmxbench:
[glad@access test]$ wget 'ftp://ftp.gromacs.org/pub/benchmarks/gmxbench-3.0.tar.gz'
--2013-09-23 21:18:24-- ftp://ftp.gromacs.org/pub/benchmarks/gmxbench-3.0.tar.gz
=> `gmxbench-3.0.tar.gz'
Resolving ftp.gromacs.org... 130.238.41.205
Connecting to ftp.gromacs.org|130.238.41.205|:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD /pub/benchmarks ... done.
==> SIZE gmxbench-3.0.tar.gz ... 4060558
==> PASV ... done. ==> RETR gmxbench-3.0.tar.gz ... done.
Length: 4060558 (3.9M)
100%[======================================================================>] 4,060,558 1.18M/s in 3.3s
2013-09-23 21:18:28 (1.18 MB/s) - `gmxbench-3.0.tar.gz' saved [4060558]
[glad@access test]$ tar xf gmxbench-3.0.tar.gz
Берем первый попавшийся тест с gmxbench:
[glad@access test]$ ls
d.dppc d.lzm d.poly-ch2 d.villin gmxbench-3.0.tar.gz
[glad@access test]$ cd d.dppc/
[glad@access d.dppc]$ ls
conf.gro grompp.mdp topol.top
Готовим скрипт запуска примерно следующего содержания:
[glad@access d.dppc]$ cat run.sh
#!/bin/bash
# Подключаем скрипт GMXRC из выбранной версии gromacs, который настраивает окружение (пути к утилитам и библиотекам) для gromacs соответствующей версии.
source /opt/gromacs/4.6.3/bin/GMXRC
# Запускаем утилиты gromacs, которые подготавливают данные для расчетов
grompp -c conf.gro -p topol.top -f grompp.mdp
# Запускаем выполнение расчетов. Вместо непосредственного вызова mpirun используем переменную $GMX_MPIRUN, которую подготовил скрипт GMXRC. Она содержит mpirun со всеми необходимыми для запуска mdrun_mpi опциями.
$GMX_MPIRUN mdrun_mpi -s topol.tpr
Выставляем права на запуск:
[glad@access d.dppc]$ chmod +x run.sh
Ставим в очередь задачу:
[glad@access d.dppc]$ sbatch -n 4 -p lite_task ./run.sh
sbatch: Submitted batch job 168017
Наблюдаем за состоянием задачи с помощью squeue.
Когда задача завершится, результат выполнения будет в текущей директории. Там же будет и output файл с названием slurm-<job_ib>.out, содержащий лог выполнения.
Смотрим output файл:
[glad@access d.dppc]$ tail slurm-168017.out
Parallel run - timing based on wallclock.
NODE (s) Real (s) (%)
Time: 386.903 386.903 100.0
6:26
(Mnbf/s) (GFlops) (ns/day) (hour/ns)
Performance: 301.519 10.486 2.234 10.745
gcq#77: "Hold On Like Cliffhanger" (Urban Dance Squad)