Э. Таненбаум - Архитектура компьютера (1127755), страница 171
Текст из файла (страница 171)
Чем меньше диаметр, тем выше производительность. Также имеет большое значение среднее расстояние между парой узлов, поскольку от него зависит среднее время передачи пакета. Еще одна важная характеристика коммуникационной сети — ее пропускная способность, то есть объем данных, которые она способна передавать в секунду. Наиболее полезной метрикой пропускной способности является пропускная способность сечения. Чтобы вычислить это значение, нужно мысленно разделить коммуникационную сеть на две равные (с точки зрения числа узлов) несвязанные части путем удаления ряда дуг из графа, а затем посчитать общую пропускную способность удаленных дуг. Пропускная способность сечения — это минимальная (для всех доступных вариантов) пропускная способность. Например, пропускная способность сечения, равная 800 бит/с, означает, что если между двумя частями сети много связей, общая пропускная способность в худшем случае составит только 800 бит/с.
По мнению многих разработчиков, пропуск- ))г)ультикомпьютеры 669 ная способность сечения — самая важная характеристика коммуникационной сети. Часто основная цель, которуго ставят разработчики коммуникационной сети, — добиться максимальной пропускной способности сечения. Рис. 8.31.
Различные топологии. Жирные точки соответствуют коммутаторам. Процессоры и модули памяти не показаны: звезда (а); полная взаимосвязь (б); дерево (в); кольцо (г); решетка (д); двойной тор (е); куб (ж); четырехмерный гиперкуб (з) Коммуникационные сети можно характеризовать по их размерности. Размерность определяется числом возможных вариантов перехода от источника к приемнику. Если выбора нет г',то есть существует только один путь от каждого источника к каждому приемнику), то сеть нульмерная. Если есть два возможных 670 Глава 8.
Параллельные компьютерные архитектуры варианта (например, либо на восток, либо на запад), то сеть одномерная. Если есть две оси, и пакет может направиться на восток или на запад либо на север или на юг, то говорят, что такая сеть двухмерная, и т. д. На рис. 8.31 показано несколько топологий. Здесь изображены только линии связи и коммутаторы (в виде точек). Модули памяти и процессоры (они на рисунке не показаны) соединяются с коммутаторами через интерфейсы. На рис. 8.29, а изображена нульмерная конфигурация звезда, в которой процессоры и модули памяти подключаются к внешним узлам, а переключение совершает центральный узел. Такая схема очень проста, но в большой системе центральный коммутатор окажется узким местом системы. С точки зрения отказоустойчивости это тоже очень неудачная схема, поскольку отказ одного центрального коммутатора вызывает крах всей системы.
На рис. 8.31, б изображена другая нульмерная топология — полная взаимосвязь. Здесь каждый узел непосредственно связан со всеми остальными. В такой схеме пропускная способность сечения максимальна, диаметр минимален, а отказоустойчивость очень высока (даже при утрате шести линий связи система все равно остается полносвязной).
Однако для 6 узлов требуется ЦА — 1)/2 каналов, а это совершенно неприемлемо для больших значений /г. Следующая топология — дерево (рис. 831, в). Здесь основная проблема состоит в том, что пропускная способность сечения равна пропускной способности линии связи. Обычно основной трафик наблюдается у верхушки дерева, поэтому верхние узлы становятся узким местом всей системы. Чтобы разрешить эту проблему, нужно увеличить пропускную способность сечения путем увеличения пропускной способности верхних линий связи.
Например, самые нижние линии могут иметь пропускную способность 6, следующий уровень — 26, а каждая линия верхнего уровня — 46. Такая схема, названная толстым деревом ((ат ггее), применялась в коммерческих мультикомпьютерах ТЬш1г1пй Мас)ппез' СМ-5. Кольцо (рис. 8.31, г) — это одномерная топология, поскольку каждый отправленный пакет может пойти направо или налево.
Решетка, или сетка (рис. 8.31, д),— это двухмерная топология, которая применяется во многих коммерческих системах. Она отличается регулярностью и легко масштабируется в сторону увеличения, а ее диаметр составляет квадратный корень от числа узлов (то есть при масштабировании системы диаметр увеличивается незначительно). Двойной тор (рис.
8.31, е) является разновидностью решетки, у которой края соединены. Эта топология характеризуется более высокой отказоустойчивостью и меньшим диаметром, чем обычная решетка, поскольку в ней между двумя противоположными узлами всего два хопа. Еще одна популярная топология — трехмерный тор. Эта топология описывается трехмерной структурой, узлы которой находятся в точках (1,), я)„а все координаты являются целыми в пределах от (1, 1, 1) до (1, т, и). У каждого узла есть шесть соседей, по два вдоль каждой оси координат,.а крайние узлы на противоположных краях связаны друг с другом, как и в двухмерных торах.
Куб (рис. 8.31, ж) — это регулярная трехмерная топология. На рисунке изображен куб размером 2 х 2 х 2, но в общем случае это может быть куб размером 6 х 6 х 6. На рисунке 8.29, з показан четырехмерный куб, полученный из двух трехмерных кубов, которые связаны между собой. Можно сделать пятимерный Мультикомпьютеры 671 куб, соединив вместе 4 четырехмерных куба. Чтобы получить 6.измерений, нужно продублировать блок из 4 кубов и соединить соответствующие узлы и т. д. Гиперкубом называется п-мерный куб (рис. 8.31, з). Эта топология используется во многих параллельных компьютерных архитектурах, поскольку ее диаметр линейно зависит от размерности. Другими словами, диаметр — это логарифм по основанию 2 от числа узлов, поэтому 10-мерный гиперкуб имеет 1024 узла, но диаметр равен всего 10, что дает очень незначительные задержки при передаче данных.
Отметим, что решетка размером 32 х 32, которая также содержит 1024 узла, имеет диаметр 62, что более чем в шесть раз больше, чем у гиперкуба. Цена, которую приходится платить за меньший диаметр гиперкуба, — увеличение числа разветвлений и, следовательно, линий связи. Тем не менее гиперкуб — основное решение для высокопроизводительных систем. Мультикомпьютеры имеют столь разнообразные формы и размеры, что выстроить для них сколько-нибудь внятную классификацию очень трудно. Тем не менее, можно выделить два основных «стиля» — это процессоры с массовым параллелизмом и кластеры.
Мы рассмотрим их по очереди. Процессоры с массовым параллелизмом Процессоры с массовым параллелизмом (Мазз1уе1у Рага11е1 Ргосеззогз, МРР)— это огромные суперкомпьютеры стоимостью в несколько миллионов долларов. Они используются в различных отраслях науки и техники для выполнения сложных вычислений, обработки большого числа транзакций в секунду, управления большими базами данных, и т. д. Изначально это были суперкомпьютеры, предназначенные в основном для научных расчетов, но сейчас многие из ннх находят применение в коммерции.
В каком-то смысле они являются наследниками мощных мэйнфреймов 60-х годов (хотя связь между ними столь же эфемерная, как между воробьем и тиранозавром). В целом, можно говорить, что МРР-мультикомпьютеры вытеснили 81МР-машины, векторные суперкомпьютеры и матричные процессоры с вершины «пищевой» компьютерной цепочки. В большинстве МРР-машин используются стандартные процессоры. Это могут быть процессоры 1пге1 Репг1пш, Бпп 111сгаЯРАВС, 1ВМ КБ/6000 и 1)ЕС А1рЬа. Отличает мультикомпьютеры наличие высокопроизводительной коммуникационной сети, по которой можно передавать сообщения с низким временем запаздывания и высокой пропускной способностью.
Обе характеристики (время запаздывания и пропускная способность) очень важны, поскольку сообщения в основном невелики по размеру (менее 256 байт), хотя при этом главный вклад в общий график вносят большие сообщения (более 8 Кбайт). МРР-мультикомпьютеры поставляются вместе с весьма дорогостоящим программным обеспечением и библиотеками. Еще одна характеристика МРР— огромные объемы ввода-вывода. С помощью МРР-мультикомпьютеры обычно приходится обрабатывать огромные массивы данных, иногда терабайты. Эти данные должны быть распределены по многочисленным дискам, и их с большой скоростью нужно передавать среди устройств машины.
672 Глава 8. Параллельные компьютерные архитектуры Наконец, важно помнить о еще одной черте МРР— отказоустойчивости. При наличии тысяч процессоров несколько неисправностей в неделю неизбежны. Прекращать работу системы из-за сбоев в одном из процессоров неприемлемо, особенно если ожидается, что сбои будут случаться каждую неделю. Поэтому в больших МРР-машинах всегда имеется специализированная аппаратная и программная поддержка постоянного мониторинга системы, обнаружения неполадок и их исправления. Теперь, по идее, надо было бы заняться изучением основных принципов организации МРР-машин, но этих принципов, по правде говоря, совсем не много.