Многопроцессорные системы с локальной памятью и многомашинные системы
Многопроцессорные системы с локальной памятью и многомашинные системы
Существуют два различных способа построения крупномасштабных систем с распределенной памятью. Простейший способ заключается в том, чтобы исключить аппаратные механизмы, обеспечивающие когерентность кэш-памяти, и сосредоточить внимание на создании масштабируемой системы памяти. Несколько компаний разработали такого типа машины. Наиболее известным примером такой системы является компьютер T3D компании Cray Research. В этих машинах память распределяется между узлами (процессорными элементами) и все узлы соединяются между собой посредством того или иного типа сети. Доступ к памяти может быть локальным или удаленным. Специальные контроллеры, размещаемые в узлах сети, могут на основе анализа адреса обращения принять решение о том, находятся ли требуемые данные в локальной памяти данного узла, или размещаются в памяти удаленного узла. В последнем случае контроллеру удаленной памяти посылается сообщение для обращения к требуемым данным.
Чтобы обойти проблемы когерентности, разделяемые (общие) данные не кэшируются. Конечно, с помощью программного обеспечения можно реализовать некоторую схему кэширования разделяемых данных путем их копирования из общего адресного пространства в локальную память конкретного узла. В этом случае когерентностью памяти также будет управлять программное обеспечение. Преимуществом такого подхода является практически минимальная необходимая поддержка со стороны аппаратуры, хотя наличие, например, таких возможностей как блочное (групповое) копирование данных было бы весьма полезным. Недостатком такой организации является то, что механизмы программной поддержки когерентности подобного рода кэш-памяти компилятором весьма ограничены. Существующая в настоящее время методика в основном подходит для программ с хорошо структурированным параллелизмом на уровне программного цикла.
Машины с архитектурой, подобной Cray T3D, называют процессорами (машинами) с массовым параллелизмом (MPP Massively Parallel Processor). К машинам с массовым параллелизмом предъявляются взаимно исключающие требования. Чем больше объем устройства, тем большее число процессоров можно расположить в нем, тем длиннее каналы передачи управления и данных, а значит и меньше тактовая частота. Происшедшее возрастание нормы массивности для больших машин до 512 и даже 64К процессоров обусловлено не ростом размеров машины, а повышением степени интеграции схем, позволившей за последние годы резко повысить плотность размещения элементов в устройствах. Топология сети обмена между процессорами в такого рода системах может быть различной. На Рисунок 10.5 приведены характеристики сети обмена для некоторых коммерческих MPP.
Для построения крупномасштабных систем альтернативой рассмотренному в предыдущем разделе протоколу наблюдения может служить протокол на основе справочника, который отслеживает состояние кэшей. Такой подход предполагает, что логически единый справочник хранит состояние каждого блока памяти, который может кэшироваться. В справочнике обычно содержится информация о том, в каких кэшах имеются копии данного блока, модифицировался ли данный блок и т.д. В существующих реализациях этого направления справочник размещается рядом с памятью. Имеются также протоколы, в которых часть информации размещается в кэш-памяти. Положительной стороной хранения всей информации в едином справочнике является простота протокола, связанная с тем, что вся необходимая информация сосредоточена в одном месте. Недостатком такого рода справочников является его размер, который пропорционален общему объему памяти, а не размеру кэш-памяти. Это не составляет проблемы для машин, состоящих, например, из нескольких сотен процессоров, поскольку связанные с реализацией такого справочника накладные расходы можно преодолеть. Но для машин большего размера необходима методика, позволяющая эффективно масштабировать структуру справочника.
Фирма | Название | Коли-чество узлов | Базовая тополо-гия | Разряд-ность связи (бит) | Частота синхро-низации (Мгц) | Пиковая полоса пропус-кания связи (Мбайт/с) | Общая полоса пропус-кания (Мбайт/с) | Год выпуска |
Thinking Machines | CM-2 | 1024-4096 | 12-мер-ный куб | 1 | 7 | 1 | 1024 | 1987 |
nCube | nCube/ten | 1-1024 | 10-мер-ный куб | 1 | 10 | 1.2 | 640 | 1987 |
Intel | iPSC/2 | 16-128 | 7-мерный куб | 1 | 16 | 2 | 345 | 1988 |
Maspar | MP-1216 | 32-512 | 2-мерная сеть+сту-пенчатая Omega | 1 | 25 | 3 | 1300 | 1989 |
Intel | Delta | 540 | 2-мерная сеть | 16 | 40 | 40 | 640 | 1991 |
Thinking Machines | CM-5 | 32-2048 | многосту-пенчатое толстое дерево | 4 | 40 | 20 | 10240 | 1991 |
Meiko | CS-2 | 2-1024 | многосту-пенчатое толстое дерево | 8 | 70 | 50 | 50000 | 1992 |
Intel | Paragon | 4-1024 | 2-мерная сеть | 16 | 100 | 200 | 6400 | 1992 |
Cray Research |
T3D | 16-1024 | 3-мерный тор | 16 | 150 | 300 | 19200 | 1993 |