МРР-архитектура
Суперкомпьютеры компании nCube
Основные принципы архитектуры
Суперкомпьютер nCube 2
Архитектура процессора nCube
Программное обеспечение
Надежиость системы nCube 2
nCube и ORACLE

С момента появления первых компьютеров одной из основных проблем, стоящих перед разработчиками, была производительность вычислительной системы. За время развития компьютерной индустрии производительность процессора возрастала экспоненциально, однако появление все более изощренного программного обеспечения, рост числа пользователей и расширение сферы приложения вычислительных систем предъявляют новые требования к мощности используемой техники. Один из способов организации нового поколения вычислительных серверов - системы с массовым параллелизмом. Исследовательские разработки в области таких архитектур были популярны и в прошлом. Сферой их исключительного применения были супервычисления. Однако союз компаний NCUBE и ORACLE поставил перед собой цель создания программно-аппаратной платформы для коммерческих задач.

МРР-архитектура

Восьмидесятые годы дали компьютерной индустрии новую вычислительная модель "клиент/сервер", в которой интерфейс с приложениями осуществляется локальными "клиентами" - настольными системами типа рабочих станций, а функции управления данными и сложные вычислительные процессы возлагаются на "серверы". Использование технологии VLSI (Very Large Scale Integration - сверхвысокая степень интеграции), обеспечивающей создание недорогих высокопроизводительных рабочих станций, привело к тому, что выигрыш в соотношении цена/производительность для настольных систем стал за последнее десятилетие почти стократным. С системами, пригодными в качестве серверов, однако, подобного не происходило. Крупные централизованные системы типа мейнфреймов с их мощными вычислительными возможностями имеют ряд ограничений. Поэтому в распределенную систему в архитектуре "клиент/сервер" из соображений повышения производительности часто подключалось множество серверов для решения определенных задач. Объединение такой группы серверов в единый, мощный, масштабируемый компьютер значительно облегчило бы ситуацию. Именно эту проблему решает разработка на базе технологии VLSI нового поколения серверов - систем с массовым параллелизмом (MPP - Massively Parallel Processing).

Суперкомпьютеры компании nCube

Одним из пионеров в создании MPP-систем стала основанная в 1983 году компания nCube. В 1985 году появился первый ее MPP-компьютер, nCube 1. Система nCube 1, в основе которой, как и в основе всех последующих поколений компьютеров nCube, лежит гиперкубическая топология межпроцессорных соединений и высокий уровень интеграции на базе технологии VLSI, показала рекордные результаты по абсолютной производительности и в соотношении цена/производительность для научных вычислений.

В 1989 году компания nCube выпустила семейство суперкомпьютеров nCube 2. Большие вычислительные возможности, гибкая архитектура и мощное специализированное программное обеспечение позволяют применять системы nCube 2 в широком диапазоне областей - от сложнейших научных задач до управления информацией в бизнесе.

Семейство nCube 2 представляет собой масштабируемую серию систем, производительность которых может достигать 34 GigaFlops и 123000 MIPS. Каждый суперкомпьютер этой серии содержит набор процессоров nCube, соединенных в гиперкубическую сеть. Наибольшую систему составляют 8192 процессора, и ее мощность более чем в 1000 раз превышает мощность наименьшей - с 8 процессорами. Возможности памяти и системы ввода/вывода возрастают вместе с ростом процессорной мощности.

Следующая цель компании nCube - разработка нового семейства Mpp-систем, суперкомпьютеров nCube 3. Новое поколение суперкомпьютеров nCube, следуя принципам высокой интегрируемости и масштабируемости, станет первой промышленно реализованной платформой с производительностью до нескольких TFlops, стопроцентно совместимой с предыдущими поколениями систем nCube.

Основные принципы архитектуры

Архитектура MIMD

Системы nCube основываются на архитектуре параллельной обработки данных MIMD (Multiple Instruction Multiple Data - Множественный поток команд, Множественный поток данных). В то же время, MIMDсистемы nCube поддерживают модель программирования SPMD (Single Program Multiple Data - Одна программа, Множество данных) для параллельных операций над распределенными наборами данных. MIMD-системы обеспечивают гибкость независимого управления локальными процессорами, которая недоступна для систем централизованного управления потоком SIMD (Single Instruction Multiple Data - Одиночный поток команд, Множественный поток данных). Кроме того, системы с MIMD-архитектурой лучше подходят для реализации мультипрограммирования, так как в них можно выделять подмножества процессоров для параллельного выполнения нескольких приложений. (Справедливости ради следует отметить неизбежную избыточность оборудования, требуемую для распределенного выполнения программ по сравнению с централизованным.)

Распределенная память

В суперкомпьютерах nCube используется архитектура распределенной памяти, позволяющая оптимизировать доступ к оперативной памяти, вероятно, наиболее критичному ресурсу вычислительной системы.

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

Традиционные архитектуры с разделенной памятью удобны для систем с небольшим числом процессоров, однако они плохо масштабируются по мере добавления процессоров и памяти. Когда в системе с разделением памяти увеличивается число процессоров, возрастает конкуренция в использовании ограниченной пропускной способности системной шины, что снижает производительность соединения процессор-память. Кроме того, добавление процессоров в такую систему требует увеличения количества логики для управления памятью, снижая тем самым производительность системы и увеличивая ее цену.

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

Межпроцессорная сеть

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

N-мерный гиперкуб содержит 2**n процессоров. Двухмерный гиперкуб - это квадрат. Трехмерный гиперкуб образует обычный куб, а четырехмерный гиперкуб представляет собой куб в кубе. Для семейства суперкомпьютеров nCube 2 гиперкуб максимальной размерности 13 содержит 8192 процессора. В системе nCube 3 число процессоров может достигать 65536 (16-мерный гиперкуб).

Эффективность сетевой топологии измеряется, в частности, числом шагов для передачи данных между наиболее удаленными процессорами в системе. Для гиперкуба максимальное расстояние (число шагов) между процессорами совпадает с размерностью куба. Например, в наибольшем 13-мерном семейства nCube 2 сообщения между процессорами никогда не проходят более 13 шагов. Для сравнения, в 2-мерной конфигурации "mesh" (петля) с числом процессоров, вдвое меньшим числа процессоров в максимальной системе nCube 2, наибольшее расстояние между процессорами составляет 64 шага. Задержки коммуникаций в такой системе значительно увеличиваются. Таким образом, никакая другая топология соединения процессоров не может сравниться с гиперкубом по эффективности. Пользователь может удвоить число процессоров в системе, при этом увеличивая длину пути связи между наиболее удаленными процессорами только на один шаг.

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

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

Высокий уровень интеграции

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

Высокий уровень интеграции сокращает пути передачи данных, повышая тем самым производительность системы. Интеграция процессорного узла на один чип оставляет свободными для контроля только простые соединения с памятью и сетевые интерфейсы вместо сложных сигналов синхронизации, арбитража и управления. Эти простые соединения тестируются и корректируются с помощью методов контроля четности и ЕСС (Error Correction Code - код коррекции ошибок), упрощая процесс определения и изоляции ошибок.

Суперкомпьютер nCube 2

Суперкомпьютер nCube 2 масштабируется от 8-процессорных моделей до моделей с 8192 процессорами. Архитектура nCube 2 уравновешивает процессорную мощность, пропускную способность памяти и пропускную способность системы ввода/вывода. Добавление процессоров в систему не влечет за собой появление узких мест в пропускной способности памяти или системы ввода/вывода.

Семейство nCube 2 включает в себя две серии суперкомпьютеров:

Серия nCube 2S базируется на процессоре nCube 2S с тактовой частотой 25 MHz; предельная производительность 33 MFLOPS - 34 GFLOPS, 120 MIPS - 123000 MIPS; размер оперативной памяти 32 Мб - 32 дВ; модели 10, 20, 40, 80. Серия nCube 2 базируется на процессоре nCube 2 с тактовой частотой 20 MHz; предельная производительность 26 MFLOPS - 27 GFLOPS, 60 MIPS - 60000 MIPS; размер оперативной памяти 32 mB - 32 дВ; модель 2.

Архитектура суперкомпьютера семейства nCube 2 базируется на гиперкубической сети VLSI - чипов, спаренных с независимыми друг от друга устройствами памяти. Ч? SI - чип, или процессор nCube 2, включает в себя:

- 64-разрядный центральный процессор;

- 64-разрядный модуль вычислений с плавающей точкой;

- удовлетворяющий стандарту IEEE интерфейс управления памятью с 39-разрядным путем данных 14 двунаправленных каналов DMA (Direct Memory Access - прямой доступ к памяти)

(Здесь и ниже под термином "процессор nCube 2" будут пониматься как базовый процессор серии nCube 2, так и процессор nCube 2S. Оба типа играют одинаковую роль в параллельной обработке данных и сетевых коммуникациях).

При тактовой частоте 25 МГц процессор имеет скорость обработки целочисленных данных 15 VAX MIPS и скорости 4.1 MFLOPS для вычислений с плавающей точкой одинарной и 3.0 MFLOPS двойной точности.

Каждый процессор nCube 2 конфигурируется с устройством динамической памяти емкостью от 4 до 64 МБайт.

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

Каждый суперкомпьютер nCube 2 содержит компактную сеть процессоров. На одну процессорную плату nCube 2 может монтироваться до 64 процессоров. Процессорная стойка может содержать 16 плат с общим числом процессоров до 1024. Для построения систем большего размера стойки комбинируются. Использование недорогих строительных блоков обеспечивает низкую цену полной компьютерной системы в сочетании с феноменально высокой производительностью, достигнутой за счет комбинированной мощности процессорной сети.

Каждый процессор nCube 2 содержит 14 каналов DMA 13 для соединений в гиперкубе и 1 для ввода/вывода. Выделенный канал ввода/вывода уравновешивает вычислительную производительность процессора с производительностью его системы ввода/вывода. По мере добавления процессоров в систему пропускная способность системы ввода/вывода гиперкуба масштабируется вместе с процессорной мощностью и памятью.

В состав процессора nCube 2 входит высокоскоростное устройство маршрутизации сообщений, которое управляет передачей сообщений между процессорами. Устройство маршрутизации обеспечивает прямую передачу сообщений без прерывания промежуточных процессоров или необходимости хранения данных сообщения в их памяти. Сообщения передаются со скоростью 2.75 МБ/сек на канал DMA. Специальные методы маршрутизации автоматически вычисляют кратчайший путь между процессорами и предотвращают взаимную блокировку сообщений, освобождая пользователей от необходимости планировать маршруты. Устройство маршрутизации передает сообщения настолько быстро, что число проходимых шагов влияет на производительность гораздо меньше, чем в других компьютерах. Высокая скорость передачи создает иллюзию, что каждый процессор связан непосредственно с любым другим в сети. Эффективность гиперкубической топологии в совокупности с высокоскоростным устройством маршрутизации создают высокопроизводительную систему межпроцессорных соединений с максимальной, по сравнению с другими процессорными сетями, скоростью межпроцессорных коммуникаций. Суперкомпьютер серии nCube 2 с 8192 процессорами имеет скорость межпроцессорной передачи 577 ГБ/сек.

Каждый процессор nCube 2 выполняет свою собственную программируемую последовательность команд и может функционировать независимо. Этот принцип позволяет выделять подмножества процессоров для параллельного выполнения различных операций. Такое разбиение гиперкуба превращает суперкомпьютер nCube 2 в многопользовательскую, многозадачную систему. Программное обеспечение nCube 2 выделяет набор процессоров - подкуб - для программы пользователя и загружает ее. В течение необходимого времени каждый такой подкуб функционирует как отдельный компьютер. Пользователи могут изменять размеры подкубов в соответствии с требованиями своих программ.

Архитектура процессора nCube

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

На кристалле расположены регистровый файл и два кэша по 16 КБайт каждыи: разделенные кэш команд и кэш данных. Скорость доступа к внутреннему кэшу составляет 1.6 ГБайт/сек, а для большей эффективности обслуживает его специальный конвейер. Доступ к кэшу осуществляется по физическому адресу, чтобы избежать ненужных перемещений данных в случае переключения контекста.

Процессор nCube включает в себя полную поддержку виртуальной памяти. В основу архитектуры заложено 64-разрядное поле виртуального адреса, хотя в настоящее время реализован 48-разрядный виртуальный адрес, обеспечивающий адресацию 256 ТБайт. Размеры страниц могут иметь переменные размеры от 256 Байт до 64 МБайт.

Система ввода/вывода nCube 2

Высокопроизводительной вычислительной системе должна соответствовать мощная, быстрая и гибкая система ввода/вывода. В суперкомпьютере nCube 2 система ввода/вывода использует тот же самый VLSI- процессор, который функционирует как вычислительный элемент в гиперкубической сети. Каноны DMA в процессорах системы ввода/вывода используются как пути передачи данных. Наличие выделенных процессоров ввода/вывода позволяет осуществлять параллельную работу вычислительной сети и системы ввода/вывода.

Система ввода/вывода масштабируется вместе с процессорной сетью. Суперкомпьютер большого размера имеет не только больше вычислительных процессоров, но и большее количество процессоров ввода/вывода.

nCube 2 поддерживают несколько интерфейсов ввода/вывода, обеспечивающих пользователей связью с необходимыми им устройствами.

Плата ввода/вывода nChannel осуществляет связь суперкомпьютера nCube 2 с устройствами вторичного хранения, дисками, магнитными лентами, сетями и другими устройствами. Плата nChannel имеет 16 независимых каналов ввода/вывода, каждый из которых управляется процессором nCube 2. К каждому каналу подключается модуль ввода/вывода, например, контроллер SCSI. Каждый канал передает данные со скоростью 20 МБ/сек. С помощью каналов платы nChannel система nCube 2 соединяется с хост-компьютером, сетью Ethernet, дисководами и накопителями на магнитной ленте, а также модулями преобразования сигналов и передачи видеообразов.

Плата HIPPI позволяет соединять суперкомпьютер nCube 2 с другими суперкомпьютерами, запоминающими устройствами и иными системами, поддерживающими интерфейс HIPPI (High Performance Paroller Interface Высокопроизводительный параллельный интерфейс). Плата HIPPI использует 16 процессоров nCube 2 для обработки сетевого трафика, обычно 8 процессоров для управления вводом и 8 для управления выводом. Скорость передачи данных достигает 100 МБ/сек.

Графическая подсистема реального времени nVision обеспечивает интегрированную подсистему графики и ввода/вывода, которая позволяет программистам отображать и взаимодействовать с большими объемами данных в реальном времени. На плате nVision размещены 16 процессоров nCube 2, 2 CRT-контроллера, специальный текстовый процессор, 16 МБайт памяти и 2 МБайт буфера.

Компьютер nCube 2 соединяется по сети с управляющим компьютером, с которого пользователи загружают nCube 2, разрабатывают и запускают параллельные программы и наблюдают за функционированием процессорной сети и системы ввода/вывода. Стандартным управляющим компьютером для nCube 2 является рабочая станция производства компании Silicon Graphics.

Программное обеспечение

На всех компьютерах семейства nCube 2 устанавливается специализированная программная среда PSE (Parallel Software Environment), включающая в себя следующие компоненты:

- операционная система nCX, построенная по микроядерной технологии и выполняющаяся на всех процессорах гиперкуба, она управляет системой ввода/вывода;

- драйвер хост-интерфейса, интерфейс ввода/вывода для соединения с управляющим компьютером; библиотека стандартных UNIX-функций;

- средства разработки для написания, компиляции, профилирования, отладки, запуска и контроля параллельных программ;

- утилиты системного администратора;

- подсистема интерактивной (on-line) документации.

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

Среда PSE базируется на nCX - высокооптимизированном, небольшом (до 128 КБ) и быстром микроядре (microkernel), который обеспечивает сервис операционной системы на каждом процессоре как гиперкуба, так и системы ввода-вывода. nCX поддерживает управление процессами и управление памятью, многозадачность, интерфейс системных вызовов UNIX System V Release 4, а также высокопроизводительную систему передачи сообщений. Другие операционные средства, такие как драйверы ввода/вывода и сетевые соединения, распределяются между вычислительными узлами и процессорами ввода/вывода. Операционная система nCX обеспечивает единый интерфейс для параллельных программ и драйверов ввода/вывода.

На суперкомпьютерах nCube 2 поддерживаются две парадигмы программирования:

SPMD (Single Program Multiple Data - Одна программа, Множество данных): в процессорную сеть загружается одна программа, каждый экземпляр программы обрабатывает свой собственный набор данных; процессоры могут обмениваться информацией.

MPMD (Multiple Program Multiple Data - Множество программ, Множество данных): в процессорную сеть загружается набор программ, каждый экземпляр каждой программы обрабатывает свои собственные данные; программы могут обмениваться информацией.

Среда PSE спроектирована таким образом, чтобы упростить параллельное программирование, обеспечить высокую производительность программного обеспечения и дать пользователям возможность легко и быстро создавать, новые и адаптировать существующие приложения к системам nCube. В состав PSE входят: драйвер компилятора ncc; отладчик параллельных программ на уровне исходного кода nolb; набор графических мониторов PM; набор средств Express для распараллеливания программ, написанных на языках С и FORTRAN. Кроме того, PSE поддерживает язык Linda - расширение других языков программирования, которое обеспечивает стандартные подпрограммы для передачи сообщений и параллельной обработки. Компания nCube принимает активное участие в разработке стандартов языков программирования завтрашнего дня: High Performance FORTRAN и Dataparallel С.

Надежиость системы nCube 2

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

Перспективный МРР-компьютер nCube 3

Новое поколение систем nCube nCube 3 - следует основным принципам дизайна nCube, выводя суперкомпьютеры на еще более высокий уровень производительности. Гиперкубическая сеть высокоскоростных 64-разрядных микропроцессоров обеспечивает сбалансированную производительность вычислительных узлов, коммуникаций, памяти и ввода/вывода. Системы nCube 3 могут содержать от 8 до 65536 процессоров. В суперкомпьютере максимальной конфигурации скорость передачи данных по соединениям гиперкуба превышает 24 ТБ/сек.

Емкость локальной памяти для одного вычислительного узла - от 16 МБайт до 1 ГБайт. Системы nCube 3 реализуют также архитектуру виртуальной памяти, основанную на 64-разрядных адресах и обеспечивающую до 256 Терабайт адресного пространства для каждого процесса.

nCube 3 предлагает новую, более эффективную конфигурацию системы ввода/вывода - Parachannel, независимую гиперкубическую сеть процессоров ввода/вывода. Вычислительные узлы процессорной сети связываются с сетью Parachanne посредством прямых сетевых каналов. Каждый узел сети ввода/вывода может обслуживать до 8 вычислительных узлов.

Программное обеспечение для nCube 3 полностью совместимо с прграммным обеспечением семейства nCube 2.

nCube и ORACLE

Отличительной чертой суперкомпьютеров nCube, бесспорно, является их совместимость с одной из наиболее популярных сегодня систем управления базами данных - ORACLE (это отражает тенденцию ориентации современных MPP-архитектур на коммерческие, а не только на вычислительные и инженерные применения). При выполнении на суперкомпьютерах семейства nCube 2 реляционная СУБД ORACLE обеспечивает высочайшую производительность баз данных для пользователей в различных областях науки и бизнеса. ORACLE предоставляет пользователям надежную реляционную базу данных, а также широкий набор средств для разработки приложений, поддержки решений и автоматизации офиса. Последняя версия ORACLE, Параллельный Сервер ORACLE (ORACLE Parallel Server), предназначена для работы с различными параллельными архитектурами. В совокупности с возможностями параллельной сети и параллельной системы ввода/вывода nCube 2 Параллельный Сервер ORACLE стал самой быстрой и самой эффективной по цене СУБД. При специальном тестировании 64-процессорный компьютер nCube 2 с 48 процессорами ввода/вывода, выполнявший параллельный сервер ORACLE, показал рекордные результаты производительности - 1073 транзакций в секунду, что более чем в два раза превышало максимальные показатели для самого быстрого мэйнфрейма. При этом цена одной транзакции (2,500 долларов) составила всего 1/12 цены транзакции для мэйнфрейма.

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

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

От редакции: при подготовке статьи использовались материалы, предоставленные компанией SATS Corp.