Принципы построения параллельных вычислительных систем
1.6. Краткий обзор лекции
В лекции приводится общая характеристика способов организации параллельных вычислений и дается различие между многозадачным, параллельным и распределенным режимами выполнения программ. Для демонстрации возможных подходов рассматривается ряд примеров параллельных вычислительных систем и отмечается существенное разнообразие вариантов построения параллельных систем.
Многообразие компьютерных вычислительных систем приводит к необходимости их классификации. В лекции дается описание одного из наиболее известных способов – систематики Флинна, в основу которой положено понятие потоков команд и данных. Данная классификация является достаточно простой и понятной, однако в рамках такого подхода почти все многопроцессорные вычислительные системы попадают в одну группу – класс MIMD. С целью дальнейшего разделения возможных типов систем в лекции приводится также широко используемая структуризация класса многопроцессорных вычислительных систем, что позволяет выделить две важные группы систем с общей разделяемой и распределенной памятью – мультипроцессоры и мультикомпьютеры. Наиболее известные примеры систем первой группы — векторные параллельные процессоры ( parallel vector processor или PVP ) и симметричные мультипроцессоры ( symmetric multiprocessor или SMP ). К мультикомпьютерам относятся массивно-параллельные системы ( massively parallel processor или MPP ) и кластеры ( clusters ).
Далее в лекции обращается внимание на характеристику сетей передачи данных в многопроцессорных вычислительных системах. Приводятся примеры топологий сетей, отмечаются особенности организации сетей передачи данных в кластерах и обсуждаются параметры топологий, существенно влияющие на коммуникационную сложность методов параллельных вычислений.
В завершение лекции дается общая характеристика системных платформ для построения кластеров.
1.7. Обзор литературы
Дополнительная информация об архитектуре параллельных вычислительных систем может быть получена, например, из [2, 11, 14, 28, 45, 59]; полезная информация содержится также в [24, 76].
В качестве обзора возможных топологий сетей передачи данных в многопроцессорных системах и технологий для их реализации может быть рекомендована, например, работа [29].
Подробное рассмотрение вопросов, связанных с построением и использованием кластерных вычислительных систем, проводится в [24, 76]. Практические рекомендации по построению кластеров для разных системных платформ могут быть найдены в [70, 71].
1.8. Контрольные вопросы
- В чем заключаются основные способы достижения параллелизма?
- В чем могут состоять различия параллельных вычислительных систем?
- Что положено в основу классификации Флинна?
- В чем состоит принцип разделения многопроцессорных систем на мультипроцессоры и мультикомпьютеры?
- Какие классы систем известны для мультипроцессоров?
- В чем состоят положительные и отрицательные стороны симметричных мультипроцессоров?
- Какие классы систем известны для мультикомпьютеров?
- чем состоят положительные и отрицательные стороны кластерных систем?
- Какие топологии сетей передачи данных наиболее широко используются при построении многопроцессорных систем?
- В чем состоят особенности сетей передачи данных для кластеров?
- Каковы основные характеристики сетей передачи данных?
- Какие системные платформы могут быть использованы для построения кластеров?
1.9. Задачи и упражнения
- Приведите дополнительные примеры параллельных вычислительных систем.
- Рассмотрите дополнительные способы классификации компьютерных систем.
- Рассмотрите способы обеспечения когерентности кэшей в системах с общей разделяемой памятью.
- Подготовьте обзор программных библиотек, обеспечивающих выполнение операций передачи данных для систем с распределенной памятью.
- Рассмотрите топологию сети передачи данных в виде двоичного дерева.
- Выделите эффективно реализуемые классы задач для каждого типа топологий сети передачи данных.