• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Базовая инструкция для пользователей суперкомпьютера НИУ ВШЭ

👉Вернуться к списку инструкций

Что такое суперкомпьютер?

Вычислительный кластер (суперкомпьютер) НИУ ВШЭ состоит из вычислительных узлов, объединенных высокоскоростной коммуникационной сетью. Каждый вычислительный узел имеет свою оперативную память и твердотельный накопитель, а также подключен к общему параллельному сетевому хранилищу. Чтобы независимые вычислительные узлы работали как единый компьютер, используется специальное параллельное программное обеспечение.
Как правило, работа с вычислительным кластером состоит из трех этапов:

  1. Пользователь подготавливает на своём компьютере исходные данные для имеющегося прикладного программного обеспечения суперкомпьютера или пишет собственную параллельную программу.
  2. Подключается к головному узлу кластера (логин-серверу) по SSH-протоколу (консолью), загружает исходные данные и ставит свою задачу в очередь на расчёт.
  3. Пользователь загружает результат с вычислительного кластера на свой персональный компьютер и изучает его локально.

Важно! Суперкомпьютер - это не сервер, а кластер. Сначала вы подключаетесь к головному узлу (логин-серверу), на котором нельзя запускать расчёты, с него можно только выполнять постановку задач в очередь. Непосредственное же выполнение расчётов происходит на мощных вычислительных узлах кластера, на которые ваши задачи распределит очередь задач.

Удаленный доступ к суперкомпьютеру

Удаленное подключение к суперкомпьютеру осуществляется через головной узел (логин-сервер) по протоколу SSH по адресу cluster.hpc.hse.ru, порт 2222.
В операционных системах Linux и Mac OS для подключения используется приложение ssh (см. инструкцию), для Microsoft Windows рекомендуется свободно распространяемая программа PuTTY (см. инструкцию).
Вход в систему начинается с системного приглашения login: В ответ на него следует ввести имя пользователя и нажать клавишу [ENTER]. Затем система запросит пароль пользователя. Введите пароль и нажмите клавишу [ENTER]. Обратите внимание, при вводе пароля символы на экране не печатаются, тем не менее, сам пароль вводится.
Для смены своего пароля после входа в систему необходимо воспользоваться командой passwd
Потребуется ввести свой текущий пароль, затем новый и подтверждение нового. Вводимые символы отображаться не будут.

Передача файлов на суперкомпьютер

Для передачи файлов на вычислительный кластер воспользуйтесь программами, поддерживающими протокол SFTP. Для MS Windows рекомендуется программа WinSCP (см. инструкцию), для ОС Linux - scp (см. инструкцию), для MacOS - программы scp/Cyberduck/Mountain Duck.

 

Хранение файлов

В соответствии с правилами, пользователь самостоятельно обеспечивает резервное копирование своих данных. Хранение данных, которые уже не участвуют в вычислениях, на суперкомпьютере не допускается.

Пользовательские директории имеют вид /home/$USER и /scratch/$USER и физически размещены на параллельных хранилищах данных Lustre. Использование scratch обязательно при обработке больших датасетов, в остальных случаях допускается работать с файлами напрямую из home. Максимальный объем данных для пользователя обусловлен дисковой квотой, определяемой при регистрации (в дальнейшем квота может быть увеличена при необходимости). Для просмотра текущей квоты используйте команду checkquota. Кроме того, на каждом вычислительном узле доступен локальный каталог для временных файлов ($TMPDIR), размещенный на SSD узла. После окончания работы программы временные файлы пользователя в /tmp узла удаляются автоматически.

Более подробно о домашних директориях.

Настройка окружения

Для управления версиями прикладных программных пакетов и библиотек на суперкомпьютере установлен программный пакет Lmod. Он позволяет гибко настраивать переменные окружения для использования тех или иных версий ПО и отслеживания их зависимостей (в том числе, при запуске в пакетном режиме с помощью sbatch). Также использование Lmod позволяет гибко управлять разными версиями приложения (например, можно быстро переключаться между различными версиям компиляторов и версиями библиотеки MPI).

Использование пакета Lmod

Основные команды работы с пакетом Lmod

  • module avail – вывести список доступных модулей
  • module list – вывести список загруженных модулей
  • module load module1 – загрузить модуль module1 версии version
  • module unload module1 – выгрузить модуль module1 версии version
  • module swap module1 module2 – заменить загруженный модуль module1 на module2
  • module purge – выгрузить все загруженные модули
  • module whatis module1 – показать информацию о модуле module1
  • module save [env_name] – сохранить текущий набор загруженных модулей под именем env_name. Если не указывать имя, то набор будет перезаписан набор по умолчанию
  • module restore [env_name] – загрузить набор сохранённых модулей
  • module describe [env_name] – показать состав набора сохранённых модулей

Примеры использования пакета Lmod

Просмотр загруженных модулей:

$ module list
Currently Loaded Modules:
1) autotools    2) prun/1.2    3) gnu7/7.3.0    4) openmpi3/3.1.3    5) ohpc

Просмотр доступных модулей:

$ module avail
- /opt/ohpc/pub/modulefiles -
CUDA/10.0                   cnpy_lib/1.0           hpcx/hpcx-stack
Python/Anaconda_v10.2019    gnu7/7.3.0 (L)         hpcx/hpcx (D)
EasyBuild/3.7.1             fltk/v1.3.5            hwloc/1.11.10
Где:
D: модуль, загружаемый по умолчанию;
L: модуль, загруженный в настоящий момент.

Пример: выгрузка всех модулей и загрузка модулей CUDA/10.2 и Python/Anaconda_v10.2019:

$ module purge
$ module load CUDA/10.2 Python/Anaconda_v10.2019
$ module list
Currently Loaded Modules:
1) CUDA/10.2    2) Python/Anaconda_v10.2019

Сохранение набора модулей по умолчанию:

$ module save
Saved current collection of modules to: "default"

Компиляция программ на суперкомпьютере

Для компиляции программ на вычислительном кластере НИУ ВШЭ установлены:

  1. Проприетарный пакет Intel Parallel Studio XE Cluster Edition for Linux.
  2. Набор бесплатных компиляторов GNU Compiler Collection.

Использование компилятора и библиотек Intel является предпочтительным, так как это обеспечивает существенное ускорение выполнения программ на центральных процессорах Intel суперкомпьютера. Более подробную информацию по компиляции программ смотрите в инструкции.

Постановка задачи в очередь

Для запуска расчётов на суперкомпьютере пользователи обязаны использовать систему управления заданиями Slurm. Данная система (планировщик задач) управляет доступными ресурсами и размещает задачи на подходящих свободных вычислительных узлах. В соответствии с правилами, на головном узле запрещено выполнять задачи, требующие значимых вычислительных ресурсов.

Для постановки задачи в очередь рекомендуется использовать команду sbatch. Для её работы необходимо подготовить скрипт-файл с нужными ключами и командами:

#!/bin/bash
#SBATCH <ключ sbatch> <значение>
#SBATCH <ключ sbatch> <значение>
<пользовательские команды>

Другим способом запуска задачи в очереди является команда srun, выполняющая задачу интерактивно. Например: srun [опции] my_mpi_task

Подробная информация по запуску задач доступна в отдельной инструкции.

Использование очередей SLURM

В системе управления заданиями Slurm создано несколько очередей. Они позволяют распределять ресурсы суперкомпьютера так, чтобы пользователи могли запускать стабильные задачи или быстро тестировать код, без длительного ожидания.

Список доступных очередей доступен в отдельной инструкции.

Просмотр состояния очереди

Посмотреть текущее состояние очереди задач можно командой squeue.

Для просмотра состояния только своих задач используйте короткую команду mj.

Удаление задачи из очереди

Для удаления задачи из очереди используйте команду scancel [номер задачи].

Базовые команды ОС Linux

Список базовых команд в ОС Linux:

  • pwd - вывести полный путь текущего каталога
  • cd [путь] - сменить текущий каталог
  • ls - показать содержимое каталога
  • cp <источник> <получатель> - скопировать файл
  • mv <источник> <получатель> - переместить файл
  • rm <путь> - удалить файл
  • cat <путь> - вывести содержимое файла в консоли
  • mcedit [путь] - открыть текстовый редактор файлов
  • exit - выйти из оболочки (или отключиться от суперкомпьютера)

Справку по любой команде в ОС Linux можно получить с помощью команды man <имя_команды> или <имя_команды> --help.

Для более подробного знакомства с ОС Linux Вы можете пройти бесплатные курсы, например:

Предлагаем также краткие пособия по разработке параллельных программ с использованием MPI:

Создание общей папки для нескольких пользователей

Для организации совместного доступа к файлам существует возможность создать общую папку для проекта в каталоге одного из пользователей (например, в каталоге руководителя проекта).

Подготовить общую папку можно с помощью следующих команд:

  • Скопируйте bash-скрипт себе в каталог: cp /opt/hse/create_shared_folder.sh .
  • Поменяйте в скопированном файле значения переменных folder_name (имя общей папки) и users (список пользователей, у кого будет доступ до общей папки)
  • Запустите скрипт на выполнение: bash create_shared_folder.sh
Как пользоваться суперкомпьютером во время переоформления сотрудника?

Т.к. регистрация пользователей на суперкомпьютере производится через Единый личный кабинет НИУ ВШЭ, то при блокировке учетной записи отделом персонала, прекращается и доступ пользователя на суперкомпьютер. Если сотрудник при этом продолжает работать (идёт процесс переоформления договора или перевод в другое подразделение через увольнение), то руководитель работника может проставить дату повторного приёма в ЕЛК (сервис "Установка ДПП в подразделении"), либо обратиться в управление персонала по адресу personal@hse.ru с этой просьбой. В таком случае учетная запись разблокируется автоматически на следующий день после установки даты.

О профилактических работах

Плановые профилактические работы на суперкомпьютере проводятся ежемесячно в последний рабочий день месяца (пн-пт) с 9:30 до 18:00. На время профилактических работ очередь задач приостанавливается, a доступ для пользователей закрывается. Активные задачи снимаются. Задачи, поддерживающие перезапуск (см. пункт Перезапуск задач в инструкции по запуску), перезапускаются после окончания работ.

Плановая профилактика проводится для того, чтобы обеспечить пользователям стабильную работу кластера в течение целого месяца.

В случае проблем

Для решения возникающих вопросов по использованию вычислительного кластера НИУ ВШЭ обратитесь к специалистам отдела суперкомпьютерного моделирования, создав заявку на портале поддержки hpc.hse.ru/support, либо по электронной почте hpc@hse.ru. В заявке следует подробно описать возникшую проблему и шаги по её воспроизведению.

Как создать общую папку для проекта?

Для организации совместного доступа к файлам существует возможность создать общую папку для проекта в каталоге одного из пользователей (например, в каталоге руководителя проекта). Для создания общей папки необходимо:

  1. Создать каталог, который будет выполнять роль общей папки, в домашнем каталоге руководителя проекта (например, user): mkdir /home/user/proj_xxxx_shared
  2. Установить на каталог права доступа для пользователя-участника проекта (например student)setfacl -R -m u:student:rwx /home/user/proj_xxxx_shared
  3. Установить на каталог права доступа по умолчанию для пользователя studentsetfacl -R -d -m u:student:rwx /home/user/proj_xxxx_shared
  4. Установить на домашний каталог пользователя, владельца общей папки, прав доступа для пользователя studentsetfacl -m u:student:--x /home/user/
  5. Теперь пользователь student имеет доступ к каталогу /home/user/proj_xxxx_shared и может работать с файлами в нём. Чтобы назначить права для других пользователей, необходимо повторить шаги 2-4, изменив логин пользователя.
  6. Для удобства, каждый пользователь может разместить у себя в домашнем каталоге ссылку на общую папку с помощью команды: ln -s /home/user/proj_xxxx_shared proj_xxxx_shared

Также можно воспользоваться bash-скриптом для выполнения этих действий. Общая папка будет создана в каталоге пользователя, запустившего скрипт. Скопируйте его к себе в каталог: cp /opt/hse/create_shared_folder.sh .
И поменяйте значения переменных folder_name (имя общей папки) и users (список пользователей, у кого будет доступ до общей папки). После чего запустите на выполнение: bash create_shared_folder.sh.
 

Текст скрипта

#!/bin/bash

folder_name=proj_xxxx_shared
users=(user1 user2 user3 user4)

folder_owner=$(whoami)
folder_path=/home/$folder_owner/$folder_name
mkdir -p $folder_path

for user in ${users[@]}; do
    if id $user > /dev/null 2>&1; then
        setfacl -R -m u:$user:rwx $folder_path
        setfacl -R -d -m u:$user:rwx $folder_path
        setfacl -m u:$user:--x /home/$folder_owner
        echo "Added $user to $folder_path permissions"
    else
        echo "User $user not found!"
    fi
done


 

Нашли опечатку?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!
Сервис предназначен только для отправки сообщений об орфографических и пунктуационных ошибках.