Українська
Підсумки
Висновки
Обчислювальний кластер складається з вхідного, керувального й обчислювальних вузлів, з’єднаних мережею, зі спільною файловою системою та однаковими користувачами на всіх вузлах. Навчальний кластер будують із чотирьох ВМ Hyper-V з Ubuntu Server 26.04: статичні адреси Netplan, /etc/hosts, синхронізація часу chrony, вхід SSH за ключем і паралельні команди pdsh/clush, каталог /home через NFS. Slurm 25.11 складається з slurmctld на керувальному вузлі, slurmd на обчислювальних вузлах і необов’язкового slurmdbd для обліку; повідомлення захищає MUNGE зі спільним ключем. Кластер описує однаковий на всіх вузлах slurm.conf, ресурси вузлів беруть з slurmd -C, а cgroup обмежує завдання виділеними ядрами й пам’яттю. Користувач надсилає скрипти sbatch з директивами #SBATCH, запускає кроки srun (MPI – з --mpi=pmix), будує масиви й ланцюжки залежних завдань і перевіряє результат через squeue, scontrol і sacct. Планування із заповненням запускає короткі завдання в проміжках, не відкладаючи резервування, тому реалістичний --time вигідний. Вузли для обчислень налаштовують: регулятор performance, THP, swappiness, ліміти memlock і nofile, MTU, вимкнення зайвих служб – і кожну зміну перевіряють вимірюванням.
Питання для самоперевірки
- Які ролі мають вузли кластера? Навіщо окрема обчислювальна мережа?
- З яких ВМ складається навчальний кластер? Чому не можна побудувати кластер у WSL2?
- Навіщо однакові UID і GID користувачів на всіх вузлах? Як їх забезпечити?
- Для чого потрібна синхронізація часу в кластері Slurm? Як її налаштувати?
- Як налаштувати вхід за ключем SSH? Що роблять
pdsh,dshbakіclush? - Як експортувати й змонтувати каталог NFS? Що означають
rw,sync,root_squash? - Яке призначення
slurmctld,slurmd,slurmstepdіslurmdbd? - Як працює MUNGE і які вимоги він ставить до вузлів?
- Які розділи має
slurm.conf? Як отримати рядокNodeNameдля вузла? - Навіщо
cgroup.confі параметриConstrainCores,ConstrainRAMSpace? - Чим відрізняються
sbatch,srunіsalloc? Що таке крок завдання? - Які стани проходить завдання? Що означають
TIMEOUT,OUT_OF_MEMORY,NODE_FAIL? - Як запустити програму MPI через Slurm? Що станеться без PMIx?
- Як задати розкладку гібридного завдання MPI + OpenMP?
- Як працюють масиви завдань і залежності
afterok,afterany? - Поясніть планування із заповненням. Чому варто задавати реалістичний
--time? - З яких факторів складається пріоритет завдання? Що таке розділ і QoS?
- Які налаштування ОС застосовують на обчислювальних вузлах і навіщо?
- Як вивести вузол на обслуговування та повернути його? Що означає
down*?
Корисні посилання
- Документація Slurm: https://slurm.schedmd.com/documentation.html
- Документація Slurm 25.11: https://slurm.schedmd.com/archive/slurm-25.11-latest/
- Встановлення й налаштування Slurm: https://slurm.schedmd.com/archive/slurm-25.11-latest/quickstart_admin.html
- Параметри
slurm.conf: https://slurm.schedmd.com/archive/slurm-25.11-latest/slurm.conf.html - Параметри
sbatch: https://slurm.schedmd.com/archive/slurm-25.11-latest/sbatch.html - MPI і Slurm: https://slurm.schedmd.com/archive/slurm-25.11-latest/mpi_guide.html
- Документація Ubuntu Server: https://documentation.ubuntu.com/server/
- Hyper-V у Windows: https://learn.microsoft.com/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v
- MUNGE: https://dun.github.io/munge/