Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

malyshkin_ve_korneev_vd_-_parallelnoe_programmirovanie_multikompyuterov

.pdf
Скачиваний:
63
Добавлен:
28.03.2016
Размер:
3.12 Mб
Скачать

мультикомпьютеры, у которых каждый узел является самостоятельным независимо работающим компьютером.

Коммерческие мультикомпьютеры делают масштабируемыми

(scalable), допуская в широком диапазоне изменения числа ПЭ и объема их памяти в различных установках.

Можно указать на следующие преимущества крупноблочных мультикомпьютеров.

1).Хорошее значение соотношения производительность/стоимость. Высокая производительность на узком классе задач может достигаться за счет специализации ПЭ и за относительно невысокую цену, а высокая степень универсальности мультикомпьютера обеспечивается включением в его состав ПЭ различного типа;

2).Для каждой предметной области и даже для решения конкретной большой задачи могут быть созданы проблемно-

ориентированные мультикомпьютеры, содержащие только ПЭ нужного типа и в требуемом количестве, что удешевляет стоимость всего мультикомпьютера;

3).Быстрое создание мультикомпьютеров, так как компоненты включаются в них со своим штатным математическим обеспечением и необходимо проведение только интегрирующих доработок;

4).Сравнительная простота переноса существующего прикладного математического обеспечения на мультикомпьютер

138

за счет его эволюционного развития, а не коренной переделки.

По этой причине наиболее эффективным использование крупноблочных мультикомпьютеров будет тогда, когда на базе существующего прикладного математического обеспечения и серийного оборудования необходимо на 1-3 порядка увеличить объем вычислений.

В мире известно сейчас много коммерческих мультикомпьютеров, собранных на базе разных микропроцессоров. Весьма практично объединять в мультикомпьютер - кластер (cluster) - несколько рабочих станций специальным коммутатором.

Создание крупноблочных мультикомпьютеров наталкивается на ряд трудностей. Основная из них состоит в том,

что слишком велико оказывается многообразие различных возможных структур мультикомпьютеров и алгоритмов и далеко не всегда они согласуются друг с другом, следствием чего может быть резкое падение производительности мультикомпьютера из-

за неудачного отображения алгоритма на его ресурсы. Решение проблемы эффективного отображения массового алгоритма в ресурсы мультикомпьютеров в общей постановке вряд ли возможно, и потому большой проблемой становится как создание эффективных параллельных программ, так и обеспечение их переносимости, накопление фонда прикладных программ.

139

Рассмотрим проблемы организации параллельных вычислений на иерархических мультикомпьютерах, которые имеют в этом классе хорошие стандартные решения в силу сравнительно низких затрат на организацию вычислений.

Для организации параллельной обработки больших объемов промышленных данных, учитывая регулярность массовых вычислений1, в крупноблочных мультикомпьютерах может быть использован сравнительно простой подход,

сформулированный в форме метода линеаризации массовых вычислений. В нем определяется класс иерархических мультикомпьютеров, ограничивающий произвол в компоновке мультикомпьютера, но не содержащий ограничений на количество компонент в составе мультикомпьютера. На структуру алгоритмов также вводятся ограничения, которые выделяют класс алгоритмов, эффективно реализуемых на иерархических мультикомпьютерах. В совокупности это обеспечивает создание систем параллельного программирования

(СПП), в которых прикладные параллельные программы собираются из готовых фрагментов, они динамически эффективно настраиваются на доступные ресурсы

1 К массовым вычислениям приводят решение различных численных задач, например, задач обработки изображения и сейсмических данных, решение систем дифференциальных уравнений разностными методами, моделирование разлета облака плазмы методом частиц и т.п.

140

мультикомпьютера и переносимы в выделенном классе

мультикомпьютеров.

Итак, метод линеаризации массовых вычислений определяет:

-класс допустимых мультикомпьютеров - иерархические, -допустимые структуры алгоритмов - линейные

алгоритмы,

- фиксированный mapping алгоритм.

Все вместе это позволяет создать весьма эффективное и универсальное системное параллельное программное таких мультикомпьютеров. Метод был реализован (весь состав параллельного системного программного обеспечения) в

Вычислительном центре СО АН СССР в ходе работ по созданию кластера «Сибирь» в 1987-1989гг.

5.2. Иерархические мультикомпьютеры

Для получения в СПП приемлемого решения проблемы отображения алгоритма на ресурсы мультикомпьютера, его структуру следует разумно ограничить. Необходимо так выбрать систему взаимно дополняющих ограничений на структуру алгоритма и на структуру мультикомпьютера, чтобы СПП получилась простой и доступной прикладному пользователю,

ограничения легко удовлетворялись и множество эффективно реализуемых алгоритмов достаточно широко.

141

Что можно сказать о структуре крупноблочного мультикомпьютера? Прежде всего следует отметить, что не должно быть конкретных требований типа: нельзя использовать в мультикомпьютере более десяти однотипных ПЭ. Класс крупноблочных мультикомпьютеров должен определяться набором правил для построения допустимого, правильного мультикомпьютера.

Далее, структура связей компонент мультикомпьютера должна носить такой регулярный характер, который бы не изменялся от добавления в состав мультикомпьютера нового или удаления старого компонента. Например, характер связей в мультикомпьютере - объединение ПЭ общей шиной - не меняется при добавлении/удалении ПЭ. И, наконец, регулярность структуры мультикомпьютера должна быть такова, что добавление новых или удаление старых (например, отказ ПЭ)

компонент не должны сделать неэффективным отображение алгоритма на ресурсы мультикомпьютера. Производительность исполнения программы на мультикомпьютере должна до некоторого предела возрастать или уменьшаться пропорционально расширению или деградации его ресурсов.

Последние два свойства структуры мультикомпьютера крайне важны. Дело в том, что нередко задача отображения алгоритма на ресурсы мультикомпьютера решается статически,

до начала вычислений и все принятые решения по

142

распределению вычислительных ресурсов, в первую очередь ПЭ,

фиксируются в тексте программы. Для крупноблочного мультикомпьютера такой подход неприемлем, т.к.

мультикомпьютер может иметь много ресурсов и далеко не каждая программа все их использует и, кроме того, разные установки имеют разные состав ПЭ и структуру коммутационной сети. Следовательно, вычислительные ресурсы мультикомпьютера надо разделять динамически.

Здесь предполагается, что массовый алгоритм представляется потенциально бесконечным множеством операций, шагов вычислений. При конструировании программы множество операций должна быть отображена на ресурсы вычислительной системы, после чего может быть сформирован текст программы. Отображение (mapping) выполняется алгоритмом, который будем называть М-алгоритмом. В

процедурных системах программирования М-алгоритм частично реализуется в компиляторе и в операционной системе (например,

распределение регистров, оперативной памяти для буферизации данных в операциях ввода/вывода и т.п.), а частично выполняется программистом (распределение оперативной памяти для переменных в Фортране).

Для крупноблочных мультикомпьютеров конструирование М-алгоритма проводится в два этапа:

143

-статический, который реализуется в компиляторе и производит распределение той части ресурсов мультикомпьютера, что может быть отведена программе до начала вычислений (память, регистры), и

-динамический, который реализуется в программе и/или

воперационной системе и производит захват и перераспределение ресурсов мультикомпьютера в ходе исполнения прикладной программы (процессоры, каналы).

Если структура мультикомпьютера обладает последними двумя свойствами, то динамическая часть М-алгоритма может быть зафиксирована и вкладываться в программу при компиляции. При этом параллельная программа будет переносима в таком классе мультикомпьютеров и эффективно выполнима на каждой установке класса. Здесь, конечно,

предполагается, что структура выделенных параллельной программе ресурсов мультикомпьютера не меняется в ходе ее выполнения, таким образом, если выделенное программе устройство окажется неработоспособным, она должна завершиться аварийно.

Учитывая свойства, которыми должен обладать класс мультикомпьютеров, определим его в два шага следующим образом. На первом выбираются базовые компоненты, из которых может конструироваться мультикомпьютер.

144

Первый компонент - универсальная ЭВМ (например,

рабочая станция Sun) со всей необходимой периферией,

развитыми связями с внешним миром. Она будет использоваться как управляющая ЭВМ (хост ЭВМ) для управления подчиненными ресурсами мультикомпьютера.

Второй компонент - различные ПЭ, например, на базе микропроцессоров фирм Intel, IBM, AMD и т.п. Всякий ПЭ - это автономный высокопроизводительный вычислитель (возможно специализированный) с собственной оперативной памятью и устройством управления. Работа ПЭ организуется управляющей ЭВМ, которая инициирует ПЭ, передает в ПЭ программы и данные, синхронизирует вычисления, собирает результаты счета.

Не запрещено использовать универсальную ЭВМ в качестве ПЭ,

т.е. как подчиненный вычислитель.

Последний компонент - канал связи, обеспечивающий передачу данных между компонентами мультикомпьютера.

На втором шаге описания класса мультикомпьютеров определяются возможные соединения базовых компонент. Всего допускается два типа соединений. Радиальное соединение обеспечивает взаимодействие между управляющей ЭВМ и ПЭ по схеме старший-подчиненный, при этом допускается взаимодействие более чем с одним ПЭ. Одинаковые ПЭ образуют подсистему, возможно наличие нескольких подсистем ПЭ.

145

Другой вид связи - межпроцессорный интерфейс. Это может быть шина, общая память, непосредственная связь ПЭ посредством каналов, коммутационная сеть и т.п. Он позволяет с большой скоростью производить обмен данными между ПЭ внутри подсистемы однородных ПЭ, минуя управляющую ЭВМ,

и обеспечивает эффективное взаимодействие между процессорами нижнего уровня. Учитывая последние два свойства класса мультикомпьютеров, всякий межпроцессорный интерфейс должен обеспечивать, как минимум, связь ПЭi с ПЭi-1 и с ПЭi+1.

Этот интерфейс будем называть линейным (рис. 5.1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ХОСТ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интеркластер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПЭ1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПЭ1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Общая память интеркластера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПЭ2

 

ПЭ 2

 

 

ПЭ 2

 

ПЭ 2

 

 

 

ПЭ 2

 

ПЭ 2

 

ПЭ 2

 

 

 

ПЭ 2

 

 

 

Макрокластер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Общая память макрокластера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПЭ

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПЭ 3

ПЭ 3

 

ПЭ

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кластер

Общая память кластера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.1. Пример иерархического мультикомпьютера Приведенные соединения описывают лишь общую схему взаимосвязи компонент в мультикомпьютере. Существует возможность расширения их номенклатуры, например:

146

подключение буферной памяти к каналам связи для организации асинхронных обменов, использование в качестве дополнительных устройств дисков и т.д. Однако такие расширения не выводят мультикомпьютер за определяемый класс, так как не изменяется схема допустимых взаимодействий между вычислителями мультикомпьютера. Комбинируя различные типы соединений, можно создавать мультикомпьютеры различной конфигурации, приспосабливая их для решения конкретного класса задач.

Каждый ПЭ в свою очередь может иметь сложную структуру, но и в этом случае ПЭ должен состоять из старшего процессора и подчиненных. Таким образом, допустимый мультикомпьютер должен иметь иерархическую структуру с линейными связями между ПЭ в пределах подсистемы однородных ПЭ. Это в свою очередь означает, что программное обеспечение мультикомпьютера должно в ходе исполнения процесса допускать порождение новых процессов, которые отправляются на исполнение в подчиненные ПЭ.

Конечно, мультикомпьютер может иметь и другие дополнительные связи между компонентами, что не ухудшит выполнение программ. На рис. 5.1 показан пример иерархического мультикомпьютера (интеркластер).

Необходимо указать на следующую характерную особенность крупноблочных мультикомпьютеров. Так как

147

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]