Судя по названию, именно на этот уровень и замахнулась американская компания Tera Computer Company, образованная в 1987 г. в Сиэтле Дж. Роттсолком и Б. Смитом. Финансовую поддержку ей оказала известнейшая правительственная организация - агентство ARPA. В компании Tera чуть больше 60 сотрудников, большинство из которых - специалисты-разработчики аппаратного и программного обеспечения. Многие из них при переходе в Tera оставили исследовательскую работу в ведущих американских университетах.
По количественному составу Tera очень напоминает другую известную компанию - Control Data в период ее становления - маленький штат не помешал ей потеснить в свое время с компьютерного рынка такого гиганта, как IBM. Ситуация, когда малоизвестная компания становится звездой первой величины, в наше время крайне редка. Пожалуй, можно упомянуть только Netscape Сommunications. Tera явно рассчитывает занять такое место на компьютерном Олимпе. Именно поэтому мы решили познакомить наших читателей с этой фирмой, пока еще слабо известной не только у нас, но и за рубежом. Прежде всего следует рассмотреть, на какую область компьютерного рынка ориентируется Tera.
Брешь на компьютерном рынке
Tera является разработчиком компьютерных систем новой, так называемой многопоточной архитектуры (MTA, Multi Threaded Architecture). Ее MTA-компьютеры рассчитаны на применение в научной, инженерной и коммерческой сферах, требующих высокопроизводительные суперкомпьютерные ресурсы. По оценкам International Data Corp., объем этого рынка, составлявшего в 1994 г. около 1 млрд. долл., в 1998 г. достигнет 2,4 млрд. долл.
Вообще-то рынок суперкомпьютеров считается весьма тесным из-за его ограниченности. Гораздо быстрее развивается рынок суперкомпьютерных систем среднего класса, если угодно мини-суперкомпьютеров (например, SMP-систем). Можно, в частности, упомянуть неудачи фирм - производителей больших суперкомпьютерных систем, в том числе Thinking Machine, Kendall Square Research, Сray Computer, Supercomputer Systems. Однако Tera полагает, что рынок наиболее высокопроизводительных суперкомпьютеров искусственно сдерживается отсутствием хороших приложений.
На сервере (http://www.tera.com) компании процитировано высказывание президента фирмы Software Southwest, занимающейся маркетинговыми исследованиями, Гарри Монтри. По его мнению, проблема в отсутствии заметных изменений в области переноса важных приложений на большие суперкомпьютерные системы и плохой их масштабируемости на реальных задачах. К числу последних относятся, в частности, приложения с динамически изменяющимися нерегулярными решетками или обладающие плохой локализацией данных вследствие алгоритмических ограничений. На таких задачах не удается добиться хорошего масштабирования ни на одной из доступных высокопараллельных систем.
В Tera считают, что рынок для больших суперкомпьютеров существует, но нет суперкомпьютеров, которые могли бы на нем эффективно использоваться. Tera разработала принципиально новую архитектуру MTA, которая, по мнению ее представителей, обеспечит такой же прорыв, какой в свое время произошел при появлении Cray 1.
Согласно приведенным компанией Tera данным, автомобильным фирмам при анализе катастроф (столкновение автомобиля) не удается достигнуть более чем 2,5-кратного ускорения при распараллеливании даже на большое число процессоров. Такая ситуация характерна для инженерных приложений с нерегулярными решетками при расчетах на Cray T90; аналогичные проблемы имеются в других векторно-параллельных и симметричных мультипроцессорных (SMP) системах, базирующихся на микропроцессорах. При распараллеливании на массивно-параллельных системах с физически и логически распределенной оперативной памятью (МРР-системы) возникают сложнейшие проблемы программирования в модели обмена сообщениями. Соответственно число приложений третьих фирм, портированных на МРР-системы, весьма мало. Этих проблем нет в МТА, имеющей общее поле оперативной памяти. (Отметим, что в упомянутом анализе Tera не рассматривает современные многопроцессорные системы ccNUMA-архитектуры.)
Общая производительность, достигаемая в приложениях указанного выше типа, обычно не превышает 1 GFLOPS, а хорошее масштабирование реализуется лишь в пределах нескольких процессоров, как правило - до четырех. На таких известных программных продуктах, как NASTRAN, SPICE, DYNA3D, обычно не удается достичь высокого уровня масштабирования. Tera обещает поднять их поддерживаемую производительность более чем в 100 раз по сравнению с Cray T932 (табл.1).
Таблица 1.
Оценки производительности компьютеров Tera по отношению к Cray T932.
Год | Конфигурация Tera MTA | Ускорение относительно Сray T932 |
1997 | MTA-32C | 3,84-12,8 |
1998 | MTA-64C | 7,68-25,6 |
1999 | MTA-128C | 15,36-51,2 |
2000 | MTA-256C | 30,72-102,4 |
Данные получены исходя из следующих предположений: рассматриваются сверхбольшие параллелизуемые приложения; поддерживаемая производительность процессора MTA составляет 150-500 MFLOPS, а поддерживаемая производительность процессора Cray T90 - 500 MFLOPS; ускорение при распараллеливании в Cray T90 на типичных инженерных приложениях составляет порядка 2,5.
Приведем лишь краткий перечень прикладных областей, на которые ориентированы компьютеры Tera MTA:
Из этого видно, что MTA ориентированы на решение широчайшего круга задач, требующих высокопроизводительных средств вычислительной техники.
Реализация архитектуры МТА
Tera характеризует MTA как первую в мире действительно масштабируемую SMP-систему. Основная задача МТА - обеспечение высокой эффективности распараллеливания на всех уровнях: от низшего (уровень команд), включая векторный параллелизм, параллелизм на уровне циклов, задач, до высшего, т. е. до уровня заданий. Кроме того, в числе важнейших требований - простота распараллеливания и переноса программ. Для реализации этих задач в компьютерах МТА предусмотрен целый ряд архитектурных особенностей.
Оперативная память в МТА является однородной и общей для всех процессоров. Отсутствует иерархическое построение памяти, включающее кэш-память процессора: от кэш-памяти данных в МТА отказались. Это существенно уменьшает накладные расходы при распараллеливании, поскольку не нужно обеспечивать когерентность кэшей различных процессоров. Отметим, что идея отказа от кэш-памяти данных была использована также и в микропроцессорах, применяемых в Hitachi SR2201 (об этих компьютерах мы писали в #30/97 нашего еженедельника).
Другим преимуществом многопотоковой архитектуры МТА является быстрое, без накладных расходов, переключение между задачами после выполнения любой команды, что позволяет всем процессорам оставаться занятыми безотносительно к задержкам оперативной памяти или задержкам синхронизации (хотя, как мы увидим ниже, эти проблемы в МТА в существенной степени элиминируются). Для обеспечения занятости процессоров в МТА поддерживается сверхбольшой пул задач, емкость которого больше, чем число доступных аппаратных потоков.
Управление потоками в МТА требует лишь минимальных накладных расходов: поток может быть создан и уничтожен без вмешательства операционной системы, с помощью обычных непривилегированных команд. Легковесная синхронизация обеспечивается путем применения обычных команд загрузки регистров/записи в память, для чего слова в оперативной памяти дополняются специальными разрядами "заполнено" - "пусто". При этом также отпадает необходимость в операционной системе, и, следовательно, минимизируются накладные расходы.
Нельзя не упомянуть о системе HEP - разработке еще одной небольшой американской компании Denelcor, которая также ставила своей целью достижение высокого уровня параллелизма и при низких накладных расходах на синхронизацию процессов. В этой системе, которая также имела скорее потоковую архитектуру, применялся вышеуказанный механизм дополнительных разрядов в словах ОП. Да и задачи, стоявшие перед НЕР, выпущенной в конце 70-х годов, в техническом аспекте близки к МТА. Это еще раз подтверждает правильность известного изречения об источниках всего нового...
Большинство многопроцессорных систем не могут выполнять каждый такт операции загрузки регистров/записи в память на любом процессоре. Это означает существование потенциальной опасности возникновения узких мест для приложений, активно обращающихся к памяти. Например, пропускная способность оперативной памяти является лимитирующим фактором в задачах целочисленной сортировки. МТА допускает такие обращения к памяти в каждом такте.
Исходя из вышесказанного можно сделать вывод: в МТА приняты все меры для уменьшения накладных расходов, что позволяет достичь высокого уровня параллелизма приложений. Tera говорит о "почти линейной" масштабируемости приложений в МТА.
МТА-системы будут поставляться в конфигурациях, включающих 16, 32, 64, 128 и 256 процессоров. Общие характеристики конфигураций МТА представлены в табл. 2.
Таблица 2.
Конфигурации и производительность (Пт) МТА-систем.
Число процессоров | Пиковая производительность, GFLOPS | Емкость памяти, Гбайт | Пропускная способность ввода/вывода, Гбайт/с | Число каналов HiPPI |
16 | 16 | 16-32 | 6,2 | 32 |
64 | 64 | 64-128 | 25 | 128 |
256 | 256 | 256-512 | 102 | 512 |
Все процессоры в МТА являются многопоточными, переключающими контекст в каждом такте между аппаратно поддерживаемыми потоками команд, число которых доходит до 128. Это позволяет скрыть до 128 тактов (384 нс) задержки оперативной памяти. Кроме того, в каждом потоке может выдаваться до восьми обращений к памяти без завершения предыдущих обращений к ней. Это еще больше повышает "нечувствительность" процессора к задержкам оперативной памяти.
В процессорах используются 64-разрядные регистры общего назначения (31 регистр). Сами команды также занимают 64 разряда и могут содержать три операции: обращения к оперативной памяти; арифметическую или логическую операцию; переход или простую арифметико-логическую операцию. В процессоре поддерживается стандарт IEEE 754 на представление чисел с плавающей запятой и операции типа "умножить-и-сложить".
Процессор работает на тактовой частоте 333 МГц и имеет пиковую производительность около 1 GFLOPS. Пиковая пропускная способность оперативной памяти составляет 2,67 Гбайт/с; процессор в состоянии поддерживать пропускную способность, равную 95% этой величины. Для оценки производительности процессора МТА приведем время выполнения некоторых тестов: умножение матриц размером 1000х1000 - 50 мс; трехмерное быстрое преобразование Фурье (256х256х256) - 63 мс; произведение разреженной матрицы (400 млн. ненулевых элементов) на вектор - 50 мс.
Сердцевину МТА-компьютера образует межсоединение - трехмерная сеть, использующая коммутацию пакетов. Узлы этой сети тороидально связаны в трех направлениях. К узлам присоединяются ресурсы - процессоры и оперативная память. Задержка составляет три такта на узел; максимальная задержка равна 4,5*sqrt(p), где p - число процессоров, а средняя задержка в два раза меньше. Каждый узел имеет четыре порта (пять - если к нему присоединены ресурсы), все порты могут одновременно передавать и принимать 164-разрядные пакеты в каждом третьем нс-такте.
Из 164 разрядов пакета 64 содержат данные, поэтому ПС порта составляет 2,67 Гбайт/с в каждом направлении, а половинная ПС всей сети равна 2,67*р Гбайт/с. Маршрутизация в узлах осуществляется "на лету". Сообщения получают случайные приоритеты, которые используются при маршрутизации. Сеть защищена кодами ЕСС.
Опеpативная память состоит из устройств памяти, число которых равно 2*р или 4*р. Устройства памяти распределены в сети. В них используется 16-Мбит DRAM-технология и 64-кратное (!) расслоение. Обpащения процессоров к опеpативной памяти распределяются среди всех банков всех устройств памяти. Подобная pандомизация обеспечивает одинаковые величины задержек при обращении к опеpативной памяти. Адресоваться могут байты, 16-разрядные четвертьслова, 32-разрядные полуслова и 64-разрядные слова. Каждое слово дополняется 4 бит состояния доступа, используемыми при легковесной синхронизации.
Интегральным компонентом компьютеров МТА являются Storage Servers Gen5 XL фирмы Maximum Strategy. Вообще, за связь с внешними устройствами и сетями отвечают каналы HiPPI c пpопускной способностью 200 Мбайт/с каждый. Дисковые RAID-массивы Gen5 XL обладают пpопускной способностью, равной 130 Мбайт/с. Число таких массивов в МТА может достигать р/16, а емкость каждого массива - порядка 360 Гбайт.
Что день грядущий нам готовит
Для МТА была разработана Unix-подобная операционная система, в которой использовались BSD-версия ОС Unix и микроядро собственной разработки. Любой процессор имеет 15 так называемых защищенных доменов и может работать с 15 адресными пространствами (задачами), а вся система - соответственно с 15 задачами.
Первую инсталляцию МТА планируется осуществить в этом году в знаменитом суперкомпьютерном центре Сан-Диего, для чего NSF выделил специальный грант. Однако уже на прототипе Tera установила рекорд скорости целочисленной сортировки (NAS parallel integer sort), опередив предыдущего рекордсмена - Cray T90 - примерно на 10%.
Многопоточную архитектуру МТА можно рассматривать как своеобразный "диалект" классической машины потоков данных. Еще в 80-е годы многие эксперты предсказывали, что будущее именно за такой архитектурой. Ждет ли компьютер МТА коммерческий успех? Пока что акции Tera падают в цене. Ждать же начала предсказанной Tera архитектурной революции осталось совсем не долго.
Михаил Кузьминский - зав. отделом Института оpганической химии РАН.
Апокалипсис Бартона Смита
Hа Web-сервере Tera Computer можно найти текст очень любопытного доклада одного из основателей компании, Бартона Смита. Этот доклад, название которого, "Конец архитектуры", говорит само за себя, - пламенный призыв перейти к разработке параллельных архитектур общего назначения.
Смит отмечает, что все традиционные производители компьютерных систем сменили свое амплуа и предпочли стать "интеграторами открытых систем". Слова "собственная архитектура" вызывают снисходительные улыбки. По мнению многих, время коренных изменений в проектировании вычислительных машин прошло, осталась только тонкая настройка.
По мнению Смита, выход на новый уровень проектирования сдерживается двумя факторами. Первый касается развития всего компьютерного мира, просто заполоненного системами на микропроцессорах, названными когда-то великим Юджином Бруксом "убийцами микрокомпьютеров" (сегодня они, пожалуй, все чаще воспринимаются как "убийцы мэйнфреймов").
Пытаясь выжить, многие компании, занимавшиеся когда-то миникомпьютерами и мэйнфреймами, выпускают свои закрытые системы на микропроцессорах. Когда их собственная архитектура перестала соответствовать современному уровню архитектуры процессоров, они позаимствовали наработки производителей полупроводников. Это обеспечило им тот же набор команд и обычно то же программное обеспечение, что и у конкурентов. Несмотря на отсутствие различий, такая стратегия дала поразительный результат. Однако эти производители стремятся приобрести определенную долю рынка или хотя бы сохранить существующую, а не создавать новые области применения.
Вторая причина кроется в скорости вычислений. Опыт подсказывает Смиту - практически каждый, кто проектирует высокоскоростные компьютеры, не раз задумывался над вопросом: кому нужны такие быстрые компьютеры? Так и хочется ответить: никому, - и увидеть в глазах собеседника искреннее недоумение. На самом-то деле они нужны почти каждому. Вопрос значительно каверзнее: кому нужны столь быстрые компьютеры за такие огромные деньги?
Скорость компьютера и затраты на его приобретение определяются объемом продаж этих систем. Не существует "слишком быстрого" компьютера. С точки зрения производителей не существует даже "достаточно быстрого" компьютера, поскольку более быстрые и по такой же (или даже ниже) цене необходимы им просто для того, чтобы выжить в условиях острой конкуренции. Высокая скорость - лучший способ увеличения доли рынка. Но еще важнее, что скорость - это фундаментальный способ создания новых рынков. История существования компьютеров имеет немало тому примеров. Это многим известно, хотя они не перестают смеяться в ответ на слова, что столь быстрые - и столь дорогие - компьютеры нужны всего десяти пользователям во всем мире.
Новые приложения для столь быстрых и дорогих компьютеров появляются сразу, как только возникает баланс между ценой и производительностью. Так, высокая производительность нужна для моделирования микросхем и структурного анализа, а кроме того, для финансирования этих приложений сразу нашлись деньги. А вот компьютерной томографии пришлось дожидаться более приемлемой цены.
Как утверждает Смит, единственный путь к увеличению скорости - создание параллельных архитектур общего назначения.
Суперкомпьютеры общего назначения, с точки зрения Смита, должны, во-первых, довольно быстро выполнять любой алгоритм, который хорошо работает на любой другой машине. Этого необходимо для того, чтобы можно было использовать любой вид параллелизма. Во-вторых, такие суперкомпьютеры должны обеспечивать машинонезависимую среду программирования, чтобы переносить программное обеспечение из данной вычислительной системы на суперкомпьютер было бы не сложнее, чем на обычный компьютер общего назначения. В-третьих, они должны иметь соответствующую его вычислительным возможностям иерархию памяти. По мнению Смита, именно эти принципы и составляют истинную причину раскола между программированием параллельной обработки и принятой вычислительной практикой.
Сегодня все сходят с ума по скорости. Производители идут на любые ухищрения для оптимизации вычислений, но реального и коренного усовершенствования можно достичь только за счет построения универсальных параллельных систем. В то же время, считает Смит, современные производители параллельных систем по-прежнему ошибочно позиционируют их как компьютеры специального назначения.
Вместе с тем Смит утверждает, что современные микропроцессоры абсолютно непригодны для параллельной обработки общего назначения. Почему? Они не допускают непредсказуемую высокоточную задержку, вызванную главным образом использованием разделяемой памяти или высокоточной синхронизации.
В последние годы получены практические результаты в области использования когерентного или полукогерентного распределенного кэширования страниц для решения проблемы разделяемой памяти. Идея состоит в использовании высокоточного расположения данных, благодаря чему процессору не придется так часто простаивать.
Но в итоге мультикомпьютеры с разделяемой памятью, хотя их и проще программировать, чем с неразделяемой, все же не являются системами общего назначения. Pаспределенная когерентная кэш-память может использоваться в таких системах, но, считает Смит, не с процессорами, которые нетерпимы к задержкам.
Каким же должен быть процессор общего назначения? Специалисты сходятся во мнении, что гибрид классической архитектуры фон Неймана с несколькими потоками команд на процессор предпочтителен для чистых потоков данных, но производители не могут прийти к согласию о деталях реализации потоковой архитектуры. К примеру, большая часть сверхточной локализации предсказуема априори - нужно стационарно запланировать внутри каждого потока команд суперконвейерную обработку на нескольких десятках регистров.
Необходимо также, чтобы процессоры могли "выдерживать" задержку. И пока этого не произойдет, нам стоит забыть о реальной параллельной обработке.
По мнению Смита, заняться созданием подобных параллельных машин следовало уже давно. Возможно, работы компании Tera все же не допустят гибели архитектуры.
Computerworld Россия