Russian Language English Language

2. Вычислительные системы

2.1 МУЛЬТИАРХИТЕКТУРНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СУПЕРСИСТЕМЫ

2.2 ФУНКЦИОНАЛЬНАЯ МОДЕЛЬ ПРОЦЕССОРА НЕТРАДИЦИОННОЙ АРХИТЕКТУРЫ С ВНУТРЕННИМ ЯЗЫКОМ ВЫСОКОГО УРОВНЯ

2.3 ОДНОКРИСТАЛЬНАЯ МИКРОПРОЦЕССОРНАЯ СИСТЕМА НА БАЗЕ ПЛИС ТИПА FPGA


Экспресс информация

Редколлегия журнала

Подписка на новости

Гостевая книга

Предоставление материалов

Письмо в редакцию

На начало


2008, Номер 2 ( 13)



Place for sale
МУЛЬТИАРХИТЕКТУРНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СУПЕРСИСТЕМЫ

BC/NW 2008, №2 (13): 2.1

МУЛЬТИАРХИТЕКТУРНЫЕ ВЫЧИСЛИТЕЛЬНЫЕ СУПЕРСИСТЕМЫ

Ю.И. Митропольский

(Москва,Физико-технологический институт РАН, Россия)

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

На ранних этапах развития суперкомпьютеров (70 – 80-е годы) имел место комплексный подход к разработке и суперкомпьютеры в основном создавались на основе векторно-конвейерной архитектуры. Однако, начиная с 90-х годов, когда микропроцессоры достигли высокой производительности и стали использоваться в суперсистемах, ситуация начала изменяться и критерии выбора архитектуры и программного обеспечения для суперсистем свелись по существу к выбору микропроцессора, системы коммутации и программного обеспечения. В результате стали создаваться мультипроцессорные и мультикомпьютерные системы, объединяющие до нескольких десятков тысяч микропроцессоров. Однако, производительность таких систем на реальных задачах, как правило, составляла не более 10% от пиковой, в то время как на векторных системах этот показатель часто превышал 50%, последние, правда, уступали по абсолютной производительности. Изменение ситуации произошло с момента появления в 2002 г. японской системы Earth Simulator [2]. Фирма NEC спроектировала специализированный однокристальный векторный процессор, совместимый с процессорами предыдущих систем фирмы, и построила мультипроцессорную систему с рекордной производительностью. Пиковая производительность системы – 40 TFlops, а производительность на ряде задач достигла 27 TFlops. Это стало возможно благодаря совершенствованию систем проектирования, что сделало экономически оправданной разработку однокристального процессора с ограниченным тиражом.

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

Развитие концепции мультиархитектуры. Вехой в отечественной вычислительной технике стала ЭВМ БЭСМ-6, Главным конструктором которой был академик С.А. Лебедев, а его заместителем академик В.А. Мельников. Машина БЭСМ-6 предназначалась для решения крупных научно-технических задач, что, естественно, отразилось как на ее архитектуре, так и на выборе системы элементов и конструкции [3]. К особенностям системы команд следует отнести одноадресную структуру команды, наличие операций с плавающей запятой, индекс-регистров для модификации адресов, двух форматов команд в зависимости от длины адреса. Для согласования пропускных способностей процессора и оперативной памяти применялось расслоение оперативной памяти и неадресуемая буферная память с ассоциативным поиском. По-существу это была кэш-память, реализованная на 10 лет раньше, чем в модели 85 системы IBM/360, однако, по технологическим причинам объем этой памяти был невелик.  При разработке БЭСМ-6 была создана оригинальная система представления схемной документации   и связанная с ней методология проектирования [4]. Она была основана на формульном описании логических схем и системы бланков, в которых содержалась информация о логической схеме блока и адреса его соединений с другими блоками. Указанные выше аппаратные средства обеспечили создание многопользовательской операционной системы. За время эксплуатации машины было разработано несколько вариантов операционных систем, а также трансляторы с автокода и распространенных языков высокого уровня.

Следующей крупной разработкой, выполненной под руководством Главного конструктора В.А. Мельникова, была система обработки данных АС-6. Установка и эксплуатация БЭСМ-6 в вычислительных центрах, где выполнялась обработка больших объемов данных, поступающих от большого числа абонентов, в частности, в Центре управления полетами, послужила стимулом создания системы АС-6. В этих центрах узким местом являлось небольшое число внешних устройств и низкая пропускная способность подсистемы ввода-вывода БЭСМ-6. В основу реализации  системы легли идеи специализации подсистем и устройств и унификации в рамках системы каналов обмена. Кроме БЭСМ-6 в систему входили центральный процессор   АС-6, периферийная машина ПМ-6, дополнительные устройства оперативной памяти, контроллеры магнитных дисков, контроллер приема телеметрической информации. Все эти устройства объединялись в систему в качестве абонентов канала 1-го уровня. Система АС-6 с 1973 г. находилась в опытной эксплуатации, при этом продолжались работы по ее развитию. В 1975 г. она использовалась при проведении работ по программе совместного советско-американского проекта «Апполон – Союз». Сдача системы в полном объеме была проведена в 1979 г.

По мере создания и эксплуатации системы стало очевидно несоответствие новых архитектурных идей и возможностей элементной базы. С целью дальнейшего развития этого направления в 1973 г. был разработан проект системы БЭСМ-10, в котором на основе задела, полученного при создании АС-6, и использования высокоскоростных интегральных схем типа ЭСЛ планировалось создание перспективной вычислительной системы. Однако этот проект не был поддержан Министерством радиопромышленности СССР. Продолжение работ в этом направлении было осуществлено под руководством академика В.А. Мельникова в рамках создания суперкомпьютерной системы «Электроника СС БИС». Разработка суперкомпьютерной системы «Электроника СС БИС-1» базировалась на том научном багаже, который был накоплен при создании БЭСМ-6 и АС-6 [5,6]. Однако, для достижения производительности на два порядка величины большей, чем в этих машинах, было необходимо освоение нового технологического уровня и разработки соответствующей ему архитектуры.

В первоначальном проекте системы рассматривались возможности включения в ее состав следующих проблемно-ориентированных подсистем:

·       основная машина с векторно-конвейерным процессором;

·       матричная машина;

·       машина для логической обработки данных.

Кроме того, рассматривались возможности включения следующих функционально-специализированных подсистем:

·       периферийная машина;

·       интеллектуальный контроллер внешней полупроводниковой памяти;

·       контроллер дисковой памяти;

·       внешние машины;

·       управляющие машины.

С учетом имевшихся ресурсов и первоочередных задач было принято решение отложить разработку матричной, логической и периферийной машин. В 1985 г. были проведены испытания опытного образца системы, в 1989 г. – испытания головного образца на тестах. В 1991 г. были проведены испытания системы «Электроника СС БИС-1» с первой версией операционной системы, изготовлены и налажены 4 образца, началась их установка у заказчиков. Пиковая производительность системы в двухпроцессорном варианте должна была составлять 500 MFLOPS. В том же году был разработан проект системы «Электроника СС БИС-2», направленный на создание многопроцессорной системы с производительностью до 10 GFLOPS. Кроме многопроцессорных основных машин планировалось включить в систему мониторные машины для управления системой  подготовки задач, а также  подсистему с массовым параллелизмом. В планы коллектива, возглавляемого академиком В.А. Мельниковым, входило создание неоднородной системы. Однако, в 1993 г. было принято решение о прекращении работ по системе.

Концепции построения неоднородных вычислительных суперсистем и предложения по архитектуре и подходам к их реализации были опубликованы в 1995 г. [7]. Впервые была предложена архитектура неоднородной суперсистемы, основанной на тесном взаимодействии процессоров для скалярной, векторной и параллельной обработки,  которая дает возможность обеспечения высокой эффективности при решении больших задач, содержащих фрагменты с различными формами параллелизма [7-10] .

В результате исследований по применению перспективных ультрабольших интегральных схем впервые разработана и опубликована в 1998 г. архитектура векторного модульного масштабируемого унипроцессора, обеспечивающего выполнение десятков и  сотен операций в один такт [11,12].

В 2003 г.  опубликованы результаты следующего этапа исследований, результатом которых явился проект мультиархитектурной вычислительной суперсистемы, в которой для фрагментов задач с параллелизмом на уровне данных используются векторные мультипроцессоры, для фрагментов задач с параллелизмом на уровне программ – скалярные мультипроцессоры, а для выполнения функций управления вычислениями и распределением ресурсов мониторно-моделирующая подсистема [13]. Система обладает свойствами масштабирования на нескольких уровнях.

В 2005 г. опубликована статья, в которой впервые сформулирована и обоснована новая парадигма для суперкомпьютеров – мультиархитектура вычислительных суперсистем [14].

На первом этапе исследований рассматривалась система, состоящая из тесно объединенных векторного процессора и мультипроцессорной системы на основе микропроцессоров [7-10]. Затем с учетом развития технологии и элементной базы исследовались подходы создания масштабируемого мультиконвейерного векторного процессора [15]. В настоящее время объектом исследований является мультиархитектурная суперсистема, при этом ставится цель обеспечения максимальной производительности как за счет рационального и экономного использования аппаратных средств, согласования архитектуры и форм параллелизма в программах, так и за счет оптимизации математического и программного обеспечения. Масштабируемость системы на всех уровнях позволяет оптимизировать аппаратные средства в соответствии с потребностями прикладных программ.

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

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

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

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

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

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

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

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

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

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

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

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

Объединение процессоров в мультипроцессоры основано на построении сети, в каждом узле которой необходимо наличие функционально-специализированного процессора.

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

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

В свою очередь модули состоят из IP-блоков, что облегчает их проектирование.

Масштабируемый скалярный процессор. Масштабируемый скалярный процессор (МСП) предназначен для выполнения основного набора скалярных операций. Основным инструментом повышения производительности МСП является наличие параллельно работающих конвейерных функциональных устройств. Максимальная загрузка этих устройств зависит от оптимизации программ. Для сокращения влияния задержек при обращении к памяти в модулях процессора имеются буферная память большого объема и адресуемые регистры. В различных конфигурациях МСП может быть унипроцессором или мультипроцессором. В последнем случае выполняется одна программа, в которой имеются параллельные вычислительные ветви, которые могут выполняться на параллельных модулях скалярной активной обработки (МСА). В состав масштабируемого скалярного процессора входят модуль МДУ, один или несколько модулей МСА и оперативная память.

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

Следующей проблемой в скалярных процессорах является влияние задержек при обращении к памяти. Для сокращения этих задержек используется адресуемые регистры или кэш-память. Одним из подходов преодоления указанных задержек является т.н. multithreading. При этом программа разбивается на «легкие» процессы (threads – буквально нити), использующие единое адресное пространство, т.е. при переключении процессов не выполняется смена таблиц для преобразования виртуальных адресов в физические. На аппаратном уровне обеспечивается быстрое переключение процессора с одного такого процесса на другой с одновременным переключением контента процессов. Для хранения контента используется быстрая память, не создающая задержек для процессора. Подкачка этой памяти для неактивных процессов происходит параллельно с работой процессора. В процессорах с несколькими параллельно работающими функциональными устройствами возможно параллельное выполнение нескольких процессов. Такая организация называется simultenious multithreading. Указанные английские термины относятся и к программным, и к аппаратным средствам. В русской литературе как правило используется фонетическая калька – мультитредовая организация. С нашей точки зрения более адекватным термином может быть микромультпрограммирование. Подобный термин встречался и в англоязычной литературе на ранних этапах развития этих идей.

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

На схемотехническом уровне этот подход должен быть основан на принципе близкодействия, т.е. схемы, от которых зависит скорость работы, должны по возможности располагаться рядом. Функциональные устройства должны быть построены на синхронных конвейерных структурах. Целью при построении всех других схем должна быть максимальная загрузка функциональных устройств на реальных программах. Естественно, это также связано с созданием специальной методики программирования.

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

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

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

Отличительной чертой процессора является наличие последовательно соединенных функциональных устройств и локальной памяти для операндов и результатов операций. Группа таких устройств вместе с памятью и схемами управления может быть объединена в некоторый унифицированный модуль скалярной обработки (МСО). В минимальной конфигурации в состав модуля должны входить устройство сложения – вычитания чисел с плавающей запятой и устройство умножения – деления чисел с плавающей запятой. Учитывая тот факт, что основным режимом работы цепочки устройств является выполнение последовательных и связанных между собой команд, желательно обеспечить такой же режим и в самом модуле, т.е. возможность последовательной работы указанных устройств, при этом последовательность их работы должна задаваться программой. В состав модуля также входят адресуемые регистры, буферная память, входной и выходной коммутатор данных и схемы приема команд из соседнего модуля, выдачи команд в следующий модуль и схемы управления. Масштабируемый конвейерный скалярный процессор может иметь разные конфигурации и уровни масштабирования. Во-первых, в каждом процессоре может быть разное число модулей МСА, во-вторых, в цепочке может быть разное число модулей МСО, в состав которых в свою очередь может входить разное число функциональных устройств. Таким образом, может быть обеспечено распараллеливание ветвей одной программы и выполнение последовательности скалярных операций обработки различной длины.

 Масштабируемый векторный процессор. Основным назначением масштабируемого векторного процессора (МВП) является выполнение программ с явным параллелизмом на уровне данных. Такие программы для МВП должны быть векторизованы и ориентированы на выполнение сложных векторных операций.

В МВП используются две основные формы параллелизма:

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

·       параллельное выполнение групп векторных операций с помощью отдельных наборов устройств для выполнения векторных операций.

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

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

Архитектура мультипроцессоров и системы.  При построении системы и отдельных мультипроцессоров на аппаратном уровне необходимо обеспечить следующие функции:

·       обмен между процессорами;

·       обмен между устройствами памяти различных уровней иерархии;

·       ввод – вывод данных.

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

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

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

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

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

В скалярных мультипроцессорах на нижнем уровне достаточна двухразмерная сеть для построения кластеров, а на более высоком уровне также может использоваться однородная сеть для объединения кластеров. Эта сеть может использоваться и для объединения различных кластеров, например при построении мультиархитектурного мультипроцессора.

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

Возможности реализации системы и оценка производительности. Модульность и масштабируемость системы позволяют реализовывать широкий диапазон устройств – от персональных систем до суперсистем предельной производительности. Пиковая производительность зависит от тактовой частоты модулей и процессоров и общего числа модулей, а реальная производительность при решении задач также зависит от степени оптимизации и распараллеливания программ. Конструкция конкретной системы определяется уровнем технологии и заданными параметрами системы. Уровень технологии определяет тактовую частоту, количество и структуру процессоров, их модулей и параметры памяти, размещаемых на одном кристалле. Число кристаллов в свою очередь зависит от заданных параметров системы.

Рассмотрим пример. Допустим, что задана производительность 1 PFLOPS. Допустим также, что технологическая база обеспечивает тактовую частоту 1 ГГц. Для реализации такой системы необходимо объединение 1 млн. модулей, в каждом из которых выполняется одна операция в такт. Если в каждом процессоре параллельно работает 10 модулей, то в системе должно быть 100 тыс. процессоров, а если число модулей в процессоре достигнет 100, то число процессоров уменьшится до 10 тыс.

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

 Зарубежные исследования и разработки. Для сравнения описанного проекта с зарубежными исследованиями и разработками остановимся только на тех, где получены наиболее интересные результаты.

20 марта 2006 г. фирма Cray объявила о новой стратегии для следующего поколения суперкомпьютеров, основанной на концепции неоднородных вычислительных систем. Новые системы фирмы используют принцип адаптивных вычислений на суперкомпьютерах за счет объединения различных по архитектуре систем на единой платформе [16]. Этот подход рассматривается как изменение парадигмы вычислений [17]. На второй фазе работ планируется создание интегрированной мультиархитектурной системы. В ноябре 2007 года фирма Cray объявила о выпуске семейства суперкомпьютеров Cray XT5  и XT5h (h – гибридный), в состав которых входят кластерные, векторные и реконфигурируемые узлы, объединенные новой коммуникационной сетью с топологией трехмерного тора [18]. Основная вычислительная мощность в Cray XT5h обеспечивается векторными узлами Cray X2, Обе системы при соответствующем масштабировании могут обеспечить реальную производительность 1 PFLOPS. Фирмы IBM, Sony и Toshiba совместно разработали неоднородную многопроцессорную систему на одном кристалле в проекте Cell [19]. Планируется использовать различные модификации кристалла Cell для построения широкой номенклатуры устройств, включая суперкомпьютеры. Фирма IBM объявила  26 июня 2007 г. о проекте системы IBM Blue Gene/P с производительностью 1 PFLOPS [20], 13 мая 2008 г. – о завершении тестирования суперкомпьютера Roadrunner, построенного на кристаллах Opteron фирмы AMD и кристаллах Cell, изготовленных по технологии 65 нм. Этот суперкомпьютер станет первым компьютером, преодолевшим рубеж 1 PFLOPS [21, 22]. Основной вклад в производительность системы вносят более 12 тыс. кристаллов Cell с суммарной пиковой производительностью 1,3 PFLOPS, более 6 тыс. кристаллов Opteron имеют суммарную пиковую производительность 44 TFLOPS.

В Японии объявлено о проекте создания мультисистемы с производительностью 10 PFLOPS, состоящей из скалярных и векторных процессоров. К работе привлечены фирмы Hitachi, NEC и Fujitsu [23]. В марте 2008 г. фирма NEC и Токийский институт технологии объявили о начале работ по созданию неоднородной системы с производительностью 10 PFLOPS, в которой используются оптические связи между кристаллами [24].

Таким образом, ведущие суперкомпьютерные фирмы мира начали проводить исследования и разработки в том же направлении  и концептуально  повторяют результаты наших исследований вплоть до совпадения новых терминов [7, 12-15].

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

Данные исследования поддерживались грантами РФФИ, Миннауки и РАН.

ЛИТЕРАТУРА

1.     Митропольский Ю.И. Суперсистемы - следующий этап развития суперЭВМ // Информационные технологии и вычислительные системы. М.: ОИВТА РАН. ИВВС РАН, 1996. №1. С. 9 – 16.

2.     Earth Simulator. http://www.NEC/ES.

3.     Митропольский Ю.И. БЭСМ-6, АС-6 и их влияние на развитие  отечественной вычислительной техники // Информационные технологии и вычислительные системы. М.: ОИТВС РАН. ИМВС РАН, 2002. № 3. С. 49 – 58.

4.     Кузьмичев Д.А., Мельников В.А., Митропольский Ю.И., Смирнов В.И., Принципы составления документации для больших вычислительных машин // Доклад на Юбилейной научно-технической конференции, посвященной 25-летию Института точной механики и вычислительной техники АН СССР, ИТМ и ВТ АН СССР, М. - 1975. - С. 3 – 16.

5.     Мельников В.А., Митропольский Ю.И., Малинин А.И., Романков В.М., Требования к конструкции высокопроизводительных ЭВМ и проблемы ее реализации // Сборник “Вопросы кибернетики”, “Комплексное проектирование элементно-конструкторской базы суперЭВМ”, под ред. В.А. Мельникова и Ю.И.  Митропольского, НСК АН СССР, М. - 1988. - С.. 3 - 10.

6.     Мельников, В.А., Митропольский Ю.И., Шнитман В.З.  Научные, технологические и методические аспекты создания вычислительной системы «Электроника СС БИС – 1» // Юбилейный сборник трудов Отделения информатики, вычислительной техники и автоматизации Российской академии наук М.: ОИВТА РАН, 1993.  С. 28 – 41.

7.     Митропольский Ю.И. Концепции построения неоднородных вычислительных суперсистем // Сборник   «Распределенная обработка информации». Труды Пятого Международного семинара. Новосибирск: Институт физики полупроводников СО РАН. 1995. С. 42 – 46.

8.     Анохин А.В., Ленгник Л.М., Митропольский Ю.И., Пучков И.И. Архитектура неоднородной вычислительной суперсистемы // Сборник «Распределенная обработка информации»”. Труды Пятого Международного семинара, Новосибирск:  Институт физики полупроводников СО РАН.  1995. С. 22 – 27.

9.     Анохин А.В., Ленгник Л.М., Митропольский Ю.И., Пучков И.И. Архитектура и проблемы эффективности неоднородной вычислительной суперсистемы // Информационные технологии и вычислительные системы. М.: ОИВТА РАН, ИВВС РАН. 1997. №4. С. 12 -31

10. Анохин А.В., Ленгник Л.М., Митропольский Ю.И., Пучков И.И. Структура и состав неоднородной вычислительной суперсистемы // Сборник  «Вычислительные машины с нетрадиционной архитектурой. Супер ВМ». Выпуск 5. Неоднородные вычислительные суперсистемы. М.: ИВВС РАН. 1997. С. 3 – 14.

11. Митропольский Ю. И. Мультиконвейерный унипроцессор // Сборник  «Вычислительные машины с нетрадиционной архитектурой. Супер ВМ». Выпуск 5. Неоднородные вычислительные суперсистемы”. М.: ИВВС РАН. 1997. С. 50 – 64.

12. Митропольский Ю.И. Архитектура мультиконвейерного         модульного  масштабируемого унипроцессора //   Труды Шестого Международного семинара  «Распределенная обработка информации». Новосибирск: Институт физики полупроводников СО РАН. 1998. С. 30 - 34.

13. Митропольский Ю.И. Мультиархитектурная вычислительная суперсистема // Труды Первой Всероссийской научной конференции «Методы и средства обработки информации». М.: МГУ. 2003. С. 131 - 136.

14. Митропольский Ю.И. Мультиархитектура – новая парадигма для суперкомпьютеров // Электроника: наука, технология, бизнес. 2005. № 3. С. 42 – 47.

15. Митропольский Ю.И. Масштабируемый векторный процессор а составе мультиархитектурной суперсистемы // Труды Второй Всероссийской научной конференции «Методы и средства обработки информации». М.: МГУ. 2005. С. 47 – 52.

16. Cray Will Leverage an "Adaptive Supercomputing" Strategy to Deliver the Next Major Productivity Breakthrough. SEATTLE, WA, Mar 20, 2006. http://investors.cray.com.

17. Lazou, Christopher Cray's Adaptive Supercomputing - A Paradigm Shift.    March 24, 2006.  http://www.hpcwire.com/features.

18. Cray Introduces Next-Generation Supercomputers. Seattle, Wa, Nov 06, 2007. http://investors.cray.com/

19. Kahle J. A., Day M. N., Hofstee H. P., Johns C. R., Maeurer T. R., Shippy D. Introduction to the Cell multiprocessor // IBM Journal of Research and Development. VOL. 49, NO. 4/5. July/September 2005. P. 589 - 603.

20. IBM Blue Gene team Overview of the IBM Blue Gene/P project IBM Journal of Research and Development. VOL. 52, NO. 1/2 January/March 2008. P. 199 – 220.

21. Merritt, Rick IBM Shifts Cell to 65 Nanometers. May 13, 2008. http://www.hpcwire.com/news.

22. Gaudin, Sharon. IBM set to test the fastest computer in the world. May 13, 2008. http://www.computerworld.com.

23. Nozawa, Tetsuo. Next-Generation Supercomputer to Be Scalar/Vector Multi-System, Developed by Hitachi, NEC and Fujitsu. Jun 14, 2007. Nikkei Electronics. http://techon.nikkeibp.co.jp/english/NEWS_EN.

24.  Booth, Nick. NEC claims 10-Petaflop supercomputing breakthrough. March, 2008.  http://www.theinquirer.net/gb/inquirer/news/ .