Содержание к диссертации
Введение
Глава 1. Тенденции развития суперкомпьютерных вычислительных центров 20
1.1 Суперкомпьютерные центры в мире 20
1.2 Суперкомпьютерные центры в России и РАН 27
1.3 Типовая структура вычислительного центра 31
1.3.1 Вычислительная инфраструктура 31
1.3.2 Системы хранения данных в структуре суперкомпьютерного центра 40
1.3.3 Сетевая инфраструктура вычислительного центра 43
1.3.4 Инженерная инфраструктура вычислительного центра 45
1.3.5 Программное обеспечение суперкомпьютерных центров 47
Глава 2. Создание вычислительных систем для научного суперкомпьютерного центра 57
2.1 Архитектура суперкомпьютерных систем и особенности программирования 57
2.1.1 Вычислительные системы на основе векторных процессоров 58
2.1.2 Многопроцессорные системы с общей памятью 59
2.1.3 Вычислительные кластеры и MPP-системы 62
2.1.4 Уровни выполнения программ пользователей 64
2.2 Метод выбора вычислительных систем 67
2.2.1 Отображение архитектуры вычислительной системы на прикладные программы 68
2.2.2 Программно-зависимый выбор параметров оборудования вычислительной системы 74
2.2.3 Выбор оборудования по производительности и стоимости 75
2.2.4 Соответствие экосистеме суперкомпьютерного центра 76
2.2.5 Дополнительные ограничения при выборе оборудования для вычислительного центра 77
2.3 Оценка производительности вычислительных систем 81
2.3.1 Тесты для оценки вычислительных систем 81
2.3.2 Тестирование создаваемых суперкомпьютеров 90
2.3.3 Определение энергоэффективности приложений 125
2.4 Реальная производительность вычислительных систем 126
2.4.1 Использование ускорителей 126
2.4.2 Программная зависимость производительности систем 129
Глава 3. Разработка векторного процессора с архитектурой управления потоком данных 132
3.1 Недостатки процессоров классической архитектуры и их влияние на эффективность работы высокопроизводительных вычислительных систем 132
3.2 Проблемы создания потокового процессора 136
3.3 Векторный потоковый процессор (ВПП) 148
3.3.1 Структурная схема ВПП и особенности реализации 148
3.3.2 Оценка производительности ВПП на программе умножения матриц 153
3.3.3 Выполнение в ВПП задач сортировки 157
3.4 Моделирование параллельной работы ядер векторного потокового процессора с общей памятью 170
3.4.1 Классы задач, на которых ВПП имеет преимущество перед современными процессорами, и перспективы использования ВПП 178
Глава 4. Создание суперкомпьютеров для вычислительного центра и направления его развития 182
4.1 Суперкомпьютерные системы межведомственного суперкомпьютерного центра РАН 182
4.1.1 Вычислительная система МВС-1000М 182
4.1.2 Вычислительная система МВС-15000ВM 190
4.1.3 Вычислительная система МВС-6000IM 196
4.1.4 Вычислительная система МВС-100К 201
4.1.5 Вычислительная система МВС-10П 206
4.2 Грид-инфраструктура для суперкомпьютерных приложений 216
4.3 Анализ использования суперкомпьютерных ресурсов 219
4.4 Направления развития научного суперкомпьютерного центра 227
4.5 Построение межведомственного центра коллективного пользования в модели программно-определяемого ЦОД 229
4.5.1 Программно-определяемый центр обработки данных (ЦОД) 229
4.5.2 Требования к межведомственному центру коллективного пользования общего назначения 230
4.5.3 Концепция программно-определяемого ЦОД 231
4.5.4 Архитектура программно-определяемого ЦОД 233
4.5.5 Реализация модели программно-определяемого ЦОД 237
Заключение 242
Список литературы 248
- Суперкомпьютерные центры в мире
- Отображение архитектуры вычислительной системы на прикладные программы
- Моделирование параллельной работы ядер векторного потокового процессора с общей памятью
- Реализация модели программно-определяемого ЦОД
Суперкомпьютерные центры в мире
Решение актуальных задач современной науки невозможно без развитой научно-исследовательской инфраструктуры, особое место в которой занимают суперкомпьютерные центры. Научные суперкомпьютерные центры предоставляют услуги по высокопроизводительным вычислениям пользователям - ученым, осуществляющим исследования в том числе в следующих областях фундаментальной и прикладной науки:
- физика, математика, квантовая химия, биология;
- моделирование природных явлений (например, протекающих в недрах планет при сверхвысоких температурах и давлении);
- моделирование разведки, добычи и транспортировки природных ресурсов, углеводородного сырья;
- моделирование биологических процессов;
- моделирование погоды и климата, охрана окружающей среды;
- атомная и термоядерная энергетика;
- моделирование в области создания оборонной и авиакосмической техники, судостроения, автомобильной промышленности и отдельных технологических процессов (например, используемых при разработке новых многофункциональных материалов и материалов с заданными свойствами);
- медицина и фармакология;
- моделирование в области нано- и биотехнологий.
По данным рейтинга TOP500 на ноябрь 2018 года [30], в 500 самых мощных суперкомпьютеров (СК) мира входят 173 суперкомпьютера для науки, образования и прикладных исследований. Заметим, что все суперкомпьютеры в списке TOP500, имеют пиковую производительность более 1 ПФлопс. Далее при упоминании последнего списка TOP500 подразумевается состояние на ноябрь 2018 года.
Мировой опыт показывает, что крупные научно-исследовательские организации часто используют собственные суперкомпьютерные центры, оптимизированные для решений определенных классов научных и технических задач. Наиболее производительные суперкомпьютеры находятся в США и Китае.
В США наиболее мощные вычислительные центры созданы в национальных лабораториях, относящиеся к министерству энергетики.
Ок-Риджская национальная лаборатория (ORNL) [31]. Основными направлениями исследований ORNL являются науки о материалах, национальная безопасность, ядерная физика, нейтронная физика, возобновляемая энергетика, информационные технологии. В центре установлены несколько суперкомпьютеров, включая систему Summit, возглавляющую список TOP500 с пиковой производительностью 200 ПФлопс и Titan c с пиковой производительностью 27 ПФлопс (9-е место в TOP500).
Ливерморская национальная лаборатория им. Э. Лоуренса (LLNL) [32] занимается проблемами национальной безопасности, энергетики, экологии и биологии. В LLNL установлены суперкомпьютеры Sierra (125,7 ПФлопс, 2-е место в TOP500), Sequoia (20 ПФлопс, 10-е место в TOP500), Lassen (19,9 ПФлопс, 11-е место в TOP500).
Лос-Аламосская национальная лаборатория (LANL) [33] занимается вопросами национальной безопасности и перспективными направлениями развития энергетики. В лаборатории установлен суперкомпьютер Trinity с пиковой производительностью 41,5 ПФлопс (6-е место в TOP500).
В Китае наиболее мощными суперкомпьютерными центрами являются следующие.
Национальный суперкомпьютерный центр Уси (NSCC-Wuxi [34] создан Министерством науки и технологий Китая. Центр предоставляет услуги по компьютерной и технической поддержке в областях биомедицины, океанологии, разведки нефти и газа, климатической метеорологии, финансового анализа, информационной безопасности, промышленного дизайна, анимации. NSCC-Wuxi располагает суперкомпьютером Sunway TaihuLight, впервые в мире достигнувшим пиковой производительности свыше 100 ПФлопс (125 ПФлопс, 3-е место в списке TOP500).
Национальный суперкомпьютерный центр в Гуанчжоу [35] осуществляет расчеты в науках о материалах, климатологии, океанологии, биомедицине, астрономии и геофизике, технологиях. В Центре установлен суперкомпьютер Tianhe-2A (100,6 ПФлопс, 4-е место в TOP500).
К крупным вычислительные центрам, созданным в развитых странах в сфере академической науки и образования, относятся следующие.
Национальный центр суперкомпьютерных приложений (NCSA), США [36] при Иллинойском университете поддерживается Национальным научным фондом, правительством штата Иллинойс и частными компаниями. Основными направлениями исследований являются биоинформатика и медицинские науки, информационные технологии, культура и общество, науки о Земле и окружающей среде, а также физика и астрономия. Центр также предоставляет вычислительные, информационные, сетевые ресурсы и средства визуализации для инженеров и ученых в Иллинойском и других университетах. В центре установлен суперкомпьютер Blue Waters с пиковой производительностью 13 ПФлопс [37].
Суперкомпьютерный центр Сан-Диего (SDSC), США [38] основан Национальным научным фондом (NSF). Основными направлениями исследований являются информационные технологии, биология, геоинформатика, физика, химия. Центр предоставляет вычислительные ресурсы и компетенции научным, промышленным и правительственным организациям. В центре установлен суперкомпьютер Comet c пиковой производительностью 2,76 ПФлопс.
Гауссовский центр суперкомпьютерных вычислений (GCS), Германия [39] объединил в 2007 году три национальных суперкомпьютерных центра: Юлихский исследовательский центр, Суперкомпьютерный центр имени Лейбница и Центр высокопроизводительных вычислений при Университете Штутгарта. На сегодняшний день GCS предлагает самую мощную суперкомпьютерную инфраструктуру в Европе для широкого спектра научных и промышленных исследований в различных областях, в общей сложности более 40 ПФлопс.
GCS совместно финансируется Министерством образования и науки Германии и соответствующими министерствами трех земель: Бавария, Баден-Вюртемберг и Северный Рейн-Вестфалия.
Суперкомпьютерный центр имени Лейбница (LRZ) является главным вычислительным центром двух государственных университетов (Мюнхенского университета и Мюнхенского технического университета), а также Баварской академии наук. Центр предоставляет услуги в области высокопроизводительных вычислений, визуализации данных, грид и облачных вычислений. В 2108 году в центре был установлен суперкомпьютер SuperMUC-NG (8-е место в TOP500) с пиковой производительностью 26,9 ПФлопс [40].
Юлихский исследовательский центр (JSC) [41], являющийся одним из крупнейших европейских исследовательских центров, занимается исследованиями в области физики, химии, биологии, медицины. В настоящее время в центре установлены 2 системы, входящие в TOP500 (на 26 и 44 местах списка TOP500), суммарной производительностью 16,4 ПФлопс.
Центр высокопроизводительных вычислений при Университете Штутгарта (HLRS) [42] поддерживает немецких и европейских исследователей в области науки и промышленности, предоставляя высокопроизводительные вычислительные платформы и технологии. Услуги предоставляются в сотрудничестве с двумя другими центрами GCS и с промышленными партнерами, такими как T-Systems, Porsche и SICOS BW. HLRS проводит фундаментальные и прикладные исследования в области высокопроизводительных вычислений в финансируемых государством национальных и европейских проектах, а также в области промышленности. Совместные исследования в области автомобилестроения проводятся в сотрудничестве с Центром автомобильного моделирования Штутгарт (ASCS) [43]. В центре установлен суперкомпьютер Hazel Hen с пиковой производительностью 7,4 ПФлопс. Суперкомпьютерный и дата центр общества Макса Планка (MPCDF), Германия [44] обеспечивает высокоуровневую поддержку для разработки, оптимизации, анализа и визуализации высокопроизводительных вычислительных приложений для институтов общества Макс Планка с высокими вычислительными потребностями, например, в астрофизике, исследованиях в области материалов и биологии, полимеров, теоретической химии. Центр занимается разработкой и оптимизацией алгоритмов и приложений для высокопроизводительных вычислений, разработкой и внедрением решений для проектов с интенсивным использованием данных. В центре установлен суперкомпьютер COBRA с пиковой производительностью 9.8 ПФлопс.
Отображение архитектуры вычислительной системы на прикладные программы
Производительность является ключевым параметром при выборе оборудования. При этом следует учитывать специфику задач вычислительного центра. Высокая производительность на одних классах задач не означает такой же производительности на других классах задач.
В научных работах обычно рассматривались вопросы отображения программ на архитектуру вычислительной системы [94, 95]. В настоящей работе решалась обратная задача – отображение архитектуры на прикладные программы [96]. Такая задача возникает в случае, когда встает проблема выбора оптимальной вычислительной системы для конкретных приложений.
Среди высокопроизводительных вычислительных систем наибольшее распространение получили кластерные системы. Пользователями кластеров наиболее широко используется модель программирования SPMD, в которой процессы параллельной программы порождаются из одного исполняемого модуля и выполняют один и тот же код. Распределение выполняемой вычислительной работы между процессами параллельной программы, как правило, осуществляется путем разделения данных, реже применяется ветвление (разделение по управлению).
Для априорного определения соответствия выполняемых программ архитектуре и параметрам вычислительных систем рассмотрим выполнение основного элемента параллельных программ - программных циклов в многопроцессорной вычислительной системе.
Рассмотрим широко используемую операцию: х = х + ai bi
При использовании многоядерной архитектуры при больших объемах данных необходимые элементы а\ и ЬІ не успевают считываться из памяти, кроме того, при использовании нескольких процессоров или ядер возникает конкуренция обращений к памяти. Для оценки конфликтов по памяти при одновременной работе нескольких ядер введем коэффициент конфликтов по использованию памяти CR [97], который определяется для конкретной системы с учетом объема используемых данных.
Рассмотрим кластер, состоящий из многоядерных процессоров и ускорителей. Типичный состав однородной гетерогенной вычислительной системы представлен на рисунке 7. Система состоит из M вычислительных узлов, связанных коммуникационным полем. Вычислительный узел состоит из Np процессоров с общей памятью и Ng ускорителей.
Рассмотрим выполнение программ на кластере с фиксированным объемом вычислений в виде блоков операций. Блоки операций могут содержать вычислительные операции, коммуникационные операции и операции ввода-вывода. Блоки операций в программе не перемещаются между узлами. Основные данные блока вычислительных операций bi находятся в памяти узла. После выполнения блока bi возможен обмен данными. Tbipj, – время выполнения блока bi на процессоре pj Tbjgk время выполнения блока bj на ускорителе gk
На рисунке 8 приведена схема выполнения программы на четырех однопроцессорных узлах (p1–p4), на каждом их которых установлено по два графических ускорителя (g11–g42) [98]. После выполнения блока b1 происходит загрузка ускорителей данными. После выполнения на ускорителях векторных операций (b2) происходит обратная передача данных в память узлов. Далее на всех процессорах выполняется блок b3 и происходит циклический обмен данными. Далее повторяются действия для блоков b4, b5 и b6.
Время выполнения вычислительного блока зависит также от загруженности других ядер того же узла и объема памяти, используемой блоком. При вычислении времени выполнения блока учитывается зависящий от конкретной вычислительной системы коэффициент CR, определяющий замедление работы с памятью при ее одновременном использовании несколькими ядрами.
Рассматриваются три возможных случая: передача данных между ядрами в узле, между процессором и ускорителем, между вычислительными узлами.
Передача данных между ядрами в узле. В данном случае возможно использование двух моделей: MPI и OpenMP.
В модели MPI используется разделение данных между ядрами. Вычисления на разных ядрах организуются как отдельные задачи. При использовании модели MPI время передачи Ts можно оценивать формулой (2).
В модели OpenMP все ядра работают над общей памятью. При этом часть данных может быть реплицирована, часть защищена семафорами от одновременного использования. При использовании модели OpenMP время разблокировки семафора можно считать латентностью T=T0. При этом латентность может быть весьма большой из-за ожиданий разблокировки данных. Передача дублирующихся данных может быть оценена формулой (2).
Передача данных между процессором и ускорителем. В данном случае при инициализации фрагмента программы на ускорителе требуется передача данных от процессора к ускорителю и обратно при завершении фрагмента. 1п(Ы) обозначает множество входных данных, Out(bi) - множество выходных данных, которые используются далее в программе, N(x) - количество байт, в множестве х, Tbgk -время передачи одного байта между процессором и ускорителем. Ускорители (NVIDIA Volta, Intel Xeon Phi KNC, AMD FirePro, PEZY) подключаются по шине PCI или NVLink, и время передачи данных Tsigk определяется формулой
Tsigk=20gk+(N (In(bi))+N (Out(bi)))bgk в предположении, что все параметры передачи данных к ускорителю и обратно симметричны. Следует отметить, что эти времена относятся только к ускорителю, то есть фактически время выполнения на ускорителе k составляет Tbigk+Tsigk.
Передача данных между узлами. В большинстве случаев используется модель с распределенной памятью, так как общих данных у разных узлов нет. Время передачи между такими узлами можно оценивать по формуле (2).
Наиболее часто используются следующие типы обмена данными между узлами: обмен с «соседями» (например, между узлами многомерной решетки) и коллективные передачи (один ко всем, все к одному).
Передача данных между соседними узлами. При решении физических задач часто используется метод геометрического разбиения областей [99]. При этом используются «теневые» грани - данные, которые дублируются на соседних узлах многомерной решетки. После выполнения очередного шага вычислений граничные значения передаются к соседним узлам k-мерной решетки. При этом
Ts=2k(T0+NTb)
Коллективные операции. Данный вид операций широко применяется при организации вычислений. Он используется при рассылке данных от одного узла ко всем, при выполнении редукционных операций, во многих дискретных алгоритмах [83]. Если операция рассылки не организована аппаратно, она требует log(P) шагов, где Р - количество вычислительных узлов. Таким образом, время передачи данных составит
Ts=(TO+Tb-N) log(P)
Заметим, что приведенные выше оценки времени передачи получены для неблокируемой сети при условии наилучшей привязки сеток к процессам (ядрам) на вычислительных узлах и наилучшего порядка передачи сообщений, в результате чего исключаются попытки одновременной передачи сообщений через один сетевой порт или одну линию связи. Когда передачи данных влияют друг на друга, можно использовать коэффициент замедления CL.
Моделирование параллельной работы ядер векторного потокового процессора с общей памятью
Как отмечено в разделе 3.3.1, производительность одного ядра ВПП на векторной обработке можно повысить как за счет увеличения числа колец векторной обработки, так и за счет увеличения числа FMA ИУ в кольце. И в том и другом случае аппаратные затраты растут быстрее пиковой производительности из-за наличия коммутаторов. С увеличением числа FMA ИУ в кольце пропорционально растет число портов п в коммутаторе, подключающем входы и выходы FMA ИУ к банкам расслоенной ЛПВ, а затраты на коммутатор растут гораздо быстрее – почти как n2. При увеличении числа колец векторной обработки в ВПП также быстро растут затраты на коммутатор в составе БВСО, поскольку с помощью этого коммутатора осуществляется доступ к ЛПВ в любом из колец. На программе умножения матриц у ВПП с 32 кольцами и 4 FMA ИУ в кольце производительность равна 242 флоп в такт или 95% от пиковой производительности в 256 флоп в такт. Моделирование той же программы при увеличении числа FMA ИУ в кольце до 8 показало, что отношение реальной производительности ВПП к пиковой уменьшается до 83% [147].
Быстрый рост аппаратных затрат при снижении отдачи в виде реальной производительности говорит о том, что не имеет смысла увеличивать производительность одного ядра ВПП сверх определенного предела. Поэтому производительность одного ядра ВПП не доводилась до 512 флоп в такт, и остановилась на 256 флоп в такт. В [148] было показано, что на программе умножения матриц максимальная производительность с единицы площади кристалла достигается у ВПП при 32 кольцах, 4 FMA ИУ в кольце и расслоении ЛПВ на 16 двухпортовых банков. При 22 нм технологии изготовления СБИС этот экстремум составляет 2,19 флоп в такт с мм2, что позволяет на кристалле площадью 450 мм2 разместить многопроцессорную систему из 4 ядер ВПП с суммарной производительностью 1024 флоп в такт. Для моделирования такой системы исходная VHDL-модель уровня регистровых станций одного ядра ВПП была использована для построения модели многопроцессорной системы из нескольких ядер этого процессора с общей памятью, причем число ядер в модели можно задать в качестве параметра.
Каждое ядро ВПП при обращении к общей памяти, которой является ПВ, получало доступ сразу ко всем контроллерам динамической памяти для доступа к ПВ через схему разрешения конфликтов. Меняющийся приоритет у процессорных ядер в этой схеме обеспечивал симметричный доступ к ПВ между всеми ядрами. Аналогичная схема разрешения конфликтов использована и для доступа к устройству распределения памяти, которое выделяет адрес свободного вектора для записи результата векторной команды, если он должен быть записан в ПВ, а не в ЛПВ.
Для распределения задач по процессорам был разработан граф управляющей программы, которая ведет список свободных ядер в многопроцессорной системе и формирует токены с исходными данными для запуска очередного процесса на выполнение. Обрабатываемые процессом массивы данных должны находиться в ПВ, и управляющая программа посылает ядру токены с указателями этих массивов. Разработанная VHDL-модель многопроцессорной системы и управляющая программа отлаживались на программах умножения матриц и 2D Stencil. Использовались блочные варианты этих программ, при которых обрабатываемые матрицы размером 512512 состоят из 4 блоков размером 256256, и в соответствии с описанным ранее методом хранения массивов хранятся в ПВ в виде трехмерного массива размером 4256256. Одна и та же программа умножения матриц или 2D Stencil загружается в память команд каждого из процессорных ядер, а в память команд нулевого ядра– еще и управляющая программа.
Программа умножения матриц в процессорном ядре начинает вычисление подматрицы результата размером 256256, получив от управляющей программы 3 токена, два из которых содержат вектора указатели матриц А и В размером 512512, и третий токен передает номер вычисляемой подматрицы. В процессе вычисления по переданному номеру подматрицы результата программа умножения матриц вначале копирует из ПВ в ЛПВ ядра нужную подматрицу А размером 256256 и затем 256 раз выполняет подпрограмму SGEMV [139]. После чего делается еще один проход вычислений с копированием другой подматрицы А и суммированием с накопленными в первом проходе промежуточными результатами. По окончании второго прохода вычисленная подматрица С переписывается из ЛПВ ядра в общую ПВ, и токен с вектором указателем вычисленной подматрицы отправляется управляющей программе в нулевое ядро. Управляющая программа записывает полученный указатель подматрицы в качестве элемента вектора указателя матрицы С и отмечает приславшее токен ядро как свободное, чтобы отправить ему задачи на вычисление следующей подматрицы С, если такие остались.
Поскольку при вычислении подматрицы С в блочном варианте программы умножения матриц элементы матрицы А читаются 256 раз, то ее копирование из ПВ в ЛПВ позволяет в 256 раз уменьшить число обращений к ПВ, и ограниченная пропускная способность к ПВ не является узким местом, сдерживающим производительность на этой программе. Поэтому моделирование выполнения программы умножения матриц на системе из двух ядер ВПП подтвердило высокую производительность работы каждого ядра при вычислении подматрицы С и пренебрежимо малые накладные расходы на переключение ядра с одной подматрицы на следующую. Перерыв в работе каждого ядра между вычислением первой и второй подматриц результата, обусловленный работой управляющей программы, составил меньше 200 тактов. В то время как ядро с производительностью 256 флоп в такт вычисляет подматрицу С за 279 тысяч тактов. В результате, время выполнения программы умножения матриц размером 512512 на системе из двух ядер ВПП составило 571 тысячу тактов, что соответствует производительности 478,7 флоп в такт или 93,5% от пиковой производительности. Если учесть, что блочный вариант той же программы на одном ядре выполняется с производительностью 242 флоп в такт, то ускорение составляет 1,97, что можно считать близким к линейному ускорению.
Что же касается выполнения программы решения систем дифференциальных уравнений 2D Stencil, то здесь ожидаемо было ограничение производительности из-за недостаточной пропускной способности к ПВ. Как показано на рисунке 49, программа вычисляет новые значения элементов матрицы U из исходной матрицы А по следующему алгоритму: U(I,J)=A(I+1,J)+A(I-1,J)+A(I,J+1)+A(I,J-1)-4А(I,J). После вычисления всех элементов матрицы U они используются для обновления матрицы А: А(I,J)=A(I,J)+0.1U(I,J), и процесс повторяется Ntime раз. При вычислении новой матрицы А на каждое исходное значение элемента этой матрицы приходится 7 операций с плавающей запятой, следовательно, копирование матрицы из ПВ в ЛПВ сокращает число обращений в ПВ лишь в 7 раз по сравнению с 256 раз в программе умножения матриц. В блочном варианте этой программы управляющая программа помимо двух токенов с указателем матрицы А размером 512512 и номером обрабатываемой подматрицы посылает в процессорное ядро еще указатели четырех векторов, содержащие граничные элементы соседних подматриц, участвующих в вычислении новой подматрицы А (см. рисунок 49).
Реализация модели программно-определяемого ЦОД
Модель использования программно-определяемого ЦОД предусматривает варианты, представленные на рисунке 74.
Управляющий ЦОД управляет развертыванием и конфигурированием программно-определяемого ЦОД, реализует политики безопасности и доступа к ресурсам, обеспечивает сбор и анализ данных по использованию ресурсов, отвечает за расширение аппаратных возможностей по хранению данных и вычислительных мощностей. Управляющий ЦОД предоставляет возможности инфраструктуры арендаторам ресурсов через создание разделов управления, которые передает администраторам арендаторов ресурсов.
Администратор арендатора ресурсов управляет выделенными ему мощностями программно-определяемого ЦОД, настраивает права доступа.
Администратор сервиса разворачивает вычислительные сервисы на предоставленной ему инфраструктуре, следит за их работоспособностью.
Конечный пользователь использует сервис для решения прикладных задач. Разработчик сервиса, используя возможности программно-определяемого ЦОД, принимает участие в создании сервиса, его развитии, обеспечивает техническую поддержку пользователей.
На рисунке 75 представлена функциональная модель программно определяемого ЦОД на примере реализации сервис-ориентированного программно-аппаратного комплекса, направленного на решение широкого класса задач.
Модуль параллельных вычислений (HPC-домен) предназначен для выполнения высокопроизводительных программ с поддержкой парадигм MPI, OpenMPI и представляет собой высокопроизводительную вычислительную кластерную систему.
Модуль виртуализации (Облачный домен) представляет собой среду облачных вычислений и предназначен для поддержки решения следующих задач.
1. Предоставление унифицированных вычислительных виртуализированных ресурсов (regular zone, bigdata zone) – виртуальных машин, виртуальных блочных и объектных хранилищ, виртуальных сетей, виртуальных кластеров хранения и анализа больших данных, виртуальных кластеров среды iot.
2. Предоставление унифицированных контейнеризированных ресурсов (ml zone, vdi zone) – контейнеров вычислений Machine Learning, контейнеров CUDA вычислений, контейнеров визуализации результатов научных расчетов, контейнеров виртуальных рабочих столов.
Модуль долгосрочного хранения данных (storage domain) обеспечивает долгосрочное хранение данных пользователей. Реализован на базе распределенной файловой системы Gluster.
Предложенный подход был успешно внедрен при реализации следующих проектов.
1. Создание вычислительной инфраструктуры программы «Университетский кластер» – совместно с ИСП РАН, МСЦ РАН, компанией Hewllet Packard, направленной на поддержку параллельных и распределенных вычислений [168]. С помощью созданной вычислительной инфраструктуры участники программы выполняют научные исследования, промышленные разработки, реализуют образовательные проекты по обучению студентов и аспирантов. Инфраструктура предназначена для организации на ее основе масштабируемых облачных сервисов и предметно-ориентированных виртуальных лабораторий, доступных широкому кругу пользователей. Среди сервисов, создаваемых в рамках программы «Университетский кластер», можно выделить следующие: обеспечение выполнения параллельных программ на высокопроизводительных вычислительных системах с распределенной или общей памятью; разработка программных продуктов; поддержка проведения конференций, лекций, семинаров, лабораторных работ.
2. Создание испытательного стенда международного проекта OpenCirrus, в рамках которого проводятся исследовательские работы в области разработки стека системного программного обеспечения для облачных сред. Центрами компетенции проекта стали ИСП РАН и МСЦ РАН [169].
3. Создание проблемно-ориентированной web-лаборатории решения задач механики сплошных сред UniCFD [170-172]. Web-лаборатория UniCFD активно использовалась при выполнении исследовательских и промышленных проектов, а также при выполнении образовательных программ. На базе web-лаборатории UniCFD разработано несколько лекционных курсов и лабораторных практикумов.