| layout | title | order |
|---|---|---|
concise |
Подключение к кластеру |
10 |
Доступ к управляющей машине кластера осуществляется по SSH
- Хост: fdslab.dc.phystech.edu (если имя не работает, тогда 93.175.29.48)
- Порт: 5555
Для доступа можно использовать следующие программы
- Из Linux, Mac OS и Ubunutu из Windows 10: ssh для доступа к удаленному терминалу, scp для передачи файлов между вашим компьютером и кластером
- Из Windows: Bitvise SSH Client для удаленного доступа и передачи файлов, Xming для запуска графических приложений.
Пример входа на управляющую машину (логин - v.pupkin):
ssh -p 5555 v.pupkin@fdslab.dc.phystech.edu
Чтобы запускать графические приложения необходимо указать ключ -X команде ssh, а также опционально включить сжатие данных ключом -C
ssh -CX -p 5555 v.pupkin@fdslab.dc.phystech.edu
Если вы не знаете свой логин и пароль, обратитесь к преподавателю.
Для доступа из Windows, заполните поля Host, Port и Username на вкладке Login программы Bitvise SSH Client, а также, если планируете использовать графические программы, поставьте галочку напротив Enable в X11 Forwarding на вкладке Terminal. Для работы графических приложений необходимо иметь запущенный сервер Xming.
![]() |
![]() |
|---|---|
![]() |
Для редактирования кода можно использовать один из следующих редакторов
- gedit (требует запущенного X сервера)
- atom (требует запущенного X сервера)
- mcedit
- nano
- vim
- emacs
Кластер состоит из трех машин — управляющего узла head и двух вычислительных узлов node01 и node02. Пользователи запускают свои задачи с управляющего узла, а автоматизированная система управления задачами запускает задачу на одном или обоих вычислительных узлах согласно требованиям, указанным пользователем. Домашние директории пользователей находятся на общей файловой системе, таким образом, все изменения становятся одновременно видны на всех трех узлах. Это удобно, когда программа пишется на вычислительном узле, а запускается на расчетном.
На кластере установлена система управления задачами (PBS, Portable Batch System) Torque. Она занимается распределением ресурсов кластера (узлов, вычислительных ядер, видеокарт, оперативной памяти, вычислительного времени) между пользователями. Пользователь описывает набор команд, требуемых для запуска задачи в специальном pbs скрипте.
Пример задачи (запишем в файл sample.pbs)
#PBS -N sample-task Назовём задачу sample-task
#PBS -l nodes=2:ppn=4 Запросим для задачи два узла, по 4 ядра на узле
#PBS -l walltime=00:05:00 Установим максимальное время работы задачи 5 минут
/usr/local/bin/mpirun hostname Запустить 8 копий (по 4 на каждом узле) программы hostnameСформированный запрос можно запустить с помощью программы qsub:
[v.pupkin@head ~]$ qsub sample.pbs
4850.head.control
Задача поставлена в очередь под номером 4850. Посмотреть статус выполнения задачи можно командой qstat
[v.pupkin@head ~]$ qstat
Job ID Name User Time Use S Queue
------------------------- ---------------- --------------- -------- - -----
4842.head task1 user1 100:59:0 R batch
4846.head task2 user2 1764:27: R batch
4849.head task3 user3 01:29:20 R batch
4850.head sample-task v.pupkin 00:00:00 C batch
Здесь перечислены последние задачи, пользователи, которые их запустили, время работы этих задач, статус выполнения (C - закончена, R - выполняется, E - ошибка). Для досрочного завершения задачи можно использовать команду qdel, указав номер задачи, которую нужно снять.
После завершения задачи (успешного или не успешного), в той директории, из которой запускалась задача, создаются два файла вида <имя задачи>.o<номер задачи> и <имя задачи>.e<номер задачи>. Первый содержит нормальный вывод программы (всех программ, запущенных в рамках задачи), а второй — вывод ошибок. В данном случае файлы содержат
[v.pupkin@head ~]$ cat sample-task.o4850
node02.control
node02.control
node02.control
node02.control
node01.control
node01.control
node01.control
node01.control
[v.pupkin@head ~]$ cat sample-task.e4850
[v.pupkin@head ~]$
Файл с ошибками пуст, а файл вывода содержит выводы 8 копий программы hostname, половина из которых была запущена на узле node01 (полное имя узла - node01.control), а остальные — на узле node02 (полное имя узла - node02.control). Порядок строк может быть произвольным, так как выводы от всех запущенных копий смешиваются.


