pine.cpct.sibsutis.ru
Головная машина кластера (frontend, login node) работает 24/7 и доступа из сети Интернет. Доступ выполняется по протоколу SSH. В GNU/Linux для подключения рекомендуется использовать стандартный SSH-клиент:
$ ssh username@pine.cpct.sibsutis.ru
Пользователи Microsoft Windows могут использовать утилиту ssh из WSL или PuTTY.
Для копирования файлов на головную машину с локальной можно использовать утилиты scp, WinSCP или использовать git на головной машине.
Кластер функционирует под управлением системы очередй SLURM.
Задачи можно направлять в две очереди:
2288
-- два сервера x86-64, каждый сервер включает два процессора Xeon Gold 5218N, RAM 390GB (DDR4 2933MHz); процессор Xeon Gold 5218N: 16 физических ядер x86-64 (32 аппаратных потока); кеш-память: L1 32KiB на ядро, L2 1MiB на ядро, L3 22MiB - общий для 16 ядер одного процессора, строка кеш памяти 64 байта.
rh2288
-- два сервера x86-64, каждый сервер включает два процессора Xeon Gold 6230N, RAM 263GB (DDR4 2933MHz); процессор Xeon Gold 6230N: 20 физических ядер x86-64 (40 аппаратных потоков), кеш-память: L1 32KiB на ядро, L2 1MiB на ядро, L3 28MiB -- общий для 20 ядер одного процессора, строка кеш памяти 64 байта.
spacemit-rv64gc
-- два узла Banana Pi BPI-F3, процессор SpacemiT K1 c 8 ядрами SpacemiT X60 RISC-V, RAM 4GB LPDDR4; чип включает два кластера по 4 ядра, архитектура ядра X60 RISC-V RV64GCVB, 256-bit RVV1.0 VLEN 256, RVA22 Profile, rv64imafdcv_sscofpmf_sstc_svpbmt_zicbom_zicboz_zicbop_zihintpause
, 8 стадийный конвейер с прямым порядком выполнения команд, две инструкции за такт; кеш-память: L1 32KiB на ядро, L2 512KiB - общий для 4 ядер кластера Инструкция по кросс-компиляции и запуску задач, SpacemiT K1 Datasheet: https://docs.banana-pi.org/en/BPI-F3/SpacemiT_K1_datasheet
Запрос состояния вычислительных узлов sinfo
:
$ sinfo --long --Node
Thu Jan 09 13:27:23 2025
NODELIST NODES PARTITION STATE CPUS S:C:T MEMORY TMP_DISK WEIGHT AVAIL_FE REASON
pine-cn1 1 rh2288 idle 80 2:20:2 256000 0 1 (null) none
pine-cn2 1 rh2288 idle 80 2:20:2 256000 0 1 (null) none
pine-cn3 1 2288* idle 64 2:16:2 376000 0 1 (null) none
pine-cn4 1 2288* idle 64 2:16:2 376000 0 1 (null) none
pine-rbpi 1 rasp4 idle 4 1:4:1 3072 0 1 (null) none
pine-spacemit1 1 spacemit-rv64gc idle 8 1:8:1 3072 0 1 (null) none
pine-spacemit2 1 spacemit-rv64gc idle 8 1:8:1 3072 0 1 (null) none
Запрос состояния очередей:
$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
2288* up 20:00 2 idle pine-cn[3-4]
rh2288 up 20:00 2 idle pine-cn[1-2]
Проверка состояния задач в очередях squeue
:
$ squeue -a
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
Удаление задачи из очереди scancel <jobid>
.
Готовим job-файл (задание) с указанием необходимого числа вычислительных узлов и скрипт запуска на выделенной подсистеме:
$ cat task.job
#!/bin/bash
# Резервируем два сервера, по 8 MPI-процессов на каждом
#SBATCH --nodes=2 --ntasks-per-node=8
#SBATCH --partition=2288
mpiexec ./mpi_app
Ставим задание в очередь sbatch
:
$ sbatch task.job
Submitted batch job 109
После выполнения программы в каталоге с job-файлом будет сформирован файл slurm-<JOB_ID>.out
c выводом программы в stdout.
При выполнении задания SLURM определяет следующие переменные среды, которые можно использовать в скрипте:
cat task.job
#!/bin/bash
#SBATCH --nodes=2 --ntasks-per-node=8
echo "JOB_ID: $SLURM_JOB_ID"
echo "NODELIST: $SLURM_JOB_NODELIST"
echo "CPUS_PER_NODE: $SLURM_JOB_CPUS_PER_NODE"
echo "NTASKS: $SLURM_NTASKS"
echo "NTASKS_PER_NODE: $SLURM_NTASKS_PER_NODE"
echo "NPROCS: $SLURM_NPROCS"
echo "NNODES: $SLURM_NNODES"