Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_з_1.doc
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
2.57 Mб
Скачать

7.3. Классификация архитектур вычислительных систем

За многие годы было предложено и построено множество видов параллельных компьютерных систем, поэтому хотелось бы их как-либо классифицировать. Это с разными результатами пытались делать многие исследователи, но, к сожалению, хорошей классификации до сих пор нет [20]. Чаще всего используют классификация М. Флинна (табл. 7.1).

Таблица 7.1. Классификация параллельных компьютерных систем по Флинну

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

Потоки команд и данных в какой-то степени независимы, поэтому существует 4 комбинации таких потоков (см. табл. 7.1). SISD (Single Instruction stream Single Data stream - один поток команд с одним потоком данных) - это классическая последовательная компьютерная архитектура фон Неймана. Компьютер фон Неймана имеет один поток команд и один поток данных и в каждый момент времени может выполнять только одно действие. У машины, относящихся к категории SIMD (Single Instruction-stream Multiple Data-stream - один поток команд с несколькими потоками данных), имеется один блок управления, выдающий по одной команде, но при этом есть несколько АЛУ, которые могут обрабатывать несколько наборов данных одновременно. Хотя SIMD-машины не относятся к числу широко распространенных, в некоторых обычных компьютерах для обработки мультимедийных данных используются SIMD-команды. SSE-команды в процессорах Pentium относятся к категории SIMD-команд. В любом случае существует одна область, где идеи, почерпнутые из «мира SIMD», выходят на первый план, - это потоковые процессоры. Потоковые процессоры специально разработаны для обработки мультимедийных данных и в будущем они могут играть важную роль.

MISD (Multiple Instruction-stream Single Data-stream - несколько потоков команд с одним потоком данных). Здесь несколько команд оперируют одним набором данных. На современном этапе развития ВТ этот вид на практике не реализован.

Последняя категория - MIMD (Multiple Instruction-stream Multiple Data- stream - несколько потоков команд с несколькими потоками данных). Здесь несколько независимых процессоров работают как часть большой системы. В эту категорию попадают большинство параллельных процессоров. И мультипроцессоры, и мультикомпыотеры - это MIMD-машины.

7.4. Мультипроцессоры и мультикомпьютеры

В любой параллельной компьютерной системе процессоры, выполняющие разные части единого задания, должны как-то взаимодействовать друг с другом, чтобы обмениваться информацией. Как именно должен происходить обмен? Для этого было предложено и реализовано две стратегии: мультипроцессоры и мультикомпьютеры. Ключевое различие между стратегиями состоит в наличии или отсутствии общей памяти (см. 7.5). Это различие сказывается как на конструкции, устройстве и программировании таких систем, так и на их стоимости и размерах.

На рис. 7.1 представлена расширенная классификация Флинна [20]. SIMD-машины распались на две подгруппы. В первую подгруппу попадают многочисленные суперкомпьютеры и другие машины, которые оперируют векторами, выполняя одну и ту же операцию над каждым элементом вектора. Во вторую подгруппу попадают машины типа ILLIAC IV, в которых главный блок управления посылает команды нескольким независимым АЛУ. В этой классификации категория MIMD распалась на мультипроцессоры (машины с общей памятью) и мультикомпьютеры (машины с обменом сообщениями). Существует три типа мультипроцессоров. Они отличаются друг от друга механизмом доступа к общей памяти и называются UMA (Uniform Memory Access - однородный доступ к памяти), NUMA (NonUniform Memory Access - неоднородный доступ к памяти) и СОМА (Cache Only Memory Access - доступ только к кэш-памяти). Такое разбиение на подкатегории имеет смысл, поскольку в больших мультипроцессорах память обычно делится на несколько модулей.

Рис. 7.1. Классификация компьютеров параллельного действия

В UMA-машинах каждый процессор имеет одно и то же время доступа к любому модулю памяти. Иными словами, каждое слово может быть считано из памяти с той же скоростью, что и любое другое слово. Если это технически невозможно, самые быстрые обращения замедляются, чтобы соответствовать самым медленным, поэтому программист не заметит никакой разницы. Это и значит «однородный» доступ. Такая однородность делает производительность предсказуемой, а этот фактор очень важен для создания эффективных программ.

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

Во вторую основную категорию MIMD-машин попадают мультикомпьютеры, которые в отличие от мультипроцессоров не имеют общей памяти на архитектурном уровне. Другими словами, операционная система процессора, входящего в состав мультикомпьютера, не сможет получить доступ к памяти другого процессора, просто выполнив команду LOAD. Процессору придется отправить сообщение и ждать ответа. Именно способность операционной системы считать слово из удаленного модуля памяти с помощью команды LOAD отличает мультипроцессоры от мультикомпьютеров. Как мы уже отмечали, хотя даже в мультикомпьютере пользовательские программы могут обращаться к другим модулям памяти с помощью команд LOAD и STORE, эта способность не подкреплена аппаратно, иллюзию создает операционная система. Разница незначительна, но очень важна. Так как мультикомпьютеры не имеют непосредственного доступа к удаленным модулям памяти, их иногда относят к категории NORMA (NO Remote Memory Access - отсутствие удаленного доступа к памяти).

Мультикомпьютеры тоже можно разделить на две дополнительные категории. К категории МРР (Massively Parallel Processor - процессор с массовым параллелизмом) относятся дорогостоящие суперкомпьютеры, которые состоят из большого количества процессоров, связанных высокоскоростной внутренней коммуникационной сетью. В качестве хорошо известного коммерческого примера можно назвать суперкомпьютер SP/3 компании IBM.

Вторая категория мультикомпьютеров включает обычные персональные компьютеры или рабочие станции (иногда смонтированные в стойки), которые связываются в соответствии с той или иной коммерческой коммуникационной технологией. С точки зрения логики принципиальной разницы здесь нет, но мощный суперкомпьютер стоимостью в миллионы долларов, безусловно, используется иначе, чем собранная конечными пользователями компьютерная сеть, которая обходится во много раз дешевле любой МРР-машины. Эти «доморощенные» системы иногда называют сетями рабочих станций (Network Of Workstations, NOW), кластерами рабочих станций (Cluster Of Workstattions, COW), или просто кластерами (cluster).