Lect1_7_October_2011 (Лекции)
Описание файла
PDF-файл из архива "Лекции", который расположен в категории "". Всё это находится в предмете "суперкомпьютерные технологии" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Суперкомпьютерныетехнологии.Лекционно-практический курсдля студентов 5 курса факультета ВМиК МГУоктябрь – декабрь 2011 г.Лекция 17 октября 2011 г.Н.Н. Поповадоцент кафедры АСВКpopova@cs.msu.suПлан лекции• Учебный план курса• Содержание и требования квыполнению практических заданий• Обзор технологий ПП, необходимыхдля выполнения заданий• Архитектура ВС pSeries 690 Регатта• Архитектура и программноеобеспечение ВС BlueGene/PУчебный планЛекции, семинары, выполнение практических заданий•Итоговая оценка: зачет• Форма отчетности: отчет в электронном виде.• Лекции - Обзор суперкомпьютерных систем и программныхтехнологий.с 7 октября по 28 октября• Семинарские занятияс 10 октября 2011 г.• Выполнение практических заданий на высокопроизводительныхсистемах:- IBM pSeries 690 Регатта (www.regatta.cs.msu.su)- IBM BlueGene/P (hpc.cmc.msu.ru )- «Ломоносов» (parallel.ru/cluster)Список TOP500 (Июнь, 2011 г.)Содержание курса• Лекции - Обзор суперкомпьютерных систем и технологийпараллельного программирования.Тема 1.
7 октября : «Архитектура и ПО ВС Регатта и BlueGene/P»Н.Н.ПоповаТема 2. 14 октября: «Архитектура и программное обеспечениесуперкомпьютера «Ломоносов»» А.КоржТема 3. 21 октября: «Технология OpenMP, гибридноеMPI/OpenMP программированине»В.А.Бахтин28 октября: «Технология OpenMP, гибридноеMPI/OpenMP программированине» Продолжение. В.А.Бахтин• Семинарские занятия – обсуждение и сдача практическихзаданий- с 10 октября 2011 г.- см.
расписание компьютерных классовПримерный план семинарских занятий• 10 - 22 октября – выдача заданий, логинов, Регатта• 24 октября – 2 ноября – выполнение заданий на BlueGene/P• 2 ноября – 30 ноября – «Ломоносов»• 1 – 20 декабря– оформление и сдача отчетовПрактические задания.Базовое задание.•••••••Тема: Исследование эффективности решения систем линейныхуравнений Ax = b на параллельных ВС.Дано: матрица A, правая часть – вектор bТребуется:на основе представленной MPI-реализации параллельнойпрограммы провести оптимизацию параллельного алгоритма иисследовать его эффективностьВарианты методов: метод сопряженных градиентов, методсопряженных градиентов с предобусловливателем Якоби, методЯкоби, метод Гаусса-Зейделя, метод ГауссаДля каждого из вариантов базовая параллельная программа задаетсяпри выдаче задания.Требование к зачету: реализация задания нв вычислительныхсистемах IBM pSeries690 Регатта, BlueGene/P и «Ломоносов»Форма отчетности по курсу – отчет, представленный в электронномвиде, с контрольной сдачей отчета преподавателям.
Вместе сотчетом должны быть представлены тексты параллельныхпрограммИнформационные ресурсы позаданию• Методические материалы, инструкции:http://angel.cs.msu.su/~popova• Исходные тексты, методические материалы:regatta.cs.msu.su/~popova/SuperComp2011assignment1.tar.gz, assignment2.tar.gz, …Рекомендации по выполнению заданий• Оптимизация программ с использование оптимизирующихвозможностей компиляторов (анализ и настройкасоответствующих опций компиляторов).• Оптимизация с использованием расширенного набора MPIфункций (использование асинхронных передач,коллективных операций обмена, совмещенных операций идр.)• Гибридное MPI/OpenMP программирование cиспользованием директив OpenMP в MPI-программах.Также:• Модификация параллельного алгоритма• Использование библиотечных функций (BLAS, ESSL,PESSL,MKL, Lapack)• Разработка параллельной программыИсследование эффективности• Ускорение S• Эффективностьη• Пусть: T1 - время выполнения наилучшего последовательногоалгоритма,Tn – время выполнения параллельной программы на nпроцессорахT1S=TnT1Sη==nTn nГрафическое представление ускоренияГрафик эффективностиОбзор технологийпараллельногопрограммирования,необходимых для выполнениязаданийПО для выполнения задания (1)• Утилиты ОС для выхода удаленные машигныssh (UNIX-подобные системы)putty, WinSCP – Windows• Компиляция программ:xlc (IBM), icc (Intel), gccСкрипты для компиляции MPI- программmpicc - Регаттаmpixlc – BlueGene/P (MPI)mpixlc_r – BlueGene/P (MPI+OpenMP)mpicc, mpiicc – «Ломоносов»ПО IBM для выполнения задания (2)• Системы управления заданиями:LoadLeveler – IBM• Постановка задания в очередь на выполнениеmpisubmit– Регаттаmpisubmit.bg – BlueGene/Pllsubmit- BlueGene/P• Контроль за прохожлением задания:llq - LoadLevelerВычислительные системыp-series 690 Регатта••••••••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Опции компиляторов• Уровни оптимизации-Oбазовая оптимизация-O2то же, что -O-O3более агрессивная оптимизация-O4еще более агресcивнаяоптимизация: межпроцедурный анализ(IPA) , оптимизация с учетомособенностей архитектуры-O5агрессивный IPAIBM компиляторы (1)• -q64– если надо больше, чем 2GB– Просто увеличивает адресноепространство– -O5 -qarch=pwr4 -qtune=pwr4 и– -O3 (-qhot) -qarch=pwr4 -qtune=pwr4IBM компиляторы (2)• При использовании O3 или нижерекомендуется оптимизация подархитектуру (выполняетсяавтоматически для -O4 и -O5):-qarch=autoоптимизация под архитектуру-qtune=autoоптимизация под процессор-qcache=auto оптимизация под кэшОбщие рекомендации• Профилировка для определения hot spots (gprof)• Для ключевых функций – возможность замены набиблиотечные вызовы (ESSL)• Настройка опций компиляторов• Использование MASS & MASSV библиотек• Inlining часто используемых небольших функций• Ручная настройка программы:- оптимизация доступа к памяти- оптимизация использования сопроцессоров ифункциональных устройств- оптимизация I/OОпции компилятора для OpenMP• _r суффикс для имени компиляторовнапример, xlc_r• –qsmp=omp флаг– указание компилятору интерпретироватьOpenMP директивы• Автоматическое распараллеливание-qsmp– имеет смысл использоватьOpenMP• Автоматическое распараллеливание-qreport=smplist• Исходный текст• mycode.lst• Информация о распараллеленных циклах• Размер стека– По умолчанию 4 MB– Может быть увеличенаsetenv XLSMPOPTS $XLSMPOPTS\:stack=sizeгде size – размер в байтахМатематическая библиотека (1)• MASS library– Mathematical Acceleration SubSystem• sqrt, rsqrt, exp, log, sin, cos, tan, atan,atan2, sinh, cosh, tanh, dnint, x**y• Fortran и CМатематическая библиотека (2)• Опции:Fortran:C:-lmass-lmass -lm• Ускорение:explogsincomplex atan2.41.62.24.7Математическая библиотека (3)• Использование векторизованных функций– Требует незначительных изменений впрограмме– не переносимы– Дают хороший результат• Линковка с использованием –lmassv• Вызов функций:– Префикс к именам функций• vs для 4-byte вещественных чисел (singleprecision)• v для 8-byte вещественных чисел (doubleprecision)Математическая библиотека (4)• пример: одинарная точностьcall vsexp(y,x,n)– x вектор длины n– Y вектор длины n• ускорениеexplogsincomplex atan4-byte9.712.310.016.78-byte6.710.49.816.5LoadLeveler- Система управления заданиями на многопользовательскихсистемах, состоящих из нескольких вычислительных узлов- Оптимизирует использование имеющихся вычислительныхресурсов• Учет приоритета задач и пользователей• Динамическое распределение ресурсов• Допускается использование разнородныхвычислительных узлов• Используется для запуска как последовательных, так ипараллельных задач- Пользователь формулирует задания в виде командных файлов- Поддерживает очередь заданийОсновные команды LoadLeveler (1)llsubmit – постановка задачи в очередьПример:popova@regatta:~/SuperComp2011/assignment5$ llsubmit job.cmdllsubmit: The job "regatta.hpc.47739" has been submitted.mpisubmit – скрипт постановки в очередь MPI-программllq – просмотр текущего статуса очередиllcancel – удаление задачи из очередиОсновные команды LoadLeveler (2)Дополнительные команды(скрипты) LoadLevelerАвтоматически составляют командные файлы дляMPI и OpenMP задачompsubmit –n 4 –w 00:10:00 myprogmpisubmit –n 4 –w 00:10:00 myprogСхема выполнения заданий на системе Regatta••••••••Выход на удаленную систему.ssh –X ivanov@regatta.cs.msu.suКопирование файлов с заданием в текущий каталогcp ~popova/SC_2011/assignment_1.tar.gz .Распаковка архиваgzip –d assignment_1.tar.gztar –xvf assignment_1.tarКомпиляция программыmpicc –o ass1 cg.cПостановка в очередь на выполнениеmpisubmit –w 10:00 –n 8 ass1Просмотр состояния очередиllqУдаление задания из очереди в случае необходимостиllcancel <id>Копирование результатов на локальную машину.Материалы лекции• http://angel.cs.msu.su/~popova• www.ibm.com/software/awdtools/xlcpp/library/• IBM POWER4, IBM Journal of Research andDevelopment(Vol.
46, No. 1, Jan. 2002),www.research.ibm.com/journal/rd46-1.html• www.redbooks.ibm.comThe POWER4 Processor.Introduction and TuningGuide,SG24-7041-00, Nov. 2001http://www.mhpcc.edu/training/workshop/loadleveler/MAIN.htmlhttp://www.redbooks.ibm.com/abstracts/sg246038.htmlhttp://www.hlrn.de/doc/quickstart/qs_loadl.htmlАрхитектура и программное обеспечениемассивно-параллельной вычислительнойсистемыIBM Blue Gene / Phttp://hpc.cs.msu.suДополнительная информация на сайтеИстория проекта Blue Gene Blue Gene/L–Начинался как массивно-параллельный компьютер дляизучения фолдинга белков–Первый прототип был собран в 2004 г.– занял первую строчку в Top 500 с производительностью в 70.72Тфлоп/с–2-х ядерный чип Blue Gene/P–Продолжение линейки Blue Gene–Увеличена частота процессора и объем памяти–4-х ядерный чип–Самая большая система на основе Blue Gene/P установлена вГермании (JUGENE)– 1 Пфлоп/с пиковая, 825 Тфлоп/с реальная Blue Gene/Q–Ожидается в 2011 году, производительность ~20 Пфлоп/с–8-ядерный чип38Общая характеристика систем Blue GeneМассивно-параллельные системы сраспределенной памятьюВысокая плотность упаковки••–процессоры с низким энергопотреблением (40 W ~лампочка)Высокопроизводительный интерконект•–несколько комутационных подсистем для различныхцелейУльтра легкая ОС•–выполнение вычислений и ничего лишнегоСтандартное ПО Standard software•–Fortran/C/C++ и MPIBlue Gene/P1 стойка• 1024 четырехъядерных вычислительных узлов• 13.6 GF/s - производительность одноговычислительного узла• 13.9 Tflops - производительность 1 стойки• 2 GB - оперативная память одного узла• 2 TB - суммарная оперативная память• 8 узлов ввода/вывода• Размеры - 1.22 x 0.96 x 1.96• занимаемая площадь 1.17 кв.м.• энергопотребление (1 стойка) - 40 kW (max)BlueGene/P факультета ВМиК• пиковая производительность 27.8 Tflop/s• 2 стойки• 2048 4-ех ядерных узлов• общий объем ОЗУ 4 TB• http://hpc.cs.msu.ruКомпоненты Blue Gene/P• Основная единица – четырехядерный вычислительныйузел, ядро – PowerPC 450 850Mhz + память (2GB)• Плата = 32 вычислительных узла + до 2х узлов вводавывода• Стойка – 32 платы• Итоговое число ядер на стойку - 4096Характеристики вычислительного узла• 4 ядерный 32-битный процессор PowerPC 850Мгц– Двойное устройство для работы свещественными числами с плавающей точкой(double precision)– 2 Гб памяти– Работает под управлением облегченной ОС• Создание процессов и управление ими• Управление памятью• Отладка процессов• Ввод-вывод– Объем виртуальной памяти равен объемуфизической44Характеристики вычислительного узла– 3 режима использования ядер• SMP: 1 MPI процесс из 4SMP нитей, 2 Гб памяти• DUAL: 2 MPI процесса по2 SMP нити, 1 Гб памяти наMPI процесс• VNM: 4 MPI процесс45Компоненты Blue Gene/P• Помимо вычислительных узлов, в состав системы такжевходят:– узлы ввода-вывода– узел управления системой– не менее одного узла front end (через них осуществляетсядоступ пользователей к системе)– сеть, связывающая компоненты системы– специализированная сеть для сообщения междусервисным узлом и узлами ввода-выводаBlueGene/PServiceNode(Database)Blue GeneRacksFront End(login)Коммуникационные сети 3-мерный тор– Виртуальная аппаратная маршрутизация безбуферизации– 3.4 Гбит/с на всех 12 портах (5.1 ГБ/с наузле)– Аппаратные задержки: 0.5 мс междусоседними узлами, 5 мс между самымидалекими– Основная коммуникационная сеть–Используется в том числе для многихколлективных операций Коллективная сеть – дерево– Для глобальной коммуникации один-ко-всем(broadcast, reduction)– 6.8 ГБ/с на порт– Соединяет все вычислительные узлы и узлыввода-вывода– Используется для коллективных операций икоммуникатора MPI_COMM_WORLD Высокоскоростная сеть для глобальныхпрерываний– Для MPI_Barrier48Память• Оперативная память – до 2GB на вычислительный узел,пропускная способность 13.6GBps• Трёхуровневый кэш:– L1 – отдельный для каждого ядра, размер 32Kb– L2 – отдельный для каждого ядра, используется дляпредварительной выборки информации из кэша L1.Считывает\записывает по 16b за одно обращение.– L3 – разделен на две части по 4MB, доступ к ним имеют всечетыре ядра, для каждого есть канал чтения и каналзаписи.