Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лекция 1. Суперкомпьютерное моделирование. Структура алгоритмов

Лекция 1. Суперкомпьютерное моделирование. Структура алгоритмов (Электронные лекции)

PDF-файл Лекция 1. Суперкомпьютерное моделирование. Структура алгоритмов (Электронные лекции) Суперкомпьютерное моделирование и технологии (64091): Лекции - 11 семестр (3 семестр магистратуры)Лекция 1. Суперкомпьютерное моделирование. Структура алгоритмов (Электронные лекции) - PDF (64091) - СтудИзба2020-08-25СтудИзба

Описание файла

Файл "Лекция 1. Суперкомпьютерное моделирование. Структура алгоритмов" внутри архива находится в папке "Электронные лекции 2016 года". PDF-файл из архива "Электронные лекции", который расположен в категории "". Всё это находится в предмете "суперкомпьютерное моделирование и технологии" из 11 семестр (3 семестр магистратуры), которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Московский государственный университет имени М.В.ЛомоносоваФакультет Вычислительной математики и кибернетикиСУПЕРКОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕВМК МГУ, 2016Московский государственный университет имени М.В.ЛомоносоваФакультет Вычислительной математики и кибернетикиСУПЕРКОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕСТРУКТУРА АЛГОРИТМОВВл.В.ВоеводинЗав.кафедрой Суперкомпьютеров и квантовой информатики ВМК МГУЗам.директора НИВЦ МГУ,д.ф.-м.н., профессор, чл.-корр. РАНvoevodin@parallel.ruВМК МГУ, 2016Суперкомпьютер МГУ “Ломоносов”Суперкомпьютер МГУ “Ломоносов-2”Суперкомпьютерный центр МГУ сегодня:Пользователи: 2955Проекты: 880Факультеты / Институты МГУ: 21Институты РАН: 95Университеты России: 1021 стойка = 256 узлов: Intel Xeon (14c) + NVIDIA K40= 515 Tflop/sСуперкомпьютер “Ломоносов-2” (6 стоек) = 3 Pflop/sСтепень параллелизма200520162025104106109Суперкомпьютеры2-412-64104Серверы…14-8103ПК, ноутбуки…11-4102Планшеты, смартфоны…Суперкомпьютер Sunway TaihuLight System, Китай(#1 Top500 в 2016 г.)40 960 вычислительных узлов40 960 CPUs (SW26010, 260 cores)Всего: 10 649 600 ядер1,31 PBytes15,4 MW (6 Gflops/W)Производительность:Peak: 125,4 Pflop/sLinpack: 93 Pflop/s (74%)Тонкий анализ суперкомпьютерных приложений:динамика исполненияТонкий анализ суперкомпьютерных приложений:динамика исполненияТонкий анализ суперкомпьютерных приложений:динамика исполненияЭффективность суперкомпьютерных центров(простая оценка)Пиковая производительность ядра = 12 Gflops400 Mflops = 3,33%Усредненная производительность одного ядрасуперкомпьютера “Чебышев” за 3 дняХорошо ли мы знаем свойства, особенности,статические и динамические характеристикипараллельных алгоритмов?Хорошо ли мы знаем свойства, особенности,статические и динамические характеристикипараллельных алгоритмов?Насколько хорошо мы знаем архитектуру параллельныхкомпьютеров ?А должны ли мы думать об архитектуре?Да… К сожалению, Да…Поколения архитектур и парадигмы программирования(или как часто мы были вынуждены полностью переписывать приложения?)Векторно-конвейерные компьютерыСередина 70-х годов.Особенности архитектуры: векторныефункциональные устройства, зацеплениефункциональных устройств, векторныекоманды в системе команд, векторныерегистры.Программирование: векторизация самыхвнутренних циклов.Суперкомпьютер Cray-1Поколения архитектур и парадигмы программирования(или как часто мы были вынуждены полностью переписывать приложения?)Векторно-параллельные компьютерыНачало 80-х годов.Суперкомпьютер Cray X-MPОсобенности архитектуры: векторныефункциональные устройства, зацеплениефункциональных устройств, векторныекоманды в системе команд, векторныерегистры.Небольшое число процессоров объединяютсянад общей памятью.Программирование: векторизация самыхвнутренних циклов и распараллеливание навнешнем уровне, единое адресноепространство, локальные и глобальныепеременные.Суперкомпьютер Cray Y-MPПоколения архитектур и парадигмы программирования(или как часто мы были вынуждены полностью переписывать приложения?)Массивно-параллельные компьютерыНачало 90-х годов.Особенности архитектуры: тысячипроцессоров объединяются с помощьюкоммуникационной сети по некоторойтопологии, распределенная память.Суперкомпьютер Cray T3DСуперкомпьютер Intel Paragon XPS140Программирование: обмен сообщениями,отсутствие единого адресного пространства,PVM, Message Passing Interface.Необходимость выделения массовогопараллелизма, явного распределения данных исогласования параллелизма с распределением.Поколения архитектур и парадигмы программирования(или как часто мы были вынуждены полностью переписывать приложения?)Параллельные компьютеры с общейпамятьюСередина 90-х годов.Особенности архитектуры: сотни процессоровобъединяются над общей памятью.DEC AlphaServerСуперкомпьютер Sun StarFireПрограммирование: единое адресноепространство, локальные и глобальныепеременные, Linda, OpenMP.Поколения архитектур и парадигмы программирования(или как часто мы были вынуждены полностью переписывать приложения?)Кластеры из узлов с общей памятьюНачало 2000-х.Суперкомпьютер МГУ “Чебышев”“K” суперкомпьютерОсобенности архитектуры: большое числомногопроцессорных узлов объединяютсявместе с помощью коммуникационной сети понекоторой топологии, распределенная память;в рамках каждого узла несколько(многоядерных) процессоров объединяютсянад общей памятью.Программирование: неоднородная схемаMPI+OpenMP;необходимость выделения массовогопараллелизма, явное распределение данных,обмен сообщениями на внешнем уровне;распараллеливание в едином адресномпространстве, локальные и глобальныепеременные на уровне узла с общей памятью.Поколения архитектур и парадигмы программирования(или как часто мы были вынуждены полностью переписывать приложения?)Кластеры из узлов с общей памятью сускорителямиСередина 2000-х.Суперкомпьютер МГУ “Ломоносов”Особенности архитектуры: большое числомногопроцессорных узлов объединяютсявместе с помощью коммуникационной сети понекоторой топологии, распределенная память;в рамках каждого узла несколько(многоядерных) процессоров объединяютсянад общей памятью; на каждом узле несколькоускорителей (GPU, Phi).Программирование:MPI+OpenMP+OpenCL/CUDA;Суперкомпьютер Tianhe-2Поколения архитектур и парадигмы программирования(или как часто мы были вынуждены полностью переписывать приложения?)С 1976 года до наших дней:70-е – Векторизация циклов80-е – Распараллеливание циклов (внешних) + Векторизация (внутренних)90-е - MPIсередина 90-х - OpenMPМожно лисередина 2000-х - MPI+OpenMPвыполнить2010-е - CUDA, OpenCL, MPI+OpenMP+ускорители (GPU,XeonPhi)такойанализ…“раз и навсегда” ?Виден ли конец процессу переписывания программ?..Для каждого поколения компьютеров мы вынуждены:- Анализировать алгоритмы, чтобы понять, как их приспособить подновую компьютерную платформу ;- Описывать найденные свойства, чтобы получить эффективнуюреализацию для новой платформы.Что значит “выполнить анализ алгоритма”?Что мы должны найти в алгоритмах?“…выполнить анализ раз и навсегда…“ – какзаписать результаты?Что представляет “единое” / “универсальное”описание алгоритмов?Какие свойства алгоритмов нужно исследовать иописать чтобы получать эффективные реализациив будущем для будущих платформ?Слишком много “простых” вопросов…Хорошо ли мы знаем свойства, особенности,статические и динамические характеристикипараллельных алгоритмов?Какие свойства алгоритмов важны?На какие свойства алгоритмовнужно обращать внимание?И простые свойства могут быть важны…(объем входных/выходных данных)Нахождение транзитивного замыкания графа:На входе: n вершин, n-1 дуга.На выходе: n вершин, n(n-1)/2 дуга.Социальные сети: 108 вершин, 1011 дуг.И простые свойства могут быть важны…(объём входных/выходных данных)Нахождение транзитивного замыкания графа:На входе: n вершин, n-1 дуга.На выходе: n вершин, n(n-1)/2 дуга.Социальные сети: 108 вершин, 1011 дуг.Вычислительная мощность алгоритма =Число операцийОбъём данныхТест Linpack (решение линейной системы):  nПоэлементное сложение двух векторов:1/3Параллелизм бывает неудобным(Что нужно знать про алгоритмы)#pragma OpenMP parallel forfor( i = 1 ; i <= n ; ++i)for( j = 1 ; j <= m ; ++j)A[i][j] = (A[i][j] * A[i][j-1]) / 2 ;Параллелизм бывает неудобным(Что нужно знать про алгоритмы)#pragma OpenMP parallel forfor( i = 1 ; i <= n ; ++i)for( j = 1 ; j <= m ; ++j)A[i][j] = (A[i][j] * A[i][j-1]) / 2 ;for( i = 1 ; i <= n ; ++i)for( j = 1 ; j <= m ; ++j)A[i][j] = (A[i-1][j] * A[i][j-1]) / 2 ;Локальность определяет многое(Что нужно знать про алгоритмы)(a)(b)(c)(d)(e)(f)A[i] = B[i]*x + cA[i] = B[i]*x + C[i]A[i] = B[i]*X[i] + C[i]A[ind[i]] = B[ind[i]]*x+cA[ind[i]] = B[ind[i]]*x+C[ind[i]]A[ind[i]] = B[ind[i]]*X[ind[i]]+C[ind[i]]Какие свойства должны войти в “универсальное”(“полное”) описание алгоритмов?Описание алгоритмов(Что должно быть учтено в подобном описании?)Информационный граф ДетерминированностьВычислительное ядро Макроструктура Локальность вычисленийМасштабируемость Локальность данныхПроизводительностьМатематическое описаниеСвойства и особенностиЭффективностьКоммуникационный профильСложностьВычислительная мощностьРесурс параллелизмаВходные / Выходные данныеОписание алгоритмов(Что должно быть учтено в подобном описании?)Информационный граф ДетерминированностьВычислительное ядро Макроструктура Локальность вычисленийАлгоритмы:Масштабируемостьтеоретический потенциал Локальность данныхПроизводительностьМатематическое описаниеСвойства и особенности(машинно-независимые свойства)Алгоритмы:ЭффективностьКоммуникационный профильСложностьособенностиреализацииВычислительнаямощностьРесурс параллелизмаВходные / Выходные данныеОписание алгоритмов(на примере разложения Холецкого)Кратко о важномОписание алгоритмов(на примере разложения Холецкого)Общее описаниеМатематическое описаниеКомментарии к алгоритмуОписание алгоритмов(на примере разложения Холецкого)Вычислительное ядроПоследовательная сложностьДополнительная информацияБазовая схема реализацииОписание алгоритмов(на примере разложения Холецкого)Информационная структураИнформационная структура с указанием входных и выходных данныхОписание алгоритмов(на примере разложения Холецкого)Локальность данных (профиль работы с памятью)Описание алгоритмов(на примере разложения Холецкого)Масштабируемость (производительность) *Эффективность ** Масштабируемость, производительность, эффективность измерялись на суперкомпьютере МГУ “Ломоносов”.Описание алгоритмов(на примере разложения Холецкого)Динамические характеристики ** Динамические характеристики получены на суперкомпьютере МГУ “Ломоносов”.Это очень полезная информация об алгоритме,она действительно нужна.Но…Создание полного описания алгоритма это не сложно.Это очень сложно !Информационная структура: как получать, описывать,показывать… ?(сложности описания алгоритмов)- Как изобразить потенциально бесконечный граф ?- Как изобразить потенциально многомерный граф ?- Как показать зависимость структуры графа отразмера задачи ?Информационная структура: как получать, описывать,показывать… ?(сложности описания алгоритмов)Информационная структура: как получать, описывать,показывать… ?(сложности описания алгоритмов)Информационная структура: как получать, описывать,показывать… ?(сложности описания алгоритмов)Как выразить имеющийся параллелизм и показать возможный способпараллельного исполнения ?Информационная структура: как получать, описывать,показывать… ?(сложности описания алгоритмов)Шаг 1Шаг 2Шаг 4Шаг 5Цвета в ярусно-параллельной форме:Красный – слой выполняющихся операций; Зеленый – уже выполненные операции;Белый – операции должны выполниться позже.Шаг 3Потенциальный параллелизм: как находить, описывать,показывать… ?(сложности описания алгоритмов)init processE = E1  E2  …  EkMST(E) = MST(E1  E2  …  Ek) =compute MSTcompute MST= MST( MST(E1)  MST(E2)  …  MST(Ek))compute MSTsolve resultsexitМинимальное остовное дерево (MST)(ресурс “математического” параллелизма)…compute MSTПотенциальный параллелизм: как находить, описывать,показывать… ?(сложности описания алгоритмов)331122233…3……} |E|5555…5} |E|6666…6} |V|77777} |V|8888…8} |V|9999…9} |V|1} |V|2} |V|V – множество вершинE – множество дуг3333444455557777………3} |E|4} |E|5} |E|7} |V|Недетерминизм (нерегулярность)…12Минимальное остовное дерево(ресурс классического параллелизма)Следующая итерациявыход1011…Одна итерацияНедетерминизм (нерегулярность)1Структура алгоритмов: возможные варианты дляпараллельного кода(сложности описания алгоритмов)Предположим, что мы знаем потенциальный параллелизм алгоритма...Как выразить “потенциальную свободу” в выборе походящей формыдля параллельной программы ?Структура алгоритмов: возможные варианты дляпараллельного кода(сложности описания алгоритмов)Циклический профиль алгоритма / программыСамый внешний цикл (отмечен “1”) - параллельный.Можно ли сделать данный цикл самым внутренним, чтобы векторизовать?Структура алгоритмов: возможные варианты дляпараллельного кода(сложности описания алгоритмов)Эта последовательностьпреобразований делаетисходный внешний цикл(1) внутренним ипозволяет векторизоватьпрограмму (алгоритм).Как показать подобныйпотенциалпреобразований в общемслучае?Возможные источники несбалансированности:это важно, это нужно отметить(сложности описания алгоритмов)Баланс между арифметическими операциями +/- and * ;Баланс между арифметическими операциями и “чтениями/записями”;Возможные источники несбалансированности:это важно, это нужно отметить(сложности описания алгоритмов)Баланс между арифметическими операциями +/- and * ;Баланс между арифметическими операциями и “чтениями/записями”;Баланс в числе операций, которыемогут выполняться параллельно;Баланс между вычислительной и коммуникационной частями…Возможные источники недетерминизма:это важно, это нужно отметить(сложности описания алгоритмов)Структура входных данных (разреженные матрицы, графыпроизвольной структуры…);Итерационная природа алгоритмов;Датчики случайных чисел;Отсутствие повторяемости результатов из-за разного порядкавыполнения ассоциативных операций…Локальность данных: множество открытых вопросов(сложности описания алгоритмов)Как оценивать пространственную* и временную** локальность данныхв программе ?Как сравнивать пространственную и временную локальность данныхразных программ ?* Пространственная локальность данных – насколько близко друг к другу расположены последовательные обращения в память.** Временная локальность данных – насколько часто происходят обращения к одним и тем же данным.LinpackFFTRandom AccessЛокальность данных: множество открытых вопросов(сложности описания алгоритмов)Как оценивать пространственную и временную локальность данных впрограмме ?Как сравнивать пространственную и временную локальность данныхразных программ ?Можем ли мы предсказывать локальность данных в будущихреализациях, опираясь только на информацию об алгоритмах?Что означает “локальность алгоритма” ?Что означает “алгоритм обладает хорошей/плохой локальностью” ?В алгоритмах нет структур данных, а значит и понятие “локальность” кним напрямую не применимо! Вместе с этим, алгоритмы определяютсуть программ, где локальность уместна и важна.Коммуникационный профиль приложений(сложности описания алгоритмов)MPI_Reduce( buf, …)MPI_Reduce( buf, …)MPI_Reduce( buf, …)А что такое коммуникационный профиль приложений?Как его получить и описывать? (Scalasca, Vampir…)Все ли мы знаем о разложении Холецкого ?Да…Кажется, что Да…Фундаментальный вопрос:Что означает выполнить полное описание алгоритма?Пока ответа не знает никто...Разновидности одного алгоритма…(сложности описания алгоритмов)Алгоритмы и их реализацииAАЛГОРИТМЫПРОГРАММЫP1 P2 P3КОМПЬЮТЕРНЫЕ ПЛАТФОРМЫCДостаточно ли у нас информации об алгоритме A, чтобы создатьэффективную реализацию для платформы C?Можем ли мы использовать реализации P1, P2, P3 или мы должны создаватьеще одну реализацию P для платформы C?Элементы суперкомпьютерного кодизайнаСтруктура и свойства алгоритмов(от мобильных платформ до экзафлопсных суперкомпьютеров)Информационный граф ДетерминированностьВычислительное ядро Макроструктура Локальность вычисленийАлгоритмы:Масштабируемостьтеоретический потенциал Локальность данныхПроизводительностьМатематическое описаниеСвойства и особенности(машинно-независимые свойства)Алгоритмы:ЭффективностьКоммуникационный профильСложностьособенностиреализацииВычислительнаямощностьРесурс параллелизмаВходные / Выходные данныеAlgoWikihttp://AlgoWiki-Project.orgAlgoWikihttp://AlgoWiki-Project.orgAlgoWikiВнимание, зачетное задание!Описание структуры и особенностей алгоритма(ов).Формат: AlgoWiki.Алгоритмы – список будет представлен на Parallel.ru/SS16Описание алгоритмов необходимо выполнять по принятой в AlgoWikiструктуре.Регистрация на сайте для создания описания в формате AlgoWiki.Одно задание можно выполнять группой в два человека.Реализация: полностью собственная или обращение к библиотечнойфункции (Intel MKL, PETc, FFTW, ScaLAPACK).В любом случае, текст исследуемой программы должен бытьпредставлен в отчете.Компьютерная платформа может быть любой (Ломоносов, BlueGene иличто-то иное).

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
428
Средний доход
с одного платного файла
Обучение Подробнее