Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ВМСиС.doc
Скачиваний:
708
Добавлен:
02.05.2014
Размер:
3.52 Mб
Скачать

Кластер Green Destiny

В Лос-Аламоской лаборатории в рамках реализации проекта малообъемных суперкомпьютеров построен кластер Green Destiny (M. Warren, E. Weigle, W. Feng. High-Density Computing: A 240-Processor Beowulf in One Cubic Meter, Proc. of SC-2002). Авторы проекта поставили целью создать 240-процессорный кластер в объеме 1 кубический метр. В качестве базового выбран конструктив RLX System 324 — 3U-блоки (высота — 5,25 дюйма, ширина — дюйма 17,25, глубина — 25,2 дюймов), вмещающие 24 серверов-лезвий. В блоке имеется два допускающих горячую замену источника питания мощностью 450 Вт и интерфейсы для доступа к вычислительным модулям.

Вычислительный модуль включает микропроцессор Transmeta TM5600/667 МГц, 128 Mбайт памяти DDR SDRAM, 512 Mбайт SDRAM, 20-гигабайтный диск и интерфейс Fast Ethernet. Имеется еще один порт Ethernet, позволяющий удвоить пропускную способность за счет агрегирования двух портов. Каждый из 24 вычислительных модулей одного блока подключен к коммутатору Fast Ethernet. Все 10 таких коммутаторов подключены, в свою очередь, к коммутатору Gigabit Ethernet, образуя одноуровневое дерево.

Кластер скомпонован в стандартную стойку размером 84x24x36 дюймов, использует систему питания APC Smart-UPS, управляемую ОС Linux. В ненагруженном состоянии кластер рассеивает 7 Вт. Под нагрузкой TM5600 выделяет приблизительно 15 Вт тепла, а кластер в целом с учетом всего оборудования — 5200 Вт, что в пересчете на один вычислительный модуль составляет 22 Вт.

Программируемый микропроцессор

Схемы для выполнения арифметических операций над 64-разрядными операндами с плавающей точкой, сформированные в однородной вычислительной среде с однобитными ячейками, используют значительно больший объем оборудования и уступают по быстродействию устройствам обработки операндов с плавающей точкой микропроцессоров с традиционной архитектурой. Проект программируемого (raw) микропроцессора преследует цель устранить этот недостаток, сохранив преимущества программируемости структуры вычислительных систем. Программируемый микропроцессор строится на кристалле как ячейка однородной решетки nxn (M. Taylor, J. Kim, J. Miller at al. The Raw Microprocessor: A Computational Fabric for Software Circuits and General-Purpose Programs. IEEE Micro, 2002, Vol. 22, No. 2). Авторы проекта используют термин tile. Ячейка содержит процессор и программируемый коммутатор, предназначенный для передачи и приема данных между соседними ячейками.

Процессор выполнен по 8-стадийной конвейерной схеме с промежуточной фиксацией результатов между стадиями конвейера в очереди с дисциплиной обслуживания FIFO. В процессоре реализовано много обходных путей (bypass), позволяющих использовать промежуточные результаты сразу после их получения на каждой стадии конвейера, в том числе, для передачи в другие ячейки. Предусматриваются также кэш-память данных (32 Кбайт) и кэш-память команд (96 Кбайт).

Для того чтобы ускорить межячеечные передачи данных, применен следующий подход. Регистры r24-r27 отображены на входные очереди межячеечных каналов с дисциплиной обслуживания FIFO. Обращение к регистру rj, j {24, ..., 27}, по чтению, в том числе при выборе этого регистра как операнда, влечет выборку элемента данных из соответствующей входной очереди. Если элемент в очереди отсутствует, то завершение выполнения обращения к регистру rj, j {24, ..., 27}, задерживается вплоть до поступления данных во входную очередь. При обращении к регистру rj, j {24, ..., 27}, по записи, реальная запись производится в выходную очередь межячеечных каналов. Если очередь заполнена, то завершение выполнения записи задерживается, вплоть до освобождения элемента очереди.

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

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

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

Экспериментальный кристалл программируемого процессора изготовлен по 0,15-микронной технологии с 6 слоями медных проводников на фабрике IBM. Кристалл содержит 16 (4х4) ячеек и функционирует на частоте 225 МГц, потребляя 25 Вт.

Разработаны компиляторы языков Си и Фортран, автоматически отображающие операторы программы в массив ячеек и формирующие команды статического интерфейсного процессора этой программы. Для одной из программ набора SPECfp на 16 ячейках получено уменьшение времени выполнения программы от 6 до 11 раз по сравнению с временем ее исполнения на одной ячейке. В другом эксперименте с использованием 32 ячеек соответствующее ускорение составило от 9 до 19 раз.