Вычислительные системы лекция5.ppt
- Количество слайдов: 49
1 Государственный университет - Высшая школа экономики Факультет бизнес-информатики Дисциплина Информационные процессы, системы и сети Модуль 3: Распределенные и параллельные вычислительные системы 1. Общие понятия распределенных и параллельных вычислений 2. Общие определения и классификация параллельных вычислительных систем 3. Общие определения и классификация распределенных вычислительных систем Преподаватель Чумичкин Александрович кандидат технических наук, доцент
2 Государственный университет - Высшая школа экономики Факультет бизнес-информатики Параллельные вычислительные системы Лекция 5. 1. Общие определения и классификация параллельных вычислительных систем 2. Эффективность параллельных вычислительных систем
3 Параллельные вычислительные системы — это физические компьютерные, а также программные системы, реализующие тем или иным способом параллельную обработку данных на многих вычислительных узлах. Параллелизм Идея распараллеливания вычислений основана на том, что большинство задач может быть разделено на набор меньших задач, которые могут быть решены одновременно. Параллельные вычисления существуют в нескольких формах: u параллелизм на уровне битов, u параллелизм на уровне инструкций, u параллелизм данных, u параллелизм задач. Параллельные вычисления использовались много лет в основном в высокопроизводительных вычислениях, но в последнее время к ним возрос интерес вследствие существования физических ограничений на рост тактовой частоты процессоров. Параллельные вычисления стали доминирующей парадигмой в архитектуре компьютеров, в основном в форме многоядерных процессоров.
4 Соотношение между параллельными и распределенными вычислительными системами.
5 Соотношение между параллельными и распределенными вычислительными системами. Данный поход позволяет различать два важных типа параллельных систем: – мультипроцессоры, или системы с общей разделяемой памятью; – мультикомпьютеры, или системы с распределенной памятью; Для более детальной классификации мультипроцессоров учитывается способ построения общей памяти. Возможны следующие варианты: – использование единой (централизованной) общей памяти. – использование физически распределенной памяти. Мультикомпьютеры (системы с распределенной памятью) уже не обеспечивают общий доступ ко всей имеющейся в системах памяти. Данный подход используется при построении двух важных типов многопроцессорных вычислительных систем: – массивно параллельные системы (Massively Parallel Processor, MPP); – кластеры (clusters).
6 Классификация параллельных вычислительных систем SISD (Single Instruction Single Data): это обычные последовательные компьютеры. Программа принимает один поток данных и выполняет один поток инструкций по обработке этих данных. Иными словами, инструкции выполняются после довательно, и каждая инструкция оперирует минимальным количеством данных (например, сложение двух чисел).
7 Классификация параллельных вычислительных систем Системами с общей памятью называют системы, в которых несколько процессоров имеют общую оперативную память. Чаще всего встречающиеся системы этого типа — компьютеры с многоядерными процессорами (multi core). Преимущества: u Не требуется обмен данными: данные, помещённые в память одним процессором, автоматически становятся доступными другим процессорам. Соответственно, система не должна тратить время на пересылку данных. u Для таких систем просто писать программы: можно, например, создать несколько вычислительных потоков, или же снабдить программу специальными директивами (например, технология Open. MP), которые подскажут компилятору, как распараллеливать программу. Кроме того, возможно полностью автоматическое распараллеливание программы компилятором. u Компактность систем: может быть реализована в виде нескольких процессоров на одной материнской плате, и/или в виде нескольких ядер внутри процессора.
8 Классификация параллельных вычислительных систем Недостатки: u Проблема Системы с общей памятью совместного доступа к памяти: нужно осторожно работать с теми участками памяти, для которых возможно одновременное выполнение записи одним процессором и другой операции (записи или чтения) другим процессором. u Проблема синхронности кэшей: для ускорения доступа к памяти процессоры снабжаются кэшами. Если один процессор изменил данные в оперативной памяти, и эти данные прокэшированы другими процессорами, то их кэши должны автоматически обновиться. Данная проблема отсутствует в многоядерных процессорах, использующих общий кэш. u Проблема медленного обращения к оперативной памяти и её ограниченно го объёма: процессор работает быстро, а память — медленно, поэтому даже одному процессору приходится ждать загрузки данных из оперативной памя ти. Если же процессоров несколько, то им приходится ждать ещё дольше. Скорость работы каждого процессора с памятью становится тем меньше, чем большее число процессоров имеется в системе. Кроме того, объём памяти не может быть сделан сколь угодно большим, так как для этого придётся увеличивать разрядность шины памяти. u Проблема масштабируемости: очень сложно сделать подобную систему с больши м числом процессоров, так как очень сильно возрастает стоимость и падает эффективность работы из за описанных выше проблем. Практически все подобные системы имеют ≤ 8 процессоров.
9 Классификация параллельных вычислительных систем Системы с распределённой памятью - система содержит несколько процессоров, каждый имеет свою оперативную память. Для обеспечения обмена информацией процессоры соединены каналами связи. По характеру связей такие системы делятся на: u системы с универсальной коммутацией (каждый процессор может передать информацию любому другому процессору); u системы с жёсткой (фиксированной) коммутацией (каждый про цессор может передать информацию только ограниченному числу других процес соров). Системы с распределённой памятью, в которых каждый вычислительный узел представляет собой полноценный компьютер со своей копией операционной системы, называют кластерными (или «кластерами» ). Кластеры обычно представляют собой шкафы с компактными системными блоками, которые соединены друг с другом каналами связи (посредством специальных коммутаторов), передающими данные со скоростью 10 ГБит/сек и более.
10 Классификация параллельных вычислительных систем Системы с распределённой памятью Преимущества: Простота и дешевизна построения: можно взять большое количество обычных компьютеров, соединить их каналами связи (например, Ethernet), и получить кластер. Эффективное решение задач, требующих малого обмена данными: каждый компьютер будет работать в полную мощность, не ожидая, пока освободится доступ к оперативной памяти. Возможность решать задачи, требующие очень больших объёмов оперативной памяти: суммарный объём памяти системы можно сделать сколь угодно большим. Требуется лишь, чтобы задача разбивалась на относительно независимые подзадачи. Возможность масштабирования: можно соединить сколько угодно вычислительных узлов вместе, при этом стоимость системы будет пропорциональна числу узлов. В связи с этим большинство самых мощных вычислительных систем в мире являются кластерными.
11 Классификация параллельных вычислительных систем Системы с распределённой памятью Недостатки: Проблема обмена данными: обмен данными в таких системах обычно идёт очень медленно по сравнению со скоростью вычислений (и с большими задержками). Поэтому задачи, требующие интенсивного обмена, невозможно решить на таких системах эффективно. Сложное программирование: программист должен продумать обмен данными, который будет присутствовать в системе, должен сам запрограммировать этот обмен (например, с помощью MPI). При неправильном программировании велика вероятность взаимных блокировок: когда, например, два процессора ждут данных друг от друга. Проблема блокировок есть и в системах с общей памятью, но здесь она проявляет себя гораздо чаще. Автоматическая организация обмена данными возможна лишь для некоторых частных случаев. Большой размер систем и большое энергопотребление: кластерные системы занимают целые комнаты и даже здания.
12 Классификация параллельных вычислительных систем Под архитектурой вычислительной системы понимаются абстрактное представление ЭВМ с точки зрения программиста. Полное описание архитектуры системы включает в себя: основные форматы представления данных; u способы адресации данных в программе; u состав аппаратных средств вычислительной машины, характеристики этих средств, принципы организации вычислительного процесса. u В курсе рассматриваются только последние аспекты архитектуры вычислительной системы. Структуру вычислительной системы можно определить как совокупность аппаратных средств ЭВМ с указанием основных связей между ними. Имеется много различных классификаций вычислительных систем. Рассмотрим наиболее часто используемые классификации.
13 Векторно конвейерные вычислительные системы относятся к классу SIMD систем. Основные принципы, заложенные в архитектуру векторно конвейерных систем: u конвейерная организация обработки потока команд; u введение в систему команд набора векторных операций, которые позволяют оперировать с целыми массивами данных. Длина обрабатываемых векторов в современных векторно конвейерных системах составляет, как правило, 128 или 256 элементов. Основное назначение векторных операций состоит в распараллеливании выполнения операторов цикла, в которых обычно сосредоточена большая часть вычислительной работы. Первый векторно конвейерный компьютер Cray 1 появился в 1976 году. Архитектура этого компьютера оказалась настолько удачной, что он положил начало целому семейству компьютеров.
14 Векторно конвейерные вычислительные системы. Современные векторно конвейерные системы имеют иерархическую структуру: u на нижнем уровне иерархии расположены конвейеры операций (например, конвейер (pipeline) сложения вещественных чисел, конвейер умножения таких же чисел и т. п. ); u некоторая совокупность конвейеров операций объединяется в конвейерное функциональное устройство; u векторно конвейерный процессор содержит ряд конвейерных функциональных устройств; u несколько векторно конвейерных процессоров (2 16), объединенных общей памятью, образуют вычислительный узел; u несколько таких узлов объединяются с помощью коммутаторов, образуя либо NUMA систему либо MPP систему. Уровень развития микроэлектронных технологий не позволяет в настоящее время производить однокристальные векторно конвейерные процессоры, поэтому эти системы довольно громоздки и чрезвычайно дороги. Каждая часть конвейера операций называется ступенью конвейера операций, а общее число ступеней длиной конвейера операций.
15 Векторно параллельные системы. Как и векторно конвейерные системы, векторно параллельная вычислительная система обычно имеет иерархическую структуру. На нижнем уровне иерархии находятся векторно параллельные процессоры, представляющие собой совокупность скалярных процессоров (процессорных элементов), которые объединены некоторой коммуникационной сетью и в каждом такте синхронно выполняют одну и ту же команду над разными данными. На верхнем уровне иерархии векторно параллельные процессоры объединяются общей памятью или коммуникационной сетью, образуя NUMA систему либо MPP систему. Векторно параллельные процессоры имеют в своих системах команд специальные векторные (матричные) операции, такие, как векторное и матричное сложение, умножение вектора на матрицу, умножение матрицы на константу, вычисление скалярного произведения, свертки и т. д. При выполнении векторных операций различные компоненты векторов и матриц обрабатываются параллельно на различных процессорных элементах.
16 Векторно параллельные системы. В векторно параллельном процессоре с одинаковым числом скалярных процессоров и модулей памяти каждый скалярный процессор подключается к своему модулю памяти (см. рис. 3). Команда, выдаваемая устройством управления, содержит одинаковый адрес для всех скалярных процессоров. С помощью специального «флага» можно запретить выполнение команды на данном скалярном процессоре – «маскирование команды» .
17 Векторно параллельные системы. В векторно параллельном процессоре с различным количество скалярных процессоров и модулей памяти (см. рис. 4) основной проблемой является проблема исключения конфликтов при обращении к памяти (поскольку к одному модулю памяти могут одновременно обращаться в переделе все скалярные процессоры). Для преодоления этой проблемы в системах этого класса используют изощренные схемы хранения массивов данных.
18 Многопроцессорные системы (MIMD системы). Вычислительные кластеры Вычислительный кластер – это MIMD система (мультикомпьютер), состоящая из множества отдельных компьютеров (узлов вычислительного кластера), объединенных единой коммуникационной средой. Каждый узел имеет свою локальную оперативную память. При этом общей физической оперативной памяти для узлов, как правило, не существует. Коммуникационная среда вычислительных кластеров обычно позволяет узлам взаимодействовать между собой только посредством передачи сообщений. В целом, вычислительный кластер следует рассматривать как единую аппаратно программную систему, имеющую единую коммуникационную систему, единый центр управления и планирования загрузки. Узлы вычислительного кластера могут функционировать под управлением разных операционных систем. Однако чаще всего используются стандартные UNIX подобные системы. Заметим, что точки зрения разработки прикладных параллельных программ нет каких либо принципиальных различий между однородными вычислительными кластерами и MPP системами. Вычислительные кластеры классифицируются, прежде всего, по характеру узловых процессоров (см. рис. 1).
19 Классификация параллельных вычислительных систем В качестве узлов вычислительного кластера обычно используют персональные компьютеры, рабочие станции и SMP сервера. Если в качестве узла кластера используются SMP система, то такой вычислительный кластер называется SMP кластером. Если в качестве узлов вычислительного кластера используются персональные ЭВМ или рабочие станции, то обычной является ситуация, когда во время решения задачи на кластере на узлах этого кластера продолжают выполняться последовательные задания пользователей. В результате относительная производительность узлов кластера меняется случайным образом и в широких пределах. Решением проблемы было бы написание самоадаптирующейся пользовательской программы. Однако эффективное решение этой задачи представляется весьма проблематичным. Ситуация усугубляется, если среди узловых компьютеров вычислительного кластера имеются файловые серверы. При этом во время решения задачи на кластере в широких пределах может меняться загрузка коммуникационной среды, что делает непредсказуемыми коммуникационные расходы задачи.
20 Классификация параллельных вычислительных систем
21 Классификация параллельных вычислительных систем Как и всякие MIMD системы, вычислительные кластеры разделяются на однородные кластерные системы (однородные вычислительные кластеры) и гетерогенные кластерные системы (гетерогенные вычислительные кластеры). Обычно, когда говорят о вычислительных кластерах, подразумевают однородные вычислительные кластеры. Однако часто при наращивании кластера приходится использовать процессоры, отличающиеся не только по производительности, но и по архитектуре, от узловых процессоров кластера. Поэтому постепенно однородный вычислительный кластер может стать неоднородным. Эта неоднородность создает следующие проблемы. Различие в производительности процессоров усложняет задачу распределения работ между процессорами. Различие в архитектуре процессоров требует подготовки разных выполняемых файлов для разных узлов, а в случае различий в представлении данных, может потребовать и преобразования их форматов при передаче сообщений между узлами.
22 Вычислительные сети. Выделяется еще один класс вычислительных кластеров вычислительные сети (GRID), объединяющие ресурсы множества кластеров, многопроцессорных и однопроцессорных ЭВМ, которые могут принадлежать разным организациям и быть расположенными в разных странах. Разработка параллельных программ для вычислительных сетей усложняется из за следующих проблем. Ресурсы (количество узлов, их архитектура, производительность), которые выделяются задаче, определяется только в момент обработки сетью заказа на выполнение это задачи. Поэтому программист не имеет возможности разработать программу для конкретной конфигурации вычислительной сети. Программу приходится разрабатывать так, чтобы она могла динамически (без перекомпиляции) самонастраиваться на выделенную конфигурацию сети. Кроме того, к неоднородности коммуникационной среды добавляется изменчивость ее характеристик, вызываемая изменениями загрузки сети.
23 Вычислительные сети. В лучшем случае программа должна разрабатываться с учетом этой неоднородности коммуникационной среды, что представляет собой весьма непростую задачу. Как мы отмечали выше, подобная проблема имеет место и для вычислительных кластеров, построенных на основе персональных компьютеров или рабочих станций. Эффективная производительность кластерных вычислительных систем (real applications performance – RAP) оценивается как 5– 15% от их пиковой производительности (Peak Advertised Performance, PAP). Для сравнения: у лучших малопроцессорных систем из векторных процессоров это соотношение оценивается как 30– 50%.
24 Закон Амдала Зако н Амдала (англ. Amdahl's law, иногда также Закон Амдаля Уэра) — иллюстрирует ограничение роста производительности вычислительной системы с увеличением количества вычислителей. Согласно этому закону, ускорение выполнения программы за счет распараллеливания её инструкций на множестве вычислителей ограничено временем, необходимым для выполнения её последовательных инструкций.
25 Закон Амдала Предположим, что необходимо решить некоторую вычислительную задачу. Предположим, что её алгоритм таков, что доля α от общего объёма вычислений может быть получена только последовательными расчётами, а, соответственно, доля 1 − α может быть распараллелена идеально (то есть время вычисления будет обратно пропорционально числу задействованных узлов p). Тогда ускорение, которое может быть получено на вычислительной системе из p процессоров, по сравнению с однопроцессорным решением не будет превышать величины
26 Закон Амдала Таблица показывает, во сколько раз быстрее выполнится программа с долей последовательных вычислений α при использовании p процессоров. Из таблицы видно, что только алгоритм, вовсе не содержащий последовательных вычислений (α = 0), позволяет получить линейный прирост производительности с ростом количества вычислителей в системе. Если доля последовательных вычислений в алгоритме равна 25 %, то увеличение числа процессоров до 10 дает ускорение в 3, 077 раза, а увеличение числа процессоров до 1000 даст ускорение в 3, 988 раза. Отсюда же очевидно, что при доле последовательных вычислений α общий прирост производительности не может превысить 1 / α. Так, если половина кода — последовательная, то общий прирост никогда не превысит двух.
27 Закон Амдала показывает, что прирост эффективности вычислений зависит от алгоритма задачи и ограничен сверху для любой задачи с α≠ 0. Не для всякой задачи имеет смысл наращивание числа процессоров в вычислительной системе. Более того, если учесть время, необходимое для передачи данных между узлами вычислительной системы, то зависимость времени вычислений от числа узлов будет иметь максимум. Это накладывает ограничение на масштабируемость вычислительной системы, то есть означает, что с определенного момента добавление новых узлов в систему будет увеличивать время расчёта задачи.
28 Закон Густавсона — Барсиса (англ. Gustafson – Barsis's law) — оценка максимально достижимого ускорения выполнения параллельной программы, в зависимости от количества одновременно выполняемых потоков вычислений ( «процессоров» ) и доли последовательных расчётов. Аналог закона Амдала. Закон Густавсона — Барсиса выражается формулой: Sp = g + (1 − g)p = p + (1 − p)g, где: g — доля последовательных расчётов в программе, p — количество процессоров.
29 Алгоритмы маршрутизации определяют путь передачи данных от процессора источника сообщения до процессора, к которому сообщение должно быть доставлено. Среди возможных способов решения данной задачи различают: u оптимальные, определяющие всегда наикратчайшие пути передачи данных, и неоптимальные алгоритмы маршрутизации; u детерминированные и адаптивные методы выбора маршрутов (адаптивные алгоритмы определяют пути передачи данных в зависимости от существующей загрузки коммуникационных каналов). К числу наиболее распространенных оптимальных алгоритмов относится класс методов покоординатной маршрутизации (dimension ordered routing), в которых поиск путей передачи данных осуществляется поочередно для каждой размерности топологии сети коммуникации. Так, для двумерной решетки такой подход приводит к маршрутизации, при которой передача данных сначала выполняется по одному направлению (например, по горизонтали до достижения вертикали процессоров, в которой располагается процессор назначения), а затем данные передаются вдоль другого направления (данная схема известна под названием алгоритма XY маршрутизации).
30 Методы передачи данных Время передачи данных между процессорами определяет коммуникационную составляющую (communication overhead) длительности выполнения параллельного алгоритма в многопроцессорной вычислительной системе. Основной набор параметров, описывающих время передачи данных, состоит из следующего ряда величин: время начальной подготовки (tн) характеризует длительность подготовки сообщения для передачи, поиска маршрута в сети и т. п. ; u время передачи служебных данных (tс) между двумя соседними процессорами (т. е. для процессоров, между которыми имеется физический канал передачи данных); к служебным данным может относиться заголовок сообщения, блок данных для обнаружения ошибок передачи и т. п. ; u время передачи одного слова данных по одному каналу передачи данных (tк); длительность подобной передачи определяется полосой пропускания коммуникационных каналов в сети. u
31 Методы передачи данных К числу наиболее распространенных методов передачи данных относятся следующие два основные способа коммуникаций. Первый из них ориентирован на передачу сообщений (МПС) как неделимых (атомарных) блоков информации. При таком подходе процессор, содержащий сообщение для передачи, готовит весь объем данных для передачи, определяет процессор, которому следует направить данные, и запускает операцию пересылки данных. Процессор, которому направлено сообщение, в первую очередь осуществляет прием полностью всех пересылаемых данных и только затем приступает к пересылке принятого сообщения далее по маршруту. Время пересылки данных tпд для метода передачи сообщения размером m байт по маршруту длиной l определяется выражением tпд = tн + (mtк + tc)l При достаточно длинных сообщениях временем передачи служебных данных можно пренебречь и выражение для времени передачи данных может быть записано в более простом виде tпд = tн + mtкl
32 Методы передачи данных Второй способ коммуникации основывается на представлении пересылаемых сообщений в виде блоков информации меньшего размера (пакетов), в результате чего передача данных может быть сведена к передаче пакетов (МПП). При таком методе коммуникации (cut through routing or CTR) принимающий процессор может осуществлять пересылку данных по дальнейшему маршруту непосредственно сразу после приема очередного пакета, не дожидаясь завершения приема данных всего сообщения. Время пересылки данных при использовании метода передачи пакетов будет определяться выражением tпд = tн + mtк + tcl Сравнивая полученные выражения, можно заметить, что в большинстве случаев метод передачи пакетов приводит к более быстрой пересылке данных; кроме того, данный подход снижает потребность в памяти для хранения пересылаемых данных для организации приема передачи сообщений, а для передачи пакетов могут использоваться одновременно разные коммуникационные каналы. С другой стороны, реализация пакетного метода требует разработки более сложного аппаратного и программного обеспечения сети, может увеличить накладные расходы (время подготовки и время передачи служебных данных); при передаче пакетов возможно возникновения конфликтных ситуаций (дедлоков).
33 Латентность и пропускная способность сети Основными характеристиками быстродействия сети являются латентность (latency) и пропускная способность (bandwidth). Под пропускной способностью R сети будем понимать количество информации, передаваемой между узлами сети в единицу времени (байт в секунду). Очевидно, что реальная пропускная способность снижается программным обеспечением за счет передачи разного рода служебной информации. Латентностью (задержкой) называется время, затрачиваемое программным обеспечением и устройствами сети на подготовку к передаче информации по данному каналу. Полная латентность складывается из программной и аппаратной составляющих. Различают следующие виды пропускной способности сети: u пропускная способность однонаправленных пересылок ( «точка» , uni directional bandwidth), равная максимальной скорости, с которой процесс на одном узле может передавать данные другому процессу на другом узле; u пропускная способность двунаправленных пересылок (bi directional bandwidth), равная максимальной скорости, с которой два процесса могут одновременно обмениваться данными по сети.
34 Латентность и пропускная способность сети Значения пропускной способности будем выражать в мегабайтах в секунду (MB/sec), значения латентности – в микросекундах (msec = 10 6 sec). Время T(L), необходимое на передачу сообщения длины L, можно определить следующим образом: T(L)=s+L/R, где s латентность, а R пропускная способность. Для приложений с тонкой параллельной структурой (fine grained parallelism), какими, как правило, являются вычислительные программы, крайне важны малые величины латентности; тогда как для приложений, использующих большие объемы пересылок (а это, как правило, коммерческие приложения БД), более важно максимальное увеличение пропускной способности.
35 Передача данных между двумя процессорами сети Трудоемкость данной коммуникационной операции может быть получена путем подстановки длины максимального пути (диаметра сети) в выражения для времени передачи данных при разных методах коммуникаци.
36 Передача данных от одного процессора всем остальным процессорам сети Операция передачи данных (одного и того же сообщения) от одного процессора всем остальным процессорам сети (one to all broadcast or single node broadcast) является одним из наиболее часто выполняемых коммуникационных действий; двойственная операция передачи – прием на одном процессоре сообщений от всех остальных процессоров сети (single node accumulation). Подобные операции используются, в частности, при реализации матрично векторного произведения, решении систем линейных уравнений при помощи метода Гаусса, поиска кратчайших путей и др. Простейший способ реализации операции рассылки состоит в ее выполнении как последовательности попарных взаимодействий процессоров сети. Однако при таком подходе большая часть пересылок является избыточной и возможно применение более эффективных алгоритмов коммуникации.
37 Передача данных от одного процессора всем остальным процессорам сети Для кольцевой топологии процессор источник рассылки может инициировать передачу данных сразу двум своим соседям, которые, в свою очередь, приняв сообщение, организуют пересылку далее по кольцу. Трудоемкость выполнения операции рассылки в этом случае будет определяться соотношение. Для топологии типа решетки тора алгоритм рассылки может быть получен из способа передачи данных, примененного для кольцевой структуры сети. Так, рассылка может быть выполнена в виде двухэтапной процедуры. На первом этапе организуется передача сообщения всем процессорам сети, располагающимся на той же горизонтали решетки, что и процессор инициатор передачи; на втором этапе процессоры, получившие копию данных на первом этапе, рассылают сообщения по своим соответствующим вертикалям. Оценка длительности операции рассылки в соответствии с описанным алгоритмом определяется соотношением.
38 Передача сообщений. Для гиперкуба рассылка может быть выполнена в ходе N этапной процедуры передачи данных. На первом этапе процессор источник сообщения передает данные одному из своих соседей (например, по первой размерности) – в результате после первого этапа имеется два процессора, имеющих копию пересылаемых данных (данный результат можно интерпретировать также как разбиение исходного гиперкуба на два таких одинаковых по размеру гиперкуба размерности N 1, что каждый из них имеет копию исходного сообщения). На втором этапе два процессора, задействованные на первом этапе, пересылают сообщение своим соседям по второй размерности и т. д. В результате такой рассылки время операции оценивается при помощи выражения. Сравнивая полученные выражения длительности выполнения операции рассылки, можно отметить, что наилучшие показатели имеет топология типа гиперкуба; более того, можно показать, что данный результат является наилучшим для выбранного способа коммуникации с помощью передачи сообщений.
39 Передача пакетов. Для топологии типа кольца алгоритм рассылки может быть получен путем логического представления кольцевой структуры сети в виде гиперкуба. В результате на этапе рассылки процессор источник сообщения передает данные процессору, находящемуся на расстоянии p/2 от исходного процессора. Далее, на втором этапе оба процессора, уже имеющие рассылаемые данные после первого этапа, передают сообщения процессорам, находящиеся на расстоянии p/4 и т. д. Трудоемкость выполнения операции рассылки при таком методе передачи данных определяется соотношением (как и ранее, при достаточно больших сообщениях, временем передачи служебных данных можно пренебречь). Для гиперкуба алгоритм рассылки (и, соответственно, временные оценки длительности выполнения) при передаче пакетов не отличается от варианта для метода передачи сообщений.
40 Сложные задачи. Эффективность функционирования вычислительных систем зависит от количества операций, которые требуется выполнить при решении задач и от числа вычислителей, на котором реализуются P алгоритмы (точнее P программы), от степени адекватности вложения структурных схем алгоритмов решения в структуры ВС. Среди показателей качества P алгоритмов используют коэффициент накладных расходов, который представим в виде: где V – количество операций, которые необходимо выполнить при решении задачи на ВС; n – число параллельных ветвей или число вычислителей, на которых решается задача, n≥ 2; t(V, n) – время, затрачиваемое на: синхронизацию параллельных ветвей алгоритма, настройку (программирование структуры) системы, реализацию обменов информацией между ветвями (вычислителями); T(V, n) – время, расходуемое системой собственно на счет.
41 Сложные задачи. На основе анализа задач и опыта их решения (с использованием методики крупноблочного распараллеливания) на вычислительных системах установлено, что при n = const показатель ε(V, n) асимптотически стремится к нулю с ростом объема операций в задаче, т. е. имеет место: ε(V, n) → 0 при V → ∞. Значения ε(V, n) будут практически удовлетворительными при выполнении неравенства V ≥n*10 k где k – эмпирический коэффициент, k≥ 1. Очевидно, что имеет место зависимость k от быстродействия ν каналов связей между вычислителями: k→ 1 при ν → ν*, где 1/ν* – время обращения к локальной памяти в вычислителе. При удовлетворении неравенства достигается адекватное размещение параллельной программы на системе из n вычислителей (при произвольной структуре сети связей) и обеспечивается эффективное использование этих вычислителей.
42 Сложные задачи. Таким образом, если объем операций V, связанных с решением задачи, на несколько порядков превышает число вычислителей n, на которых должно осуществляться её решение, то достигается эффективное функционирование системы. Задачу, для которой выполняется последнее неравенство, будем называть сложной, или системной, или трудоемкой, или с большим объемом вычислений. Сложность задачи будем характеризовать количеством операций, которые необходимо выполнить при ее решении. Задача тем сложнее, чем больше V. Задачу, которая имеет небольшой объем вычислений и, следовательно, не допускает эффективного распараллеливания, будем называть простой. Простая задача требует для своего решения одного вычислителя.
43 Анализ масштабируемости параллельных вычислений Накладные расходы появляются за счет необходимости организации взаимодействия процессоров, выполнения некоторых дополнительных действий, синхронизации параллельных вычислений и т. п. Используя введенное обозначение, можно получить новые выражения для времени параллельного решения задачи и соответствующего ускорения: Tp = (T 1+T 0)/p, Sp = T 1/Tp = p. T 1/(T 1+T 0) Используя полученные соотношения, эффективность использования процессоров можно выразить как Ep = Sp/p = T 1/(T 1+T 0) = 1/(1 + T 0/T 1) Последнее выражение показывает, что если сложность решаемой задачи является фиксированной (T 1=const), то при росте числа процессоров эффективность, как правило, будет убывать за счет роста накладных расходов T 0. При фиксации числа процессоров эффективность использования процессоров можно улучшить путем повышения сложности решаемой задачи T 1 Как результат, при увеличении числа процессоров, в большинстве случаев можно обеспечить определенный уровень эффективности при помощи повышения сложности решаемых задач. В этой связи, важной характеристикой параллельных вычислений становится соотношение необходимых темпов роста сложности расчетов и числа используемых процессоров.
44 Анализ масштабируемости параллельных вычислений Пусть E=const есть желаемый уровень эффективности выполняемых вычислений. Из выражения для эффективности можно получить T 0/T 1 = (1 E)/E или T 1 = KT 0, K=E/(1 E) Порождаемую последним соотношением зависимость n=F(p) между сложностью решаемой задачи и числом процессоров обычно называют функцией изоэффективности.
45 Суперкомпьютеры Суперкомпью тер (англ. supercomputer, Супер. ЭВМ) — вычислительная машина, значительно превосходящая по своим техническим параметрам большинство существующих компьютеров. Как правило, современные суперкомпьютеры представляют собой большое число высокопроизводительных серверных компьютеров, соединённых друг с другом локальной высокоскоростной магистралью для достижения максимальной производительности в рамках подхода распараллеливания вычислительной задачи.
46 Суперкомпьютеры применяются для решения интенсивных вычислительных задач, таких как проблемы в области квантовой физике или механической физике, прогноз погоды, исследование климата (включая исследование относительно глобального потепления), молекулярное моделирование (вычисляющий структуры и свойства химических составов, биологических макромолекул, полимеров, и кристаллов), физические моделирования (такие как моделирование самолетов, моделирование взрыва ядерного оружия, и исследование относительно ядерного сплава), криптоанализ, и т. п. .
47 Программное обеспечение суперкомпьютеров Наиболее распространёнными программными средствами суперкомпьютеров, также как и параллельных или распределённых компьютерных систем являются интерфейсы программирования приложений (API) на основе MPI и PVM, и решения на базе открытого программного обеспечения, наподобие Beowulf и open. Mosix, позволяющего создавать виртуальные суперкомпьютеры даже на базе обыкновенных рабочих станций и персональных компьютеров. Для быстрого подключения новых вычислительных узлов в состав узкоспециализированных кластеров применяются технологии наподобие Zero. Conf. В настоящее время границы между суперкомпьютерным и общеупотребимым программным обеспечением сильно размыты и продолжают размываться ещё более вместе с проникновением технологий параллелизации и многоядерности в процессорные устройства персональных компьютеров и рабочих станций. Исключительно суперкомпьютерным программным обеспечением сегодня можно назвать лишь специализированные программные средства для управления и мониторинга конкретных типов компьютеров, а также уникальные программные среды, создаваемые в вычислительных центрах под «собственные» , уникальные конфигурации суперкомпьютерных систем.
48 TOP 500 — проект по составлению рейтинга и описаний 500 самых мощных общественно известных компьютерных систем мира. Проект был запущен в 1993 году и публикует обновлённый список суперкомпьютеров дважды в год (в июне и ноябре). Этот проект направлен на обеспечение надёжной основы для выявления и отслеживания тенденций в области высокопроизводительных вычислений. Россия по данным на июнь 2011 года занимает 7 место по числу установленных систем (12 суперкомпьютеров в списке)[1]. Лидирует по этому показателю США — 255 систем. [1]. В США установлены 5 из 10 самых мощных систем[2]. На Европу приходится 126, Азию — 103, обе америки — 265 суперкомпьютеров из списка. [3]
49 TOP 500 — проект по составлению рейтинга и описаний 500 самых мощных общественно известных компьютерных систем мира. Проект был запущен в 1993 году и публикует обновлённый список суперкомпьютеров дважды в год (в июне и ноябре). Этот проект направлен на обеспечение надёжной основы для выявления и отслеживания тенденций в области высокопроизводительных вычислений. Россия по данным на июнь 2011 года занимает 7 место по числу установленных систем (12 суперкомпьютеров в списке)[1]. Лидирует по этому показателю США — 255 систем. [1]. В США установлены 5 из 10 самых мощных систем[2]. На Европу приходится 126, Азию — 103, обе америки — 265 суперкомпьютеров из списка. [3]


