ОСНОВЫ ПРОЕКТИРОВАНИЯ И АДМИНИСТРИРОВАНИЯ КЛАСТЕРНЫХ СИСТЕМ(24-32 часа) |
Данный курс предназначен для подготовки системных программистов, специалистов по обслуживанию и администрированию высокопроизводительных вычислительных кластеров. Предполагается наличие базовой подготовки по ОС UNIX или Linux на уровне пользователя и основных понятий администрирования. Курс включает в себя обзор ключевых особенностей вычислительных кластеров, сведения, необходимые для программирования и администрирования кластерных установок на базе ОС Linux. Курс включает теоретическую часть и практикум, который может быть проведён как на модельном кластере из нескольких узлов, так и на кластере виртуальных машин.
Теоретическая часть.
- Введение. Что такое вычислительные кластеры.
Типы кластеров, ключевые особенности вычислительных кластеров. Отличия вычислительных кластеров от суперкомпьютеров и локальных сетей.
Технические вопросы, возникающие при эксплуатации кластеров: необходимость в спец. подготовке помещения, большая электрическая и тепловая мощность, большое число точек отказа, сложность администрирования.
Достоинства и недостатки решения задач на вычислительных кластерах. Типы задач, эффективно решаемых на кластерах. Учёт смешанной архитектуры (многопроцессорность, многоядерность). - Общие вопросы.
Аспекты администрирования кластеров: контроль доступа (работа с пользовательскими записями и правами), безопасность, поддержка и настройка вычислительных пакетов и библиотек, управление очередями, обслуживание узлов (чистка временных файлов, обновление ПО и т.п.), физическое обслуживание, мониторинг.
Важность понимания внутреннего устройства параллельных пакетов и сред.
Стандарт ОС для кластеров - Linux, а значит знание Linux необходимо. Азы администрирования. Сервисы, структура каталога /etc, принцип работы init, пакеты, компиляция программ и библиотек из исходных текстов. Понятия лимитов, дисковой квоты. Pluggable Authentication Modules (PAM). - Сетевые вопросы.
Тонкая настройка параметров TCP/IP. Понятие о сетевых файловых системах. NFS, CIFS, Lustre, GFSv2, Coda. Достоинства и недостатки сетевых ФС. Вопросы оптимизации NFS и CIFS. Синхронизация времени. Настройка доступа по ssh извне и внутри кластера. Варианты общей авторизации: LDAP, NIS+, тиражирование учётной информации. Синхронизация файлов на узлах: rcp/scp, rsync. Массовые команды: ssh+bash, pdshell, cluster-shell. - Параллельные среды. Вопросы управления.
MPI: mpich, mvapich, IntelMPI, LAM. OpenMP. Проблема некорректно завершённых задач. Проблема временных файлов. Организация очереди задач. Запрет прямого выполнения задач на узлах - pam_listfile. Варианты политик использования ресурсов. Возможности и команды систем управления заданиями. - Компиляторы, библиотеки.
Влияние оптимизации компиляторов на производительность. Варианты лицензирования коммерческих компиляторов. Необходимость настройки установленных параллельных сред на новые компиляторы. Динамические библиотеки для компиляторов и настройки должны быть продублированы на узлы. Параллельные библиотеки - FFT3, Blas, MKL. - Смежные вопросы. Мониторинг - системы Nagios, Ganglia, AntMon. Мониторинг UPS (powershute, nut). Системы анализа логов и целостности системы (logcheck, tripware, tiger, ossec, chkrootkit, rkhunter). Организация резервного копирования - логические тома, tar/cpio, Bacula, Amanda. Поддержка пользователей - по e-mail, телефону, через web-сайт.
Содержание заданий практикума.
- Установка дистрибутива Linux, начальная настройка. Тиражирование на несколько узлов (автоматическая установка, загрузка по сети и разворачивание образа, дублирование ЖД). Бездисковый вариант загрузки.
- Настройка головной машины кластера - nfs, ssh. Настройка безпарольного входа на узлы и автомонтирование домашних каталогов. Настройка NAT для узлов.
- Установка и настройка NUT, ossec, logcheck, logrotate.
- Установка и настройка mpich. Запуск тестовых задач. Настройка pam_listfile.
- Установка и настройка системы управления.
- Резервное копирование сервера и данных пользователей, проверка возможности восстановления.
Основная литература:
- Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. - СПб.: БХВ-Петербург, 2002. - 608 с.
- Воеводин Вл.В., Жуматий С.А. Вычислительное дело и кластерные системы. - М.: Изд-во МГУ, 2007. - 161 с.
- Материалы информационно-аналитического центра по параллельным вычислениям Parallel.ru.
© Лаборатория Параллельных информационных технологий НИВЦ МГУ