Факультет прикладной математики и физики Кафедра вычислительной математики и программирования МОСКОВСКИЙ АВИАЦИОННЫЙ ИНСТИТУТ (национальный исследовательский университет) (национальный исследовательский университет) Выполнил: Семенов С.А. Руководитель: Ревизников Д.Л. Лекция 6 « Различные типы параллельных систем. Классическая и гибридная схема »
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 2 Московский авиационный институт (национальный исследовательский университет ) Возможные виды параллелизма Классификация Флина (SISD,SIMD, etc.) не вполне отражает вариации архитектур современных выч. устройств Сложно отнести к какому-то определённому классу Физическая многоядерность VS Одно ядро над различными контекстами во времени Различные виды конвейеров Буферизованные / не буферизованные | синхронные / асинхронные Разбиение на независимые пути выполнения на высоком и низком уровне CPU – высокий уровень / GPU – низкий уровень Параллелизм на различных данных, на независимых путях исполнения или на уровне инструкций GPU – над данными / CPU – на путях исполнения Векторные VS скалярные АЛУ
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 3 Московский авиационный институт (национальный исследовательский университет ) Параллелизм задач –возможность применения параллельных методов Если параллелизм отсутствует в исходной задаче – параллелизм счётного устройства не даст выигрыша Большие задачи в подавляющем количестве случаев – параллельны Способ мышления человека – составление сложных объектов и методов как комбинаций простых (от простого к сложному) – модель газа состоит из одинаковых частиц Свойства физического мира (принцип локальности взаимодействия) - задачи динамики газов и жидкостей Свойства математических объектов – перебор / независимые испытания Хорошее приложение это: Много входов / много выходов Существование параллельных путей ведения расчетов Ограниченность взаимодействия между отдельными путями Большое кол-во вычислений на обращение к памяти
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 4 Московский авиационный институт (национальный исследовательский университет ) Оптимизация Optimization consists of analyzing and tuning software code to make it perform faster and more efficiently on Intel processor architecture.
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 5 Московский авиационный институт (национальный исследовательский университет ) Типы отимизаций По производительности По памяти По масштабируемости Оптимизация коммуникаций Далее занимаемся только оптимизацией по производительности
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 6 Московский авиационный институт (национальный исследовательский университет ) Дональд Кнут Преждевременная оптимизация является корнем всего зла Если ваш код уже работает, его оптимизация верный путь к внедрению новых, и, возможно, более тонких ошибок Оптимизация делает код сложнее для понимания и поддержки Некоторые методы оптимизации по увеличению скорости снижают расширяемость код На оптимизацию можно потратить много времени и получить небольшой выигрыш в производительности. Кроме того это может привести к запутыванию кода
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 7 Московский авиационный институт (национальный исследовательский университет ) Быстрые программы требуют больше памяти Чтобы создать более быструю программу требуется больше времени для оптимизации. Оптимизация кода для одной платформы может фактически сделать его хуже, на другой платформе НО !!!!! Майкл Абраш (Quake, Unreal \ Tournament, Space Strike, Half-Life): Производительность должна всегда измеряется Любая оптимизация, заметная пользователем, должна быть сделана.
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 8 Московский авиационный институт (национальный исследовательский университет ) Стадии оптимизации Дизайн программы –Выбор алгоритмов и структур данных – Ускорение – Реализация программы – Языки программирования – Ускорение – Профилирование программы – «Заточка» программы под архитектуру – Ускорение – (не для CELL BE)
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 9 Московский авиационный институт (национальный исследовательский университет ) Схема суперкомпьютерной системы
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 10 Московский авиационный институт (национальный исследовательский университет ) Опыт использования Используются на производстве и, уже можно сказать, используются массово: в общей сложности, 10 тысяч узлов на вычислительных рабочих кластерах в нефтегазовом секторе по всему миру – в США, в Китае, возможно, в Европе (европейские компании еще не делали официальных объявлений на этот счет). То же на Ближнем Востоке.
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 11 Московский авиационный институт (национальный исследовательский университет ) Взрывная волна ~10^8 частиц – 8000 вычислительных ячеек
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 12 Московский авиационный институт (национальный исследовательский университет ) Кластеры и суперкомпьютеры на гибридной схеме Кластерные системы Гибридные системы Топ 500
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 13 Московский авиационный институт (национальный исследовательский университет ) Кластерные системы Кластер группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс. Один из первых архитекторов кластерной технологии Грегори Пфистер (Gregory F. Pfister) дал кластеру следующее определение: «Кластер это разновидность параллельной или распределённой системы, которая: состоит из нескольких связанных между собой компьютеров; используется как единый, унифицированный компьютерный ресурс». Обычно различают следующие основные виды кластеров: отказоустойчивые кластеры (High-availability clusters, HA, кластеры высокой доступности) кластеры с балансировкой нагрузки (Load balancing clusters) вычислительные кластеры (Computing clusters) grid-системы
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 14 Московский авиационный институт (национальный исследовательский университет ) Кластеры высокой доступности Создаются для обеспечения высокой доступности сервиса, предоставляемого кластером. Избыточное число узлов, входящих в кластер, гарантирует предоставление сервиса в случае отказа одного или нескольких серверов. Отказоустойчивые кластеры и системы вообще строятся по трем основным принципам: с холодным резервом или активный/пассивный. Активный узел выполняет запросы, а пассивный ждет его отказа и включается в работу, когда таковой произойдет. Пример резервные сетевые соединения, в частности, Алгоритм связующего дерева. с горячим резервом или активный/активный. Все узлы выполняют запросы, в случае отказа одного нагрузка перераспределяется между оставшимися. То есть кластер распределения нагрузки с поддержкой перераспределения запросов при отказе. Примеры практически все кластерные технологии, например, Microsoft Cluster Server. OpenSource проект OpenMosix. с модульной избыточностью. Применяется только в случае, когда простой системы совершенно недопустим. Все узлы одновременно выполняют один и тот же запрос (либо части его, но так, что результат достижим и при отказе любого узла), из результатов берется любой. Необходимо гарантировать, что результаты разных узлов всегда будут одинаковы (либо различия гарантированно не повлияют на дальнейшую работу). Примеры RAID и Triple modular redundancy.
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 15 Московский авиационный институт (национальный исследовательский университет ) Кластеры распределения нагрузки Принцип их действия строится на распределении запросов через один или несколько входных узлов, которые перенаправляют их на обработку в остальные, вычислительные узлы. Первоначальная цель такого кластера производительность, однако, в них часто используются также и методы, повышающие надёжность. Подобные конструкции называются серверными фермами.
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 16 Московский авиационный институт (национальный исследовательский университет ) Вычислительные кластеры Кластеры используются в вычислительных целях, в частности в научных исследованиях. Вычислительные кластеры позволяют уменьшить время расчетов, по сравнению с одиночным компьютером, разбивая задание на параллельно выполняющиеся ветки, которые обмениваются данными по связывающей сети. (Обозначаются англ. аббревиатурой HPC Cluster High-performance computing cluster)
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 17 Московский авиационный институт (национальный исследовательский университет ) Системы распределенных вычислений (grid) Главное отличие низкая доступность каждого узла, то есть невозможность гарантировать его работу в заданный момент времени (узлы подключаются и отключаются в процессе работы), поэтому задача должна быть разбита на ряд независимых друг от друга процессов.
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 18 Московский авиационный институт (национальный исследовательский университет ) Гибридная вычислительная система Система с гетерогенной аппаратной вычислительной структурой. Комбинация любых вычислительных устройств или блоков, например вычисления с помощью CPU и GPU совместно.
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 19 Московский авиационный институт (национальный исследовательский университет ) Схематическое изображение GPU «Fermi»
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 20 Московский авиационный институт (национальный исследовательский университет ) Вычислительные возможности GPU
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 21 Московский авиационный институт (национальный исследовательский университет ) GPU кластеры
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 22 Московский авиационный институт (национальный исследовательский университет ) TOP500 Рейтинг по состоянию на июнь 2011
Факультет прикладной математики и физики Кафедра Вычислительной математики и программирования 23 Московский авиационный институт (национальный исследовательский университет ) Вопросы