Выпуск #3-4/1998
Ю. Митропольский
Суперкомпьютеры и микропроцессоры. Каким будет их завтрашний день?
Суперкомпьютеры и микропроцессоры. Каким будет их завтрашний день?
Просмотры: 2712
В последние годы в области компьютерной техники наблюдается интересная ситуация: темпы роста производительности микропроцессоров превосходят рост быстродействия суперкомпьютеров. Более того, в суперкомпьютерах широко используются массовые микропроцессоры. Растет и степень интеграции СБИС. В этих условиях необходимы новые подходы к разработке архитектуры как микропроцессоров, так и суперкомпьютеров. Особую актуальность приобретает вопрос о создании специализированных СБИС для суперкомпьютеров и использовании их вместо универсальных микропроцессоров либо вместе с ними. Автор излагает свой взгляд на перспективы развития суперкомпьютерных систем, анализируя основные факторы, влияющие на этот процесс.
Развитие вычислительных систем с наивысшей производительностью (суперкомпьютеров) тесно связано с новейшими технологическими достижениями, в первую очередь в области микроэлектроники. Предполагает оно и решение энергетических проблем, задач оптимальной компоновки и межсоединений. В суперкомпьютерах стремятся объединить максимально возможное с технологической точки зрения число логических схем и элементов памяти. Для работы на высокой частоте эти схемы должны быть объединены в предельно компактной конструкции, чтобы сократить потери сигналов в межсоединениях. Увеличение плотности компоновки как на уровне интегральных схем, так и на уровне модулей и устройств приводит к увеличению удельной мощности питания и удельного тепловыделения. В этих условиях необходимы эффективные методы разводки шин питания и средства отвода тепла, в частности жидкостные или фреоновые системы охлаждения. Поэтому остро стоит проблема создания интегрированных систем моделирования, разработки, верификации, изготовления и контроля изделий. Только такие системы способны обеспечить приемлемые технико-экономические показатели разработки в целом.
В то же время развитие микроэлектроники, в первую очередь микропроцессоров, было бы невозможно без того задела в архитектуре и в методах повышения производительности, который накоплен при разработке суперкомпьютеров. Более того, в применяемых для создания микропроцессоров мощных САПР в качестве инструментальных средств часто используют суперкомпьютеры. Трудно переоценить значение суперкомпьютеров и в таких областях, как ядерная физика, астрофизика, геофизика, метеорология, биология, биомедицина, проектирование летательных аппаратов, где чрезвычайно важную роль играет математическое моделирование. Повышение производительности вычислительных систем увеличивает точность моделей и сокращает время вычислений.
Рост производительности вычислительных систем достигается путем повышения тактовой частоты при увеличении быстродействия логических элементов, повышения степени параллелизма за счет объединения в системе большого числа одновременно работающих логических, вычислительных и запоминающих устройств, а также путем совершенствования алгоритмов решения прикладных задач и повышения эффективности программного обеспечения. За последние 25 лет тактовая частота микропроцессоров увеличилась с 1 до 600 МГц, в векторных суперкомпьютерах – с 80 до 500 МГц. Производительность возросла соответственно с 0,1 MFLOPS до 1,2 GFLOPS и с 160 MFLOPS до 32 GFLOPS, т.е. повышение степени параллелизма в микропроцессорах и суперкомпьютерах позволило увеличить быстродействие соответственно в 20 и 50 раз.
Еще более резко пиковая производительность возросла в современных системах с массовым параллелизмом, создаваемых на основе объединения тысяч высокопроизводительных микропроцессоров. Так, в системе T3E фирмы Cray Research, включающей в себя до 2048 микропроцессоров, пиковая производительность достигает 2,5 ТFLOPS. Таким образом, за 30 лет (в середине 60-х годов был преодолен рубеж 1 МFLOPS) производительность на аппаратном уровне поднялась более чем в миллион раз. Оценить рост эффективности алгоритмов и программ сложнее. Однако можно утверждать, что только их совершенствование не может обеспечить роста производительности, соизмеримого с ее ростом на аппаратном уровне [1].
Известны две основные разновидности архитектуры суперсистем [2]. Первая разновидность – векторные машины, основанные на предельной тактовой частоте и конвейерных структурах. В них одновременно выполняются операции в рамках векторной команды и несколько векторных или скалярных команд. Машины такого типа прошли несколько этапов развития – от реализации на ИС среднего уровня интеграции до выполнения на специализированных наборах СБИС, технологически близких к новейшим микропроцессорам. Вторая разновидность – системы с массовым параллелизмом. Их развитие началось еще до появления микропроцессоров. Предпринимались попытки создавать специализированные СБИС для таких систем (например, транспьютеры). Однако они не выдержали конкуренции с универсальными микропроцессорами, разработанными для машин массового применения. На аппаратном уровне построение систем массового параллелизма сопряжено с разработкой специализированных СБИС для коммутации и обмена данными между узлами системы, состоящими из одного или нескольких микропроцессоров и локальной памяти.
Рассмотрим четыре уровня параллелизма, поддерживаемого в современных вычислительных системах.
Параллелизм данных используется в векторных суперкомпьютерах. Он эффективен при наличии наборов данных, требующих одинаковых программ обработки. Этот механизм наиболее распространен в процессорах с конвейерной структурой, для которой характерны высокая тактовая частота и возможность получения нескольких результатов вычислений за один такт. Кроме конвейерных структур иногда используют схемы с несколькими параллельными неконвейерными функциональными устройствами, а также комбинированные варианты.
При параллелизме команд [3] одновременно происходит выборка, дешифрация и выполнение нескольких команд. Обычно в этом случае используется конвейерная схемотехника, а также несколько параллельных функциональных устройств. В скалярных процессорах различают два варианта такой организации:
– процессоры с длинным командным словом, когда при подготовке программы происходит статическое планирование. При этом в каждое командное слово помещается информация для нескольких операций, выполняемых на параллельных функциональных устройствах;
– суперскалярные процессоры с динамическим планированием. В данном случае для анализа программы и определения возможности параллельного выполнения команд используются аппаратные методы. Иногда команды выполняются не в той последовательности, в которой они были заданы в программе. Это повышает эффективность использования параллелизма, однако резко усложняет аппаратные средства. Параллелизм команд используется и в векторных процессорах для распараллеливания как скалярных, так и векторных операций.
Параллелизм потоков команд [4] позволяет минимизировать задержки вычислений процессора, связанные с ожиданием данных из внешних устройств, в частности из оперативной памяти. Традиционно быстродействие памяти и процессора согласуют различными методами буферизации. Так, адресуемые регистры (скалярные или векторные) позволяют статически планировать предварительную выборку данных, в результате чего время ожидания данных процессором резко сокращается. При динамической буферизации используют кэш-память, т.е. буфер, скрытый от программиста, в котором хранятся наиболее часто используемые данные. Однако по мере развития технологии диспропорция между быстродействием запоминающих устройств и процессора увеличивается. Поэтому были предложены другие методы сокращения влияния задержек на общую производительность системы. Один из них – параллелизм потоков команд. При ожидании данных из памяти в процессоре происходит переключение с одного потока команд на другой. Интервал между переключениями равен времени выполнения одной или нескольких команд. Одновременно с переключением программ переключаются и доступные процессору регистры — так называемая контекстная замена. Таким образом, задержки обращения к памяти могут быть скрыты выполнением процессором других потоков команд. Особенно эффективны методы параллельных команд и их потоков в сочетании с векторной обработкой [5].
Параллелизм программ применим, когда большая задача разбивается на независимые программные модули, выполняемые одновременно на параллельных процессорах. Этот вид параллелизма реализуют в мультипроцессорных и мультикомпьютерных системах. В мультипроцессорных системах обычно используется общая для всех процессоров память и локальные буферные запоминающие устройства. Обмен между программами, выполняемыми на разных процессорах, происходит путем обращения к общим ячейкам и массивам памяти. В мультикомпьютерных системах каждый процессор связан только со своей оперативной памятью, а для объединения всех компьютеров служит система коммутации. Имеются и комбинированные системы, где в качестве узла выступает не унипроцессорный компьютер, а кластер, фактически являющийся мультипроцессорной подсистемой. Важным стимулом развития таких систем стало появление высокопроизводительных микропроцессоров, по производительности и стоимости более конкурентоспособных, чем заказные и специализированные интегральные схемы.
Однако только аппаратных средств реализации параллелизма часто недостаточно, чтобы существенно повысить производительность. Как правило, необходимы программы, включающие новые алгоритмы, параллельные языки программирования, программные средства распараллеливания и оптимизации программ на уровне трансляторов и операционных систем. Один из ключевых вопросов – выявление скрытого параллелизма в программах. Он решается посредством анализа программных циклов, зависимостей между операциями, графов вычислений, представленных в виде потока данных, и других свойств программ [6].
Высокая степень параллелизма достигается в вычислительных машинах с управлением от потока данных (в отличие от обычного управления от потока команд). В них реализована идея инициирования операции на основе анализа готовности операндов. Для поиска пары готовых операндов используется ассоциативная память, где операнды хранятся вместе с их ярлыками (тэгами), по совпадению которых определяется операнд-напарник [7].
В реальных высокопроизводительных системах обычно комбинируются различные средства обеспечения параллелизма. Отметим, что степень параллелизма в первую очередь зависит от уровня технологии. Кроме того, критически важные потоки информации должны проходить по кратчайшему пути, в идеале – только между соседними элементами. Наилучшим образом данному критерию отвечают такие структуры, как конвейерные и типа двухразмерной сети. Но создать их можно только в пределах одного процессора, и они не могут быть в полной мере реализованы на уровне связей между процессорами и памятью, а также между узлами в мультипроцессорных и мультикомпьютерных системах. Желательно также, чтобы схемы управления выполнением команд и их последовательностей были достаточно компактны, а сигналы управления формировались не в результате выполнения операций обработки данных (исключая операции условного перехода). Этому требованию отвечают, например, синхронные конвейерные схемы. Все модули системы должны быть функционально законченными, что уменьшает число контактов и сокращает потери на линиях связи между ними.
Из-за высокой сложности современных СБИС, в частности микропроцессоров, стоимость разработки и производства новых СБИС окупается только при значительном их тиражировании [8]. Поэтому специализированные СБИС для суперкомпьютеров, выпускаемые малыми сериями, будут иметь либо более низкую степень интеграции и, соответственно, худшие параметры, либо очень высокую цену. Ближайшие перспективы развития микроэлектроники связывают с кристаллами, содержащими от 100 млн. до 1 млрд. транзисторов, что на один-два порядка больше, чем в новейших микропроцессорах. По-видимому, в силу экономических причин основные усилия будут сосредоточены на создании кристаллов для вычислительных машин массового применения. При этом возможны три подхода к архитектуре кристаллов:
– разработка интегральных структур, объединяющих на одном кристалле процессор, оперативную память и другие элементы персонального компьютера [9];
– получение на одном кристалле мультипроцессорных структур на базе схемотехники и топологии современных микропроцессоров [10];
– создание новых архитектур унипроцессоров с более высокой производительностью.
Очевидно, что только третье направление закладывает основы для развития как машин массового применения, так и суперсистем. Однако при повышении производительности одного процессора приходится отводить значительную площадь для кэш-памяти второго уровня и схем предварительного анализа условных переходов. В результате только небольшая часть кристалла остается для собственно функциональных устройств [11].
Требования к машинам массового применения и суперсистемам существенно различаются. В системах массового применения стремятся уменьшить или сохранить на прежнем уровне физический объем, энергопотребление, отводимое тепло и стоимость. Постоянное удорожание разработок и технологического оборудования компенсируется увеличением выпуска продукции. Аналогичные соображения верны и для программных продуктов. В итоге большие вложения оказываются оправданными. В суперсистемах основная цель – предельная производительность. Поэтому требования к физическим и энергетическим параметрам связаны прежде всего с техническими проблемами объединения оборудования в единой конструкции, а также с такими показателями, как удельные энергопотребление и тепловыделение. Немалые расходы на разработку аппаратных средств таких систем сильно влияют на стоимость, так как число производимых изделий невелико.
Задачи, решаемые на суперсистемах, условно можно разделить на две категории – одноразового (ограниченного) и многоразового (постоянного) использования. Для последних особенно важно сокращение времени выполнения. Затраты на разработку таких программ могут быть весьма велики. Оптимальное решение прежде всего связано с выбором методов и алгоритмов вычислений, в наибольшей степени соответствующих архитектуре и формам параллелизма системы. Если это не приносит желаемого результата, наилучший выход из положения — создание специализированной аппаратуры и программного обеспечения, наиболее полно учитывающих особенности задачи [12]. В результате суммарные затраты могут оказаться даже меньше, чем при использовании серийной суперсистемы и, что еще важнее, достигается предельная производительность. Разумеется, столь радикальный подход целесообразен только при выполнении уникальных задач. В остальных случаях хорошим решением служит создание систем, ориентированных на разные формы параллелизма. При этом возможны два подхода.
Во-первых, архитектуру системы можно изменять (программировать) в соответствии с особенностями алгоритмов и программ. Для этого понадобится много дополнительного оборудования, не используемого при собственно вычислениях. Однако процесс программирования архитектуры и изменения конфигурации системы требует дополнительных ресурсов. Кроме того, из-за наличия коммутирующей и другой вспомогательной аппаратуры возникают потери, снижающие производительность основного оборудования.
Во-вторых, возможно объединение в единой тесно связанной системе вычислительных подсистем с разными формами параллелизма. В каждой из них достижима предельная производительность, и они способны работать параллельно. Однако для реализации этих возможностей требуются механизмы распределения частей задачи между подсистемами. Кроме того, необходимо снижать потери, возникающие при доступе вычислительных подсистем к общим ресурсам, прежде всего к общей памяти.
Создание специализированных, перестраиваемых или неоднородных суперсистем связано с разработкой специализированных СБИС и модулей. Естественно, что в макетных или исследовательских образцах применимы серийные ИС и программируемые матричные схемы. Но достичь предельной производительности можно только с помощью специализированных СБИС. Правда, в некоторых подсистемах не исключается использование наиболее высокопроизводительных микропроцессоров, тем более что сегодня наметилась тенденция к разработке микропроцессоров, ориентированных не только на машины массового применения, но и на системы с высокой степенью параллелизма.
Создание специализированных СБИС экономически оправдано при наличии интегрированных средств автоматизированного проектирования, изготовления и контроля. С помощью таких систем создается элементная база не только для суперсистем, но и для ряда других электронных изделий. Современные САПР, базирующиеся на мощных рабочих станциях, составляют значительную часть подобных интегрированных систем. С точки зрения производства перспективно создание заводов с мини-атмосферами, где можно выпускать небольшие партии схем с очень высокой степенью интеграции. Важно и то, что стоимость таких производств в несколько раз ниже, чем традиционных [13].
В высокопроизводительных системах заметную роль играют оптоэлектронные и оптические методы обработки информации. Оптоэлектронные устройства весьма перспективны для средств передачи данных и коммутации на всех уровнях вычислительных и коммуникационных систем, а также для создания различных видов памяти. Однако в области процессоров и других логических устройств микроэлектроника не имеет конкурентов.
Чтобы подтвердить сказанное, рассмотрим некоторые результаты исследований в области архитектуры неоднородных вычислительных суперсистем [14, 15]. Проведенные работы показали возможность достижения двух взаимодополняющих целей: повышения эффективности аппаратных средств путем специализации, а также более эффективного выполнения больших задач за счет оптимального распределения их фрагментов с разными формами параллелизма на уровне алгоритмов и программ по соответствующим вычислительным структурам. В предлагаемой вычислительной структуре заложена масштабируемость и модульность как всей системы, так и отдельных подсистем, что достигнуто благодаря возможности объединения до восьми основных вычислительных модулей. Каждый модуль состоит из модульного мультипроцессора, модульного унипроцессора и общей оперативной памяти. Неоднородность структуры вычислительных средств обеспечивает ориентация мультипроцессора на параллелизм программ, а унипроцессора – на векторную обработку.
Мультипроцессор может быть реализован на наиболее высокопроизводительных микропроцессорах (в перспективе следует ожидать роста их производительности до 4 GFLOPS). При 2048 микропроцессорах интегральная производительность мультипроцессора составит 8 TFLOPS [16].
Унипроцессор предназначен для решения конвейеризуемых или векторизуемых фрагментов задач, в особенности для вычисления сложных векторных выражений. Такая специализация существенно повышает его производительность за счет объединения в виде последовательных цепочек и параллельных ветвей большого числа конвейерных модулей. Модули содержат набор конвейерных функциональных устройств, регистры для векторных и скалярных операндов и коммутатор входов/выходов модуля и его внутренних устройств. При выполнении длинных цепочек векторных операций в нескольких модулях, благодаря их параллельной работе в каждой операции, возможно получение десятков, а в ряде программ и сотен результатов в такт. В перспективе на кристаллах, содержащих более 100 млн. транзисторов, можно будет разместить восемь модулей с общей пиковой производительностью 32 результата в такт. При объединении в унипроцессоре 32 таких кристаллов его производительность составит 1024 результата в такт, что на частоте 4 ГГц соответствует 4 GFLOPS [17]. Пиковая производительность вычислительной суперсистемы, состоящей из восьми основных вычислительных модулей, может достичь 100 TFLOPS.
Кроме основных вычислительных модулей в состав системы входят системная и дисковая память, а также мониторно-моделирующая подсистема, выполняющая анализ, распределение и оптимизацию задач. Отметим, что потребляемая мощность и, соответственно, отводимое тепло для мультипроцессора или унипроцессора составит ~6 КВт, основного вычислительного модуля с оперативной памятью – 20 КВт, всей системы – 200 КВт. Очевидно, что в этих условиях необходимо жидкостное охлаждение.
Создание и использование суперкомпьютеров – одна из стратегических задач государства, обеспечивающая его независимость при проведении фундаментальных исследований и создании высокотехнологичной продукции. Обычные рыночные механизмы недостаточны для поддержки исследований и разработок в области суперкомпьютеров из-за их высокой стоимости и малого числа потребителей, большую часть которых составляют организации, финансируемые государством. Не случайно в США работы в области суперкомпьютеров многие годы велись либо по прямым заказам правительства, либо в рамках специальных государственных программ. Сейчас в Соединенных Штатах реализуется программа, цель которой — к 2005 году увеличить производительность серийно выпускаемых суперкомпьютеров до 100 TFLOPS [18]. Исследования и разработки в области микропроцессоров, имеющие большое значение и для создания суперкомпьютеров, постоянно поддерживало Министерство обороны США, что помогло американским фирмам занять монопольное положение на рынке микропроцессоров [19].
Совершенно очевидно, что для создания отечественных суперкомпьютерных систем и сокращения отставания нашей страны в этой области необходима государственная программа, включающая фундаментальные исследования по архитектуре, математическому и программному обеспечению, микроэлектронике, оптоэлектронике и другим физико-технологическим основам суперсистем. В программу должны входить и прикладные разработки по всему спектру необходимых технологий, компонентов, устройств и систем. Такая программа станет катализатором подъема вычислительной техники, информатики и других сфер науки и техники России [20].
Литература
1. Marksteiner P. Perspectives on Supercomputing: Three Decades of Change. – Computer, N 10, 1996.
3. Sima D. Superscalar Instruction Issue. – IEEE Micro, N 5, 1995.
4. Eggers S. J. at al. Simultaneous Multitreading: A Platform for Next-Generation Processors. – IEEE Micro,N 5, 1995.
5. Espasa R., Valero M. Exploiting Instruction-and Data-Level Parallelism. – IEEE Micro, N 5, 1995.
6. Smith J. E., Vajapeyam S. Trace Processors: Moving to Fourth-Generation Microarchitectures. – Computer, 1997, N 9.
7. Kozyrakis C. E. at al. Scalabale Processors in the Billion – Transistor Era: IRAM. – Computer, 1997, N 9.
8. Slater M. The Microprocessor Today. – IEEE Micro, 1996, N6.
9. Yu A. The Future of Microprocessor. – IEEE Micro, 1996, N6.
10. Hammond L., Neyfeh B. A., Olucotun K. A Single-Chip Multiprocessor. – Computer, 1997, N 9.
11. Patt Y. N. at al. One Billion Transistors, One Uniprocessor, One Chip. – Computer, 1997, N 9.
12. Makino J., Taiji M. Computational Astrophysics on a Special-Purpose Machine. – Computers in Physics, 1996, N 4.
13. Валиев К., Орликовский А. Технологии СБИС. Основные тенденции развития. – Электроника: Наука, Технология, Бизнес, 1996, N5-6.
14. Митропольский Ю. И. Концепции построения неоднородных вычислительных суперсистем. В сб.: Распределенная обработка информации. Труды Пятого международного семинара. — Новосибирск, 1995.
15. Анохин А. В., Ленгник Л. М., Митропольский Ю. И., Пучков И. И. Архитектура и проблемы эффективности неоднородной вычислительной суперсистемы. – Информационные технологии и вычислительные системы, 1997, N 4.
16. Анохин А. В. Мультипроцессор-многопроцессорная иерархическая подсистема основного вычислительного модуля. — Вычислительные машины с нетрадиционной архитектурой. СуперЭВМ.– Сб. ИВВС РАН, 1997, вып.5.
17. Митропольский Ю. И. Мультиконвейерный унипроцессор. – Там же.
18. Clark D. Breaking the Teraflops Barrier. – Computer, 1997, N 2.
19. Goodwin I. Intel, Motorola and Advanced Micro Devices Enlist 3 DOE Labs to Develop New Computer Chips. – Physics Today, 1997, N 10.
20. Бурцев В.С. О необходимости создания суперЭВМ в России. – Информационные технологии и вычислительные системы, 1995, N 1.
В то же время развитие микроэлектроники, в первую очередь микропроцессоров, было бы невозможно без того задела в архитектуре и в методах повышения производительности, который накоплен при разработке суперкомпьютеров. Более того, в применяемых для создания микропроцессоров мощных САПР в качестве инструментальных средств часто используют суперкомпьютеры. Трудно переоценить значение суперкомпьютеров и в таких областях, как ядерная физика, астрофизика, геофизика, метеорология, биология, биомедицина, проектирование летательных аппаратов, где чрезвычайно важную роль играет математическое моделирование. Повышение производительности вычислительных систем увеличивает точность моделей и сокращает время вычислений.
Рост производительности вычислительных систем достигается путем повышения тактовой частоты при увеличении быстродействия логических элементов, повышения степени параллелизма за счет объединения в системе большого числа одновременно работающих логических, вычислительных и запоминающих устройств, а также путем совершенствования алгоритмов решения прикладных задач и повышения эффективности программного обеспечения. За последние 25 лет тактовая частота микропроцессоров увеличилась с 1 до 600 МГц, в векторных суперкомпьютерах – с 80 до 500 МГц. Производительность возросла соответственно с 0,1 MFLOPS до 1,2 GFLOPS и с 160 MFLOPS до 32 GFLOPS, т.е. повышение степени параллелизма в микропроцессорах и суперкомпьютерах позволило увеличить быстродействие соответственно в 20 и 50 раз.
Еще более резко пиковая производительность возросла в современных системах с массовым параллелизмом, создаваемых на основе объединения тысяч высокопроизводительных микропроцессоров. Так, в системе T3E фирмы Cray Research, включающей в себя до 2048 микропроцессоров, пиковая производительность достигает 2,5 ТFLOPS. Таким образом, за 30 лет (в середине 60-х годов был преодолен рубеж 1 МFLOPS) производительность на аппаратном уровне поднялась более чем в миллион раз. Оценить рост эффективности алгоритмов и программ сложнее. Однако можно утверждать, что только их совершенствование не может обеспечить роста производительности, соизмеримого с ее ростом на аппаратном уровне [1].
Известны две основные разновидности архитектуры суперсистем [2]. Первая разновидность – векторные машины, основанные на предельной тактовой частоте и конвейерных структурах. В них одновременно выполняются операции в рамках векторной команды и несколько векторных или скалярных команд. Машины такого типа прошли несколько этапов развития – от реализации на ИС среднего уровня интеграции до выполнения на специализированных наборах СБИС, технологически близких к новейшим микропроцессорам. Вторая разновидность – системы с массовым параллелизмом. Их развитие началось еще до появления микропроцессоров. Предпринимались попытки создавать специализированные СБИС для таких систем (например, транспьютеры). Однако они не выдержали конкуренции с универсальными микропроцессорами, разработанными для машин массового применения. На аппаратном уровне построение систем массового параллелизма сопряжено с разработкой специализированных СБИС для коммутации и обмена данными между узлами системы, состоящими из одного или нескольких микропроцессоров и локальной памяти.
Рассмотрим четыре уровня параллелизма, поддерживаемого в современных вычислительных системах.
Параллелизм данных используется в векторных суперкомпьютерах. Он эффективен при наличии наборов данных, требующих одинаковых программ обработки. Этот механизм наиболее распространен в процессорах с конвейерной структурой, для которой характерны высокая тактовая частота и возможность получения нескольких результатов вычислений за один такт. Кроме конвейерных структур иногда используют схемы с несколькими параллельными неконвейерными функциональными устройствами, а также комбинированные варианты.
При параллелизме команд [3] одновременно происходит выборка, дешифрация и выполнение нескольких команд. Обычно в этом случае используется конвейерная схемотехника, а также несколько параллельных функциональных устройств. В скалярных процессорах различают два варианта такой организации:
– процессоры с длинным командным словом, когда при подготовке программы происходит статическое планирование. При этом в каждое командное слово помещается информация для нескольких операций, выполняемых на параллельных функциональных устройствах;
– суперскалярные процессоры с динамическим планированием. В данном случае для анализа программы и определения возможности параллельного выполнения команд используются аппаратные методы. Иногда команды выполняются не в той последовательности, в которой они были заданы в программе. Это повышает эффективность использования параллелизма, однако резко усложняет аппаратные средства. Параллелизм команд используется и в векторных процессорах для распараллеливания как скалярных, так и векторных операций.
Параллелизм потоков команд [4] позволяет минимизировать задержки вычислений процессора, связанные с ожиданием данных из внешних устройств, в частности из оперативной памяти. Традиционно быстродействие памяти и процессора согласуют различными методами буферизации. Так, адресуемые регистры (скалярные или векторные) позволяют статически планировать предварительную выборку данных, в результате чего время ожидания данных процессором резко сокращается. При динамической буферизации используют кэш-память, т.е. буфер, скрытый от программиста, в котором хранятся наиболее часто используемые данные. Однако по мере развития технологии диспропорция между быстродействием запоминающих устройств и процессора увеличивается. Поэтому были предложены другие методы сокращения влияния задержек на общую производительность системы. Один из них – параллелизм потоков команд. При ожидании данных из памяти в процессоре происходит переключение с одного потока команд на другой. Интервал между переключениями равен времени выполнения одной или нескольких команд. Одновременно с переключением программ переключаются и доступные процессору регистры — так называемая контекстная замена. Таким образом, задержки обращения к памяти могут быть скрыты выполнением процессором других потоков команд. Особенно эффективны методы параллельных команд и их потоков в сочетании с векторной обработкой [5].
Параллелизм программ применим, когда большая задача разбивается на независимые программные модули, выполняемые одновременно на параллельных процессорах. Этот вид параллелизма реализуют в мультипроцессорных и мультикомпьютерных системах. В мультипроцессорных системах обычно используется общая для всех процессоров память и локальные буферные запоминающие устройства. Обмен между программами, выполняемыми на разных процессорах, происходит путем обращения к общим ячейкам и массивам памяти. В мультикомпьютерных системах каждый процессор связан только со своей оперативной памятью, а для объединения всех компьютеров служит система коммутации. Имеются и комбинированные системы, где в качестве узла выступает не унипроцессорный компьютер, а кластер, фактически являющийся мультипроцессорной подсистемой. Важным стимулом развития таких систем стало появление высокопроизводительных микропроцессоров, по производительности и стоимости более конкурентоспособных, чем заказные и специализированные интегральные схемы.
Однако только аппаратных средств реализации параллелизма часто недостаточно, чтобы существенно повысить производительность. Как правило, необходимы программы, включающие новые алгоритмы, параллельные языки программирования, программные средства распараллеливания и оптимизации программ на уровне трансляторов и операционных систем. Один из ключевых вопросов – выявление скрытого параллелизма в программах. Он решается посредством анализа программных циклов, зависимостей между операциями, графов вычислений, представленных в виде потока данных, и других свойств программ [6].
Высокая степень параллелизма достигается в вычислительных машинах с управлением от потока данных (в отличие от обычного управления от потока команд). В них реализована идея инициирования операции на основе анализа готовности операндов. Для поиска пары готовых операндов используется ассоциативная память, где операнды хранятся вместе с их ярлыками (тэгами), по совпадению которых определяется операнд-напарник [7].
В реальных высокопроизводительных системах обычно комбинируются различные средства обеспечения параллелизма. Отметим, что степень параллелизма в первую очередь зависит от уровня технологии. Кроме того, критически важные потоки информации должны проходить по кратчайшему пути, в идеале – только между соседними элементами. Наилучшим образом данному критерию отвечают такие структуры, как конвейерные и типа двухразмерной сети. Но создать их можно только в пределах одного процессора, и они не могут быть в полной мере реализованы на уровне связей между процессорами и памятью, а также между узлами в мультипроцессорных и мультикомпьютерных системах. Желательно также, чтобы схемы управления выполнением команд и их последовательностей были достаточно компактны, а сигналы управления формировались не в результате выполнения операций обработки данных (исключая операции условного перехода). Этому требованию отвечают, например, синхронные конвейерные схемы. Все модули системы должны быть функционально законченными, что уменьшает число контактов и сокращает потери на линиях связи между ними.
Из-за высокой сложности современных СБИС, в частности микропроцессоров, стоимость разработки и производства новых СБИС окупается только при значительном их тиражировании [8]. Поэтому специализированные СБИС для суперкомпьютеров, выпускаемые малыми сериями, будут иметь либо более низкую степень интеграции и, соответственно, худшие параметры, либо очень высокую цену. Ближайшие перспективы развития микроэлектроники связывают с кристаллами, содержащими от 100 млн. до 1 млрд. транзисторов, что на один-два порядка больше, чем в новейших микропроцессорах. По-видимому, в силу экономических причин основные усилия будут сосредоточены на создании кристаллов для вычислительных машин массового применения. При этом возможны три подхода к архитектуре кристаллов:
– разработка интегральных структур, объединяющих на одном кристалле процессор, оперативную память и другие элементы персонального компьютера [9];
– получение на одном кристалле мультипроцессорных структур на базе схемотехники и топологии современных микропроцессоров [10];
– создание новых архитектур унипроцессоров с более высокой производительностью.
Очевидно, что только третье направление закладывает основы для развития как машин массового применения, так и суперсистем. Однако при повышении производительности одного процессора приходится отводить значительную площадь для кэш-памяти второго уровня и схем предварительного анализа условных переходов. В результате только небольшая часть кристалла остается для собственно функциональных устройств [11].
Требования к машинам массового применения и суперсистемам существенно различаются. В системах массового применения стремятся уменьшить или сохранить на прежнем уровне физический объем, энергопотребление, отводимое тепло и стоимость. Постоянное удорожание разработок и технологического оборудования компенсируется увеличением выпуска продукции. Аналогичные соображения верны и для программных продуктов. В итоге большие вложения оказываются оправданными. В суперсистемах основная цель – предельная производительность. Поэтому требования к физическим и энергетическим параметрам связаны прежде всего с техническими проблемами объединения оборудования в единой конструкции, а также с такими показателями, как удельные энергопотребление и тепловыделение. Немалые расходы на разработку аппаратных средств таких систем сильно влияют на стоимость, так как число производимых изделий невелико.
Задачи, решаемые на суперсистемах, условно можно разделить на две категории – одноразового (ограниченного) и многоразового (постоянного) использования. Для последних особенно важно сокращение времени выполнения. Затраты на разработку таких программ могут быть весьма велики. Оптимальное решение прежде всего связано с выбором методов и алгоритмов вычислений, в наибольшей степени соответствующих архитектуре и формам параллелизма системы. Если это не приносит желаемого результата, наилучший выход из положения — создание специализированной аппаратуры и программного обеспечения, наиболее полно учитывающих особенности задачи [12]. В результате суммарные затраты могут оказаться даже меньше, чем при использовании серийной суперсистемы и, что еще важнее, достигается предельная производительность. Разумеется, столь радикальный подход целесообразен только при выполнении уникальных задач. В остальных случаях хорошим решением служит создание систем, ориентированных на разные формы параллелизма. При этом возможны два подхода.
Во-первых, архитектуру системы можно изменять (программировать) в соответствии с особенностями алгоритмов и программ. Для этого понадобится много дополнительного оборудования, не используемого при собственно вычислениях. Однако процесс программирования архитектуры и изменения конфигурации системы требует дополнительных ресурсов. Кроме того, из-за наличия коммутирующей и другой вспомогательной аппаратуры возникают потери, снижающие производительность основного оборудования.
Во-вторых, возможно объединение в единой тесно связанной системе вычислительных подсистем с разными формами параллелизма. В каждой из них достижима предельная производительность, и они способны работать параллельно. Однако для реализации этих возможностей требуются механизмы распределения частей задачи между подсистемами. Кроме того, необходимо снижать потери, возникающие при доступе вычислительных подсистем к общим ресурсам, прежде всего к общей памяти.
Создание специализированных, перестраиваемых или неоднородных суперсистем связано с разработкой специализированных СБИС и модулей. Естественно, что в макетных или исследовательских образцах применимы серийные ИС и программируемые матричные схемы. Но достичь предельной производительности можно только с помощью специализированных СБИС. Правда, в некоторых подсистемах не исключается использование наиболее высокопроизводительных микропроцессоров, тем более что сегодня наметилась тенденция к разработке микропроцессоров, ориентированных не только на машины массового применения, но и на системы с высокой степенью параллелизма.
Создание специализированных СБИС экономически оправдано при наличии интегрированных средств автоматизированного проектирования, изготовления и контроля. С помощью таких систем создается элементная база не только для суперсистем, но и для ряда других электронных изделий. Современные САПР, базирующиеся на мощных рабочих станциях, составляют значительную часть подобных интегрированных систем. С точки зрения производства перспективно создание заводов с мини-атмосферами, где можно выпускать небольшие партии схем с очень высокой степенью интеграции. Важно и то, что стоимость таких производств в несколько раз ниже, чем традиционных [13].
В высокопроизводительных системах заметную роль играют оптоэлектронные и оптические методы обработки информации. Оптоэлектронные устройства весьма перспективны для средств передачи данных и коммутации на всех уровнях вычислительных и коммуникационных систем, а также для создания различных видов памяти. Однако в области процессоров и других логических устройств микроэлектроника не имеет конкурентов.
Чтобы подтвердить сказанное, рассмотрим некоторые результаты исследований в области архитектуры неоднородных вычислительных суперсистем [14, 15]. Проведенные работы показали возможность достижения двух взаимодополняющих целей: повышения эффективности аппаратных средств путем специализации, а также более эффективного выполнения больших задач за счет оптимального распределения их фрагментов с разными формами параллелизма на уровне алгоритмов и программ по соответствующим вычислительным структурам. В предлагаемой вычислительной структуре заложена масштабируемость и модульность как всей системы, так и отдельных подсистем, что достигнуто благодаря возможности объединения до восьми основных вычислительных модулей. Каждый модуль состоит из модульного мультипроцессора, модульного унипроцессора и общей оперативной памяти. Неоднородность структуры вычислительных средств обеспечивает ориентация мультипроцессора на параллелизм программ, а унипроцессора – на векторную обработку.
Мультипроцессор может быть реализован на наиболее высокопроизводительных микропроцессорах (в перспективе следует ожидать роста их производительности до 4 GFLOPS). При 2048 микропроцессорах интегральная производительность мультипроцессора составит 8 TFLOPS [16].
Унипроцессор предназначен для решения конвейеризуемых или векторизуемых фрагментов задач, в особенности для вычисления сложных векторных выражений. Такая специализация существенно повышает его производительность за счет объединения в виде последовательных цепочек и параллельных ветвей большого числа конвейерных модулей. Модули содержат набор конвейерных функциональных устройств, регистры для векторных и скалярных операндов и коммутатор входов/выходов модуля и его внутренних устройств. При выполнении длинных цепочек векторных операций в нескольких модулях, благодаря их параллельной работе в каждой операции, возможно получение десятков, а в ряде программ и сотен результатов в такт. В перспективе на кристаллах, содержащих более 100 млн. транзисторов, можно будет разместить восемь модулей с общей пиковой производительностью 32 результата в такт. При объединении в унипроцессоре 32 таких кристаллов его производительность составит 1024 результата в такт, что на частоте 4 ГГц соответствует 4 GFLOPS [17]. Пиковая производительность вычислительной суперсистемы, состоящей из восьми основных вычислительных модулей, может достичь 100 TFLOPS.
Кроме основных вычислительных модулей в состав системы входят системная и дисковая память, а также мониторно-моделирующая подсистема, выполняющая анализ, распределение и оптимизацию задач. Отметим, что потребляемая мощность и, соответственно, отводимое тепло для мультипроцессора или унипроцессора составит ~6 КВт, основного вычислительного модуля с оперативной памятью – 20 КВт, всей системы – 200 КВт. Очевидно, что в этих условиях необходимо жидкостное охлаждение.
Создание и использование суперкомпьютеров – одна из стратегических задач государства, обеспечивающая его независимость при проведении фундаментальных исследований и создании высокотехнологичной продукции. Обычные рыночные механизмы недостаточны для поддержки исследований и разработок в области суперкомпьютеров из-за их высокой стоимости и малого числа потребителей, большую часть которых составляют организации, финансируемые государством. Не случайно в США работы в области суперкомпьютеров многие годы велись либо по прямым заказам правительства, либо в рамках специальных государственных программ. Сейчас в Соединенных Штатах реализуется программа, цель которой — к 2005 году увеличить производительность серийно выпускаемых суперкомпьютеров до 100 TFLOPS [18]. Исследования и разработки в области микропроцессоров, имеющие большое значение и для создания суперкомпьютеров, постоянно поддерживало Министерство обороны США, что помогло американским фирмам занять монопольное положение на рынке микропроцессоров [19].
Совершенно очевидно, что для создания отечественных суперкомпьютерных систем и сокращения отставания нашей страны в этой области необходима государственная программа, включающая фундаментальные исследования по архитектуре, математическому и программному обеспечению, микроэлектронике, оптоэлектронике и другим физико-технологическим основам суперсистем. В программу должны входить и прикладные разработки по всему спектру необходимых технологий, компонентов, устройств и систем. Такая программа станет катализатором подъема вычислительной техники, информатики и других сфер науки и техники России [20].
Литература
1. Marksteiner P. Perspectives on Supercomputing: Three Decades of Change. – Computer, N 10, 1996.
3. Sima D. Superscalar Instruction Issue. – IEEE Micro, N 5, 1995.
4. Eggers S. J. at al. Simultaneous Multitreading: A Platform for Next-Generation Processors. – IEEE Micro,N 5, 1995.
5. Espasa R., Valero M. Exploiting Instruction-and Data-Level Parallelism. – IEEE Micro, N 5, 1995.
6. Smith J. E., Vajapeyam S. Trace Processors: Moving to Fourth-Generation Microarchitectures. – Computer, 1997, N 9.
7. Kozyrakis C. E. at al. Scalabale Processors in the Billion – Transistor Era: IRAM. – Computer, 1997, N 9.
8. Slater M. The Microprocessor Today. – IEEE Micro, 1996, N6.
9. Yu A. The Future of Microprocessor. – IEEE Micro, 1996, N6.
10. Hammond L., Neyfeh B. A., Olucotun K. A Single-Chip Multiprocessor. – Computer, 1997, N 9.
11. Patt Y. N. at al. One Billion Transistors, One Uniprocessor, One Chip. – Computer, 1997, N 9.
12. Makino J., Taiji M. Computational Astrophysics on a Special-Purpose Machine. – Computers in Physics, 1996, N 4.
13. Валиев К., Орликовский А. Технологии СБИС. Основные тенденции развития. – Электроника: Наука, Технология, Бизнес, 1996, N5-6.
14. Митропольский Ю. И. Концепции построения неоднородных вычислительных суперсистем. В сб.: Распределенная обработка информации. Труды Пятого международного семинара. — Новосибирск, 1995.
15. Анохин А. В., Ленгник Л. М., Митропольский Ю. И., Пучков И. И. Архитектура и проблемы эффективности неоднородной вычислительной суперсистемы. – Информационные технологии и вычислительные системы, 1997, N 4.
16. Анохин А. В. Мультипроцессор-многопроцессорная иерархическая подсистема основного вычислительного модуля. — Вычислительные машины с нетрадиционной архитектурой. СуперЭВМ.– Сб. ИВВС РАН, 1997, вып.5.
17. Митропольский Ю. И. Мультиконвейерный унипроцессор. – Там же.
18. Clark D. Breaking the Teraflops Barrier. – Computer, 1997, N 2.
19. Goodwin I. Intel, Motorola and Advanced Micro Devices Enlist 3 DOE Labs to Develop New Computer Chips. – Physics Today, 1997, N 10.
20. Бурцев В.С. О необходимости создания суперЭВМ в России. – Информационные технологии и вычислительные системы, 1995, N 1.
Отзывы читателей