QsNet
QsNet — коммуникационная среда от компании Quadrics[англ.], обеспечивающая задержки на уровне SCI и пропускную способность до 900 МБ/с (QsNet II). Ввиду высокой стоимости оборудования QsNet, как правило, применяется для построения особо крупных кластеров терафлопного диапазона.
QsNet состоит из двух аппаратных строительных блоков: программируемого сетевого интерфейса Elan и коммутатора связи с высокой пропускной способностью и низкой задержкой Elite. Коммутаторы Elite могут быть соединены между собой в топологии Fat Tree. Что касается программного обеспечения, QsNet предоставляет несколько уровней коммуникационных библиотек, которые обеспечивают компромисс между производительностью и простотой использования. QsNet объединяет эти аппаратные и программные компоненты для реализации эффективного и защищенного доступа к глобальной виртуальной памяти с помощью операций удаленного прямого доступа к памяти (DMA). Он также повышает отказоустойчивость сети с помощью канальных и сквозных протоколов, которые обнаруживают неисправности и автоматически повторно передают пакеты.
Elan
Сетевой интерфейс Elan соединяет сеть Quadrics с узлом обработки, содержащим один или несколько процессоров. Помимо генерации и приема пакетов в сеть и из сети, Elan обеспечивает значительную локальную вычислительную мощность для реализации высокоуровневых протоколов передачи сообщений, таких как интерфейс передачи сообщений (MPI). Внутренняя функциональная структура Elan сосредоточена вокруг двух основных процессоров обработки: процессора микрокода и процессора потока. 32-разрядный процессор микрокода поддерживает четыре аппаратных потока. Каждый поток может независимо выдавать конвейерные запросы памяти в систему памяти. В любой момент времени может быть выполнено до восьми запросов. Планирование для процессора микрокода позволяет потоку проснуться, запланировать новый доступ к памяти на основе результата предыдущего доступа к памяти и вернуться в спящий режим всего за два системных такта.
Четыре потока микрокода предназначены для
- блок ввода данных, который обрабатывает входные транзакции из сети;
- механизм DMA, который генерирует пакеты DMA для записи в сеть, определяет приоритетность невыполненных передач DMA и временные интервалы больших DMA для предотвращения неблагоприятной блокировки малых DMA;
- планирование процессора, которое определяет приоритеты и контролирует планирование процессора потоков;
- обработка команд, которая обрабатывает запрошенные операции (команды) от хост-процессора на уровне пользователя.
Потоковый процессор - это 32-битный RISC-процессор, который помогает реализовать библиотеки обмена сообщениями более высокого уровня без явного вмешательства основного процессора. Для этого QsNet дополняет набор инструкций дополнительными инструкциями, которые помогают создавать сетевые пакеты, управлять событиями, эффективно планировать потоки и блокировать сохранение и восстановление состояния потока при планировании.
Блок управления памятью (MMU) преобразует 32-битные виртуальные адреса либо в 28-битные локальные физические адреса SDRAM, либо в 48-битные физические адреса соединений периферийных компонентов (PCI). Чтобы перевести эти адреса, MMU содержит полностью ассоциативный буфер ассоциативной трансляции с 16 записями, операционный автомат и конечный автомат, для прохода по таблице страниц, чтобы заполнить буфер и сохранить информацию при сбое в работе MMU.
Elan содержит таблицы маршрутизации, которые переводят каждый номер виртуального процессора в последовательность тегов, определяющих сетевой маршрут. Системное программное обеспечение может загружать несколько таблиц маршрутизации для обеспечения различных стратегий маршрутизации.
Elan имеет 8-Кбайт кэш-памяти (организованный в виде четырех наборов по 2 Кбайт) и 64-Мбайт SDRAM. Размер строки кэша составляет 32 байта. Кэш выполняет конвейерное заполнение из SDRAM и может выдавать несколько заполнений кэша и обратных записей для разных блоков, одновременно обслуживая доступы для блоков, попавших в кэш. Интерфейс SDRAM имеет длину 64 бита с восемью контрольными битами, добавленными для обеспечения кода исправления ошибок. Интерфейс памяти также содержит 32-байтовые буферы записи и чтения.
Логическая связь передает и принимает данные из сети и генерирует 9 бит и тактовый сигнал на каждой половине тактового цикла. Каждое звено обеспечивает буферное пространство для двух виртуальных каналов со 128-входным 16-битным FIFO RAM для управления потоком.
Elite
Elite обеспечивает
- восемь двунаправленных каналов, поддерживающих два виртуальных канала в каждом направлении,
- внутренний полный матричный коммутатор 16 × 8 (коммутатор имеет два входных порта для каждого входного канала для размещения двух виртуальных каналов),
- номинальная пропускная способность передачи 400 Мбит/с в каждом направлении канала и задержка прохождения потока 35 нс,
- обнаружение и восстановление ошибок пакетов с помощью защищенной циклической избыточностью маршрутизации и транзакций данных,
- два уровня приоритета в сочетании с механизмом старения для обеспечения справедливой доставки пакетов на одном и том же уровне приоритета,
- аппаратная поддержка широковещательных передач,
- адаптивная маршрутизация.
QsNet соединяет коммутаторы Elite в четверной топологии fat tree (утолщённое дерево). Четверное утолщённое дерево размерности состоит из обрабатывающих узлов и коммутаторов, соединенных между собой в виде дельта−сети; оно может быть рекурсивно построено путем соединения четырех четверных утолщённых деревьев размерности .
Маршрутизация пакетов
Сети Elite маршрутизируются из источника. Сетевой интерфейс Elan, который находится в сетевом узле, присоединяет информацию о маршруте к заголовку пакета перед вводом пакета в сеть. Информация о маршруте представляет собой последовательность тегов ссылок Elite. Когда пакет перемещается внутри сети, каждый коммутатор Elite удаляет первый тег маршрута из заголовка и пересылает пакет следующему коммутатору в маршруте или конечному пункту назначения. Тег маршрутизации может идентифицировать либо одно выходное звено, либо группу звеньев.
Интерфейс Elan передает каждый пакет в сеть с помощью wormhole flow control. На уровне канала интерфейс Elan разбивает каждый пакет на более мелкие 16-битные блоки. Каждый пакет закрывается токеном конца пакета, но исходный Elan обычно отправляет токен конца пакета только после получения токена подтверждения пакета. Этот процесс подразумевает, что каждая пакетная передача создает виртуальный канал между источником и получателем.
Сетевые узлы могут отправлять пакеты нескольким адресатам, используя широковещательные возможности сети. Для успешной доставки широковещательного пакета исходный узел должен получить положительное подтверждение от всех получателей широковещательной группы. Все интерфейсы Elan, подключенные к сети, могут принимать широковещательные пакеты, но при желании отправитель может ограничить набор широковещательных сообщений подмножеством физически смежных Elan.
Глобальная виртуальная память
Elan может передавать информацию непосредственно между адресными пространствами групп взаимодействующих процессов, сохраняя при этом аппаратную защиту между этими группами процессов. Эта возможность - называемая виртуальной операцией - представляет собой сложное расширение обычного механизма виртуальной памяти, основанного на двух концепциях: виртуальной памяти Elan и контексте Elan.
Виртуальная память Elan
Elan имеет MMU для преобразования адресов виртуальной памяти, выдаваемых различными функциональными блоками на микросхеме (потоковый процессор, DMA-движок и т. д.) в физические адреса. Эти адреса физической памяти могут относиться либо к локальной памяти Elan (SDRAM), либо к основной памяти узла. Для поддержки доступа к основной памяти таблицы конфигурации для MMU Elan синхронизируются с таблицами MMU основного процессора, так что Elan может получить доступ к своему виртуальному адресному пространству. Системное программное обеспечение отвечает за синхронизацию таблиц MMU и невидимо для программистов.
MMU Elan может проводить преобразования между виртуальными адресами в формате основного процессора и виртуальными адресами, записанными в формате Elan (32-битное слово, архитектура little-endian).
Таблицы MMU могут отображать общую область виртуальной памяти, называемую кучей. Распределитель по требованию отображает физические страницы-основной или Elan-памяти - в этот виртуальный диапазон адресов. Таким образом, используя функции выделения, предоставляемые библиотекой Elan, пользователь может выделять части виртуальной памяти либо из основной, либо из памяти Elan, а основной процессор и ММУ Elan могут быть согласованы.
Контекстное значение
В обычной системе виртуальной памяти каждому пользовательскому процессу присваивается идентификационный номер процесса, который определяет набор таблиц MMU и, следовательно, физические адресные пространства, доступные пользовательскому процессу. QsNet расширяет эту концепцию, так что пользовательские адресные пространства в параллельной программе могут пересекаться. Elan заменяет значение идентификационного номера процесса на контекстное значение. Пользовательские процессы могут напрямую обращаться к экспортированному сегменту удаленной памяти, используя контекстное значение и виртуальный адрес. Кроме того, контекстное значение также определяет, какие удаленные процессы могут получить доступ к адресному пространству через сеть Elan и где эти процессы находятся. Если пользовательский процесс многопоточен, потоки будут совместно использовать один и тот же контекст точно так же, как они используют одно и то же адресное пространство основной памяти. Если узел имеет несколько физических процессоров, то разные процессоры могут выполнять отдельные потоки. Однако потоки по-прежнему будут использовать один и тот же контекст.
Обнаружение неисправностей сети и отказоустойчивость
Важно отметить, что обнаружение неисправностей и отказоустойчивость происходит между двумя взаимодействующими Elan. При нормальной работе источник Elan передает пакет (то есть информацию о маршруте для маршрутизации источника с последующей одной или несколькими транзакциями). Когда получатель в целевом Elan получает транзакцию с флагом ACK Now, это означает, что эта транзакция является последней для пакета. После назначения Elan посылает пакет подтверждения токен возвращается к источнику Elan. Только когда источник Elan получает маркер подтверждения пакета и отправляет маркер окончания пакета, чтобы указать на завершение передачи пакета. Основное правило работы сети Elan заключается в том, что для каждого пакета, отправленного по ссылке, интерфейс Elan возвращает один токен подтверждения пакета. Сеть не будет повторно использовать ссылку до тех пор, пока конечный Elan не отправит такой маркер.
Если Elan обнаруживает ошибку во время передачи пакета по QsNet, он немедленно отправляет сообщение об ошибке, не дожидаясь маркера подтверждения пакета. Если Elite обнаруживает ошибку, он автоматически передает сообщение об ошибке обратно источнику и получателю. Во время этого процесса исходные и конечные Elan и Elite между ними изолируют неисправную связь и/или коммутатор с помощью обнаружения неисправностей на каждом прыжке; источник получает уведомление о неисправном компоненте и может повторить передачу пакета по умолчанию несколько раз. Если это не удается, источник может соответствующим образом перенастроить свои таблицы маршрутизации, чтобы избежать неисправного компонента.
Характеристики
- Пропускная способность: на уровне MPI около 300 МБ/сек.
- Время задержки: 3 мкс.
- Топология: Fat Tree. Архитектура поддерживает до 1024 узлов (QsNet) и до 4096 узлов (QsNet II).
- Программное обеспечение под GNU/Linux распространяется с исходными текстами по лицензии GNU GPL и поддерживает MPI (специализированную версию MPICH) и TCP/IP.
Ниже приведены наиболее часто используемые типы коммуникаций для суперкомпьютеров и их основные характеристики.