Иерархия параллельных вычислительных систем - Повышение производительности работы библиотеки GridMD

Одной из основополагающих классификаций параллельных систем является Таксономия Флинна, в которой различаются следующие типы систем по взаимодействию потоков данных и управляющих данными потоков команд [3] :

    - SISD (Single instruction, single data). К этому классу относятся обычные последовательные ЭВМ, в которых один поток команд обрабатывает один поток данных. - SIMD (Single instruction, multiple data). К системам этого класса можно отнести Векторно-конвейерные компьютеры, которые обрабатывают каждый элемент данных из некоего множества одной командой за один такт. Например, это может быть поэлементное сложение двух массивов чисел. Типичным представителем этого типа является векторно-конвейерный компьютер Cray-1 (1976). - MISD (Multiple instruction, single data). Множество потоков команд и один поток данных. Некоторые специалисты считают, что введение подобного класса необходимо лишь для полноты классификации, и примера подобных систем не существует. - MIMD (Multiple Instruction, Single Data). В этом классе сосредотачивается большинство типов современных параллельных вычислительных систем, где множество команд обрабатывают множество данных.

Ширина существующих типов вычислительных систем класса MIMD приводит к дальнейшей их классификации по способу организации памяти и однородности составляющих систему компонентов. Выделяют системы с общей памятью (Мультипроцессорные системы) и с Распределенной памятью (мультикомпьютерные системы), а так же Гомогенные и Гетерогенные системы соответственно.

К системам с общей памятью (Рис. 1) относятся Симметричные мультипроцессоры (SMP), состоящие из совокупности процессоров, имеющих общую память и общее адресное пространство. Преимущество этих систем в скорости взаимодействия процессоров между собой через общую память и локальную шину, недостаток - в невысокой степени масштабируемости системы. Дело в том, что каждый из процессоров имеет собственную кэш память, где сохраняются данные, к которым процессор обращается наиболее часто. Процессор сначала обращается к своему кэшу, и только в случае отсутствия требуемых данных обращается к оперативной памяти. Тогда возникает необходимость в Согласованности кэшей процессоров, ведь при изменении общих данных процессоров данные должны обновиться и в кэшах каждого из них. Согласование кэшей обеспечивается на аппаратном уровне, и затруднят создание систем с большим количеством процессоров.

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

организация систем с общей памятью

Рис. 1 Организация систем с общей памятью

Системы с распределенной памятью (Рис. 2) состоят из процессоров, имеющих свою собственную память и адресное пространство. Таким образом, каждый процессор может использовать только свою локальную память, а для доступа к данным в памяти другого процессора используется Механизм передачи сообщений. Такие системы хорошо масштабируемы, но время межпроцессорного взаимодействия в них заранее не определено. Как правило, скорость межпроцессорного взаимодействия гораздо ниже скорости обработки данных отдельным процессором, и зависит от характеристик каналов связи. Это вносит задержки при исполнении параллельных алгоритмов, что должно учитываться при их разработке.

организация систем с распределенной памятью

Рис. 2 Организация систем с распределенной памятью

На основе этого подхода строятся Массово-параллельные системы (MPP) и Кластеры. Массово параллельные системы отличаются от кластеров более высокопроизводительными каналами связи и компонентами и их однородностью. Кластер - это объединение компьютеров, в общем случае неоднородного состава, посредством специального аппаратно - программного обеспечения, представляющееся пользователю как единый ресурс для выполнения вычислительных задач [3]. Они могут быть сконструированы из типовых компьютерных элементов, не требующих значительных финансовых затрат.

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

До сих пор мы рассматривали Гомогенные системы, в которых вычислительные узлы объединены сетью, использующей единую технологию. В Гетерогенных системах сеть может быть сильно неоднородной, как и программное и аппаратное обеспечение составляющих систему вычислительных узлов. Ярким примером являются Grid-системы - географически распределенные вычислительные системы, объединяющие разнородные ресурсы и предоставляющие коллективный доступ к ним. Grid-системы предоставляют инфраструктуру, в которой компьютеры, соединенные посредством сети Internet или другой крупной компьютерной сети, с помощью программного обеспечения промежуточного уровня и сетевых служб реализуют виртуальный ресурс для выполнения масштабных вычислительных задач, таких как совместная визуализация больших наборов научных данных или распределенная обработка в целях их анализа.

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

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

Похожие статьи




Иерархия параллельных вычислительных систем - Повышение производительности работы библиотеки GridMD

Предыдущая | Следующая