Лекция 6. Вычислительные системы Regatta, Bluegene (1186104)
Текст из файла
Суперкомпьютерное моделирование итехнологии.сентябрь – декабрь 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.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.