Лекция 6. Вычислительные системы Regatta, Bluegene (Электронные лекции)
Описание файла
Файл "Лекция 6. Вычислительные системы Regatta, Bluegene" внутри архива находится в папке "Электронные лекции 2016 года". PDF-файл из архива "Электронные лекции", который расположен в категории "". Всё это находится в предмете "суперкомпьютерное моделирование и технологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Суперкомпьютерное моделирование итехнологии.сентябрь – декабрь 2016 г.Лекция5 октября 2016 г.Н.Н. Поповадоцент кафедры АСВКpopova@cs.msu.suВычислительные системыIBM p-series 690 Regatta (Регатта)••••16-процессорная SMP системаIBM Power4 процессоры1.3 GH - тактовая частота83 GFlops -максимальнаяпроизводительность• 64 Gbytes ОЗУ• 32 KB L1 cache на процессор• 1.41 MB L2 cache (общий для 2-ухпроцессор.)• 128 MB L3 cache (общий для 8процессоров)Архитектура IBM pSeries690 Regatta/Архитектура IBM pSeries690 Regatta.Процессор POWER4.IBM компиляторыПосл.MPIOpenMPMixedFortran 77xlfmpxlfxlf_rFortran 90xlf90mpxlf90xlf90_r mpxlf90_rFortran 95xlf95mpxlf95xlf95_r mpxlf95_rCccmpcccc_rmpcc_rxlcmpxlcxlc_rmpxlc_rxlCmpCCxlC_rmpCC_rC++mpxlf_rМатематическая библиотека (1)• MASS library– Mathematical Acceleration SubSystem• sqrt, rsqrt, exp, log, sin, cos, tan, atan,atan2, sinh, cosh, tanh, dnint, x**yМатематическая библиотека (2)• Опции:C:-lmass -lm• Ускорение:explogsincomplex atan2.41.62.24.7LoadLeveler- Система управления заданиями на многопользовательскихсистемах, состоящих из нескольких вычислительных узлов- Оптимизирует использование имеющихся вычислительныхресурсов• Учет приоритета задач и пользователей• Динамическое распределение ресурсов• Допускается использование разнородныхвычислительных узлов• Используется для запуска как последовательных, так ипараллельных задач- Пользователь формулирует задания в виде командных файлов- Поддерживает очередь заданийСхема выполнения заданий на системе Regatta••••••••Выход на удаленную систему.ssh –X ivanov@regatta.cs.msu.suКомпиляция MPI-программыmpicc –o prog prog.cКомпиляция OpenMP- программыgcc -fopenmp -o prog prog.сПостановка MPI-программы в очередь на выполнениеmpisubmit –w 10:00 –n 8 progПостановка OpenMP-программы в очередь на выполнениеompsubmit -n <число_процессоров> -w <лимит_счетноговремени> <имя_программы> <параметры_программы>Просмотр состояния очередиllqУдаление задания из очереди в случае необходимостиllcancel <id>Копирование результатов на локальную машину.Архитектура и программное обеспечениемассивно-параллельной вычислительнойсистемыIBM Blue Gene / Phttp://hpc.cs.msu.suДополнительная информация на сайтеОбщая характеристика систем Blue GeneМассивно-параллельные системы с распределеннойпамятьюТехнология System-on-chip (4 ядра, 8 FPU,контроллер памяти и др.
на одном ASIC)Высокая плотность упаковки•••–процессоры с низким энергопотреблениемВысокопроизводительный интерконект•–несколько коммуникационных подсистем дляразличных целейУльтра легкая ОС•–выполнение вычислений и ничего лишнегоСтандартное ПО•–Fortran/C/C++ и MPIОбщая характеристика систем Blue GeneМассивно-параллельные системы сраспределенной памятьюВысокая плотность упаковки••–процессоры с низким энергопотреблением (40 W ~лампочка)Высокопроизводительный интерконект•–несколько комутационных подсистем для различныхцелейУльтра легкая ОС•–•–выполнение вычислений и ничего лишнегоСтандартное ПО Standard softwareFortran/C/C++ и MPI1 стойкаBlue Gene P• 1024 четырехъядерных вычислительных узлов• производительность одного вычислительного узла –13.6 GF/s• производительность 1 стойки– 13.9 Tflops• оперативная память одного узла – 2 GB• суммарная оперативная память в стойке– 2 TB• узлов ввода/вывода 8 – 64• Размеры - 1.22 x 0.96 x 1.96• занимаемая площадь 1.17 кв.м.• энергопотребление (1 стойка) -40 kW (max)Конфигурация BlueGene P факультетаВМиКhttp://hpc.cs.msu.ru• 2048 4-ех ядерных узлов• пиковая производительность27.2 Tflop/s• Реальнаяпроизводительностьпо тесту Linpack:23.2 Тфлоп/с•85% отпиковой• общий объем ОЗУ 4 TBКомпоненты Blue Gene P• Основная единица – четырехядерный вычислительныйузел (процессор) , ядро – PowerPC 450 850Mhz + память(2GB)• Node card = 32 вычислительных узла + до 2х узловввода-вывода• Стойка – 32 node cards• Число процессоров в стойке 1024• Итоговое число ядер на стойку - 4096Характеристики вычислительного узла• 4 ядерный 32-битный процессор PowerPC 850Мгц– Двойное устройство для работы свещественными числами с плавающей точкой(double precision)– 2 Гб памяти– Работает под управлением облегченной ОС• Создание процессов и управление ими• Управление памятью• Отладка процессов• Ввод-вывод– Объем виртуальной памяти равен объемуфизической19Характеристики вычислительного узла– 3 режима использования ядер• SMP:1 MPI процесс из 4 SMPнитей, 2 Гб памяти• DUAL:2 MPI процесса по 2 SMPнити, 1 Гб памяти на MPIпроцесс• VNM:4 MPI процесса20Компоненты Blue Gene/P• Помимо вычислительных узлов, в состав системы такжевходят:– узлы ввода-вывода– узел управления системой– не менее одного узла front end (через них осуществляетсядоступ пользователей к системе)– сеть, связывающая компоненты системы– специализированная сеть для сообщения междусервисным узлом и узлами ввода-выводаПроцессоры ввода-выводаОтличия по сравнению с вычислительным узлом:–Установлена полноценная ОС–Отсутствует подключение к сети тору–Имеется выход в 10-гигабитную сеть EthernetBlueGene/PServiceNode(Database)Blue GeneRacksFront End(login)Основные коммуникационные сети 3-мерный тор–Используется для обменасообщениями между соседними узлами,а также для многих коллективныхопераций Коллективная сеть – дерево–Для глобальной коммуникации одинко-всем (broadcast, reduction)–6.8 ГБ/с на порт–Соединяет все вычислительные узлыи узлы ввода-вывода–Используется для коллективныхопераций и коммуникатораMPI_COMM_WORLD Высокоскоростная сеть дляглобальных прерываний–Для MPI_Barrier24Double Hammer FPU SIMD инструкции могут выполнятьсяодновременно на двух FPU Параллельные операции load/store Данные должны быть выровнены по16-байтовой границе– Иначе производительность будетзначительно снижена– Даже хуже, чем при использованиитолько одного FPU Компилятор сможет сгенерироватьSIMD инструкции, только если данныев памяти расположены подряд (strideone access)– Хотя при более высоких (-O4, -O5)уровнях оптимизации компиляторпопытается сгенерировать SIMDинструкции и для данных,расположенных не подряд– -O3 –qarch=450d –qtune=45025Память• Оперативная память – до 2GB на вычислительный узел,пропускная способность 13.6GBps• Трёхуровневый кэш:– L1 – отдельный для каждого ядра, размер 32Kb– L2 – отдельный для каждого ядра, используется дляпредварительной выборки информации из кэша L1.Считывает\записывает по 16b за одно обращение.– L3 – разделен на две части по 4MB, доступ к ним имеют всечетыре ядра, для каждого есть канал чтения и каналзаписи.Состав ПОLinux® на узлах ввода\вывода MPI (MPICH2) и OpenMP (2.5) Стандартное семейство компиляторов IBM XL: XLC/C++,XLF Компиляторы GNU Система управления заданиями LoadLeveler Файловая система GPFS Инженерная и научная библиотека подпрограмм (ESSL),математическая библиотека (MASS)ОС вычислительного узлаBlueGene P• Compute Node Kernel (CNK)– “linux-подобная” ОС– Нет некоторых системных вызово (fork() в основном).Ограниченная поддержка mmap(), execve()– Минимальное ядро – обработка сигналов, передачасистемных вызовов к узлам ввода-вывода, стартзавершение задач, поддержка нитей– Большинство приложений, которые работают подLinux, портируются на BG/PКомпиляторы Blue Gene• IBM XL компиляторы (xlc, xlf77, xlf90)• работают на front end узлах– Fortran: mpixlf, mpixlf90, mpixlf95– C: mpixlc– C++: mpixlcxx• обычно являются скриптами• GNU компиляторы существуют, номалоэффективны: mpiccРеализация MPI•MPICH2 1.0.x ( стандарт MPI 2.0)•Не поддерживает управление динамическими•Для поддержки аппаратного обеспечения Blue Gene/Pсделаны добавления и модификации в программнойархитектуре MPICH2:процессами- коллективные операции могут использовать различныесети при разных обстоятельствах (не только коллективнуюсеть, но и сеть с топологией тора или сеть глобальныхпрерываний)- Существуют оптимизированные версии функцийMPI_Dims_create, MPI_Cart_create, MPI_Cart_map- Добавлены функции MPIX - расширение MPI, учитывающееспецифику аппаратного обеспеченияOpenMP• _r суффикс для имени компиляторов например, mpixlc_r•–qsmp=ompуказание компилятору интерпретировать OpenMPдирективы• Автоматическое распараллеливание-qsmpПроцессорные партиции– Подмножества вычислительных узлов, выделяемыхзадаче– Каждой задаче выделяется своя партиция– Загрузка задачи на исполнение производитсянезависимо от других задач– Размер партиции определяется кратным 32– (на текущий момент на системе ВМК - кратным 128 )– Для партиций размером кратным 512поддерживается топология тора32Реализация MPI на Blue Gene/PКоллективные операции могут использовать различные сети приразных обстоятельствах (не только коллективную сеть, но и сеть стопологией тора или сеть глобальных прерываний).Существуют оптимизированные версии функций MPI_Dims_create,MPI_Cart_create, MPI_Cart_mapДобавлены функции MPIX - расширение MPI, учитывающееспецифику аппаратного обеспечения.Рекомендации по использованию MPI на Blue Gene/PОбъединять взаимодействия и вычисления, используя MPI_Irecv иMPI_Isend.Уделять особое внимание балансировке нагрузки.Избегать буферизованных ( MPI_Bsend() ) и синхронных (MPI_Ssend() ) посылок сообщений, выставлять готовность к приемусообщения заранее.Избегать типа данных vector и непоследовательных типов данных.Хотя производные типы данных в MPI могут элегантно описыватьсложные структуры данных, но их использование, как правило,уменьшает производительность.Реализация MPI на Blue Gene/P чувствительна к выравниваниюбуферов.
Выравнивание по 32 байта или хотя бы по 16 байт можетсущественно улучшить производительность.Назначение процессов на процессоры(mapping)Распределение процессовпо процессорам по умолчанию:XYZT, где<XYZ> - координаты процесса вторе,T – номер ядра внутри процессаСначала увеличивается X –координата, затем Y и Zкоординаты, после этогоT- номер ядраMapping2 способа назначения процессов на процессоры:•с помощью аргумента командной строки–mapfile TXYZ (задаем порядок TXYZ или другие перестановки X,Y,Z,T:TYXZ, TZXY и т.д.)•указание map- файла в командной строке–mapfile my.map, где my.map – имя файла.• Синтаксис файла распределения – четыре целых числа в каждой строкезадают координаты для каждого MPI-процесса (первая строка задаеткоординаты для процесса с номером 0, вторая строка – для процесса сномером 1 и т.д.).00010011Очень важно, чтобы этот файл задавал корректное распределение, соднозначным соответствием между номером процесса икоординатами <X, Y, Z, T>.Основной шаблон протокола работыпользователя (1)1.Выход на BGP:%ssh <опции> <логин>@bluegene1Например:%ssh –X ivanov@bluegene12.
Копирование файлов с локального компьютера на BlueGene/P:(локальная машина)%scp example.cpp ivanov@bluegene1:~ivanov/examplesОсновной шаблон протокола работыпользователя (2)3. Компиляция MPI-программы на языке C или C++ : (BGP, frontend)%mpixlc example.c -o c_ex%mpixlcxx example.cpp -o cpp_ex%mpixlf90 example.f90 -o f_ex4. Компиляция гибридной MPI-OpenMP программы:%mpixlc_r -qsmp=omp hw.c -o hw% mpixlcxx_r -qsmp=omp hw.cpp -o hwОсновной шаблон протокола работыпользователя (3)6. Постановка MPI-программы в очередь задач с лимитомвыполнения 15 минут на 128 узлов в режиме VN c параметромкомандной строки:%mpisubmit.bg -w 00:15:00 -m VN -n 128 hw – 0.1 2006.
Постановка MPI+OpenMP программы prog в очередь задач слимитом выполнения 15 минут на 128 узлов в режиме SMP c 4нитями на каждом узле и c параметром командной строкиparameter:%mpisubmit.bg -w 00:15:00 -m SMP -n 128-e «OMP_NUM_THREADS=4» example -- 100Основной шаблон протокола работыпользователя (4)5. Постановка MPI-программыв очередь задач с лимитом выполнения15 минут на 128 узлов в режиме VN c параметром команднойстроки :%mpisubmit.bg -w 00:15:00 -m VN -n 128 prog – 0.1 2006.
Постановка MPI+OpenMP программы prog в очередь задач с лимитомвыполнения 15 минут на 128 узлов в режиме SMP c 4 нитями накаждом узле и c параметром командной строки parameter:%mpisubmit.bg -w 00:15:00 -m SMP -n 128-e «OMP_NUM_THREADS=4» prog -- parameterСсылки• http://www.ibm.com/servers/deepcomputing/bluegene.html• http://www3.ibm.com/systems/deepcomputing/bluegene/• IBM System Blue Gene Solution: BlueGene/P Application Development, SG247287-00http://www.research.ibm.com/journal/rd/521/tocpdf.html.