Базовая инструкция для пользователей суперкомпьютера НИУ ВШЭ
👉Вернуться к списку инструкций
Вычислительный кластер (суперкомпьютер) НИУ ВШЭ состоит из вычислительных узлов, объединенных высокоскоростной коммуникационной сетью. Каждый вычислительный узел имеет свою оперативную память и твердотельный накопитель, а также подключен к общему параллельному сетевому хранилищу. Чтобы независимые вычислительные узлы работали как единый компьютер, используется специальное параллельное программное обеспечение.
Как правило, работа с вычислительным кластером состоит из трех этапов:
- Пользователь подготавливает на своём компьютере исходные данные для имеющегося прикладного программного обеспечения суперкомпьютера или пишет собственную параллельную программу.
- Подключается к головному узлу кластера (логин-серверу) по SSH-протоколу (консолью), загружает исходные данные и ставит свою задачу в очередь на расчёт.
- Пользователь загружает результат с вычислительного кластера на свой персональный компьютер и изучает его локально.
Важно! Суперкомпьютер - это не сервер, а кластер. Сначала вы подключаетесь к головному узлу (логин-серверу), на котором нельзя запускать расчёты, с него можно только выполнять постановку задач в очередь. Непосредственное же выполнение расчётов происходит на мощных вычислительных узлах кластера, на которые ваши задачи распределит очередь задач.
Удаленное подключение к суперкомпьютеру осуществляется через головной узел (логин-сервер) по протоколу 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/<имя_пользователя> и физически размещены на параллельном хранилище данных Lustre. Максимальный объем данных для пользователя обусловлен дисковой квотой, определяемой при регистрации (в дальнейшем квота может быть увеличена при необходимости). Для просмотра текущей квоты используйте команду checkquota. Кроме того, на каждом вычислительном узле доступен локальный каталог для временных файлов (/tmp), размещенный на 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"
Для компиляции программ на вычислительном кластере НИУ ВШЭ установлены:
- Проприетарный пакет Intel Parallel Studio XE Cluster Edition for Linux.
- Набор бесплатных компиляторов GNU Compiler Collection.
Использование компилятора и библиотек Intel является предпочтительным, так как это обеспечивает существенное ускорение выполнения программ на центральных процессорах Intel суперкомпьютера.
Инструкция по компиляции программ на суперкомпьютере
Выбор компилятора осуществляется с помощью загрузки соответствующего модуля:
module load gnu8 openmpi3
или
module load INTEL/parallel_studio_xe_2020_ce
Для компиляции параллельных MPI-приложений с помощью компиляторов Intel Parallel Studio используйте команды mpiicc, mpiicpc, mpiifort:
- C: mpiicc [опции] -o program.out file1.c file2.c
- C++: mpiicpc [опции] -o program.out file1.cpp file2.cpp
- Fortran: mpiifort [опции] -o program.out file1.f90 file2.f90
Для компиляции параллельных MPI-приложений с помощью GNU Compiler Collection + OpenMPI используйте команды mpicc, mpixx, mpifort:
- C: mpicc [опции] -o program.out file1.c file2.c
- C++: mpicxx [опции] -o program.out file1.cpp file2.cpp
- Fortran: mpifort [опции] -o program.out file1.f90 file2.f90
При компиляции рекомендуется указывать особые флаги оптимизаций, позволяющие ускорить выполнение программы. Флаг оптимизации -O2 активирует векторизацию и базовую оптимизацию циклов. Данный флаг в большинстве случаев обеспечивает наилучшее быстродействие работы программы.
При использовании программ с большим количеством вычислений с плавающей точкой или обрабатывающих объёмные наборы данных рекомендуется использовать флаг -O3, активирующий более агрессивное преобразование циклов и условных выражений. Более подробную информацию по флагам оптимизации можно получить на сайте Intel Parallel Studio и GNU Compiler Collection.
При компиляции с использованием компиляторов Intel также рекомендуется указывать флаг -xHOST. Он позволяет компилятору использовать максимальный набор инструкций, доступных для процессоров на суперкомпьютере. Данный флаг ещё больше оптимизирует приложение, но снижает его переносимость на другие платформы (на всех узлах вычислительного кластера НИУ ВШЭ используется процессоры одного поколения с одинаковым набором инструкций).
Пример использования флагов оптимизации при компиляции MPI-программ:
mpiicpc -xHOST -O2 /opt/ohpc/pub/examples/mpi/hello.c -o ./program_name
mpicxx -O2 /opt/ohpc/pub/examples/mpi/hello.c -o ./program_name
Для компиляции обычных (не параллельных) программ с помощью Intel Parallel Studio используйте следующие команды:
- C: icc [опции] -o program.out file1.c file2.c
- C++: icpc [опции] -o program.out file1.cpp file2.cpp
- Fortran: ifort [опции] -o program.out file1.f90 file2.f90
Для компиляции обычных (не параллельных) программ с помощью GNU Compiler Collection используйте следующие команды:
- C: gcc [опции] -o program.out file1.c file2.c
- C++: g++ [опции] -o program.out file1.cpp file2.cpp
- Fortran: gfortran [опции] -o program.out file1.f90 file2.f90
Для запуска расчётов на суперкомпьютере пользователи обязаны использовать систему управления заданиями Slurm. Данная система (планировщик задач) управляет доступными ресурсами и размещает задачи на подходящих свободных вычислительных узлах. В соответствии с правилами, на головном узле запрещено выполнять задачи, требующие значимых вычислительных ресурсов.
Для постановки задачи в очередь рекомендуется использовать команду sbatch. Для её работы необходимо подготовить скрипт-файл с нужными ключами и командами:
#!/bin/bash
#SBATCH <ключ sbatch> <значение>
#SBATCH <ключ sbatch> <значение>
<пользовательские команды>
Другим способом запуска задачи в очереди является команда srun, выполняющая задачу интерактивно. Например: srun [опции] my_mpi_task
Подробная информация по запуску задач доступна в отдельной инструкции.
Посмотреть текущее состояние очереди задач можно командой squeue.
Для просмотра состояния только своих задач используйте короткую команду mj.
Для удаления задачи из очереди используйте команду scancel [номер задачи].
Список базовых команд в ОС Linux:
- pwd - вывести полный путь текущего каталога
- cd [путь] - сменить текущий каталог
- ls - показать содержимое каталога
- cp <источник> <получатель> - скопировать файл
- mv <источник> <получатель> - переместить файл
- rm <путь> - удалить файл
- cat <путь> - вывести содержимое файла в консоли
- mcedit [путь] - открыть текстовый редактор файлов
- exit - выйти из оболочки (или отключиться от суперкомпьютера)
Справку по любой команде в ОС Linux можно получить с помощью команды man <имя_команды> или <имя_команды> --help.
Для более подробного знакомства с ОС Linux Вы можете пройти бесплатные курсы, например:
Предлагаем также краткие пособия по разработке параллельных программ с использованием MPI:
Т.к. регистрация пользователей на суперкомпьютере производится через Единый личный кабинет НИУ ВШЭ, то при блокировке учетной записи отделом персонала, прекращается и доступ пользователя на суперкомпьютер. Если сотрудник при этом продолжает работать (идёт процесс переоформления договора или перевод в другое подразделение через увольнение), то руководитель работника может проставить дату повторного приёма в ЕЛК (сервис "Установка ДПП в подразделении"), либо обратиться в управление персонала по адресу personal@hse.ru с этой просьбой. В таком случае учетная запись разблокируется автоматически на следующий день после установки даты.
Плановые профилактические работы на суперкомпьютере проводятся ежемесячно в последний рабочий день месяца (пн-пт) с 9:30 до 18:00. На время профилактических работ очередь задач приостанавливается, a доступ для пользователей закрывается. Активные задачи снимаются. Задачи, поддерживающие перезапуск (см. пункт Перезапуск задач в инструкции по запуску), перезапускаются после окончания работ.
Плановая профилактика проводится для того, чтобы обеспечить пользователям стабильную работу кластера в течение целого месяца.
Для решения возникающих вопросов по использованию вычислительного кластера НИУ ВШЭ обратитесь к специалистам отдела суперкомпьютерного моделирования, создав заявку на портале поддержки hpc.hse.ru/support, либо по электронной почте hpc@hse.ru. В заявке следует подробно описать возникшую проблему и шаги по её воспроизведению.
Нашли опечатку?
Выделите её, нажмите Ctrl+Enter и отправьте нам уведомление. Спасибо за участие!
Сервис предназначен только для отправки сообщений об орфографических и пунктуационных ошибках.