Подходы к архитектуре суперкомпьютеров претерпели кардинальные изменения с момента появления первых систем в 1960-х годах. Ранние архитектуры суперкомпьютеров, разработанные Сеймуром Крейем, опирались на компактные инновационные конструкции и локальный параллелизм для достижения превосходной вычислительной пиковой производительности. [1] Однако со временем потребность в увеличении вычислительной мощности открыла эру массивно-параллельных систем.
В то время как суперкомпьютеры 1970-х годов использовали всего несколько процессоров , в 1990-х годах начали появляться машины с тысячами процессоров, и к концу 20-го века нормой стали массивно-параллельные суперкомпьютеры с десятками тысяч коммерческих готовых процессоров. Суперкомпьютеры 21-го века могут использовать более 100 000 процессоров (некоторые из них являются графическими устройствами ), соединенных быстрыми соединениями. [2] [3]
На протяжении десятилетий управление плотностью тепла оставалось ключевой проблемой для большинства централизованных суперкомпьютеров. [4] [5] [6] Большое количество тепла, вырабатываемого системой, может также иметь другие последствия, такие как сокращение срока службы других компонентов системы. [7] Существовали различные подходы к управлению теплом, от прокачки Fluorinert через систему до гибридной системы жидкостно-воздушного охлаждения или воздушного охлаждения с обычными температурами кондиционирования воздуха . [8] [9]
Системы с огромным числом процессоров обычно выбирают один из двух путей: в одном подходе, например, в грид-вычислениях, вычислительная мощность большого числа компьютеров в распределенных, разнообразных административных доменах используется по мере необходимости, когда компьютер доступен. [10] В другом подходе большое число процессоров используется в непосредственной близости друг от друга, например, в компьютерном кластере . В такой централизованной массивно-параллельной системе скорость и гибкость межсоединений становятся очень важными, и современные суперкомпьютеры используют различные подходы, начиная от усовершенствованных систем Infiniband и заканчивая трехмерными торовыми межсоединениями . [11] [12]
С конца 1960-х годов рост мощности и распространение суперкомпьютеров были драматичными, и основные архитектурные направления этих систем претерпели существенные изменения. В то время как ранние суперкомпьютеры полагались на небольшое количество тесно связанных процессоров, которые имели доступ к общей памяти , суперкомпьютеры 21-го века используют более 100 000 процессоров, соединенных быстрыми сетями. [2] [3]
На протяжении десятилетий управление плотностью тепла оставалось ключевой проблемой для большинства централизованных суперкомпьютеров. [4] Девиз Сеймура Крэя «выводим тепло» был центральным в его философии проектирования и продолжает оставаться ключевой проблемой в архитектурах суперкомпьютеров, например, в таких масштабных экспериментах, как Blue Waters . [4] [5] [6] Большое количество тепла, вырабатываемого системой, может также иметь другие эффекты, такие как сокращение срока службы других компонентов системы. [7]
Существуют различные подходы к управлению теплом, например , Cray 2 прокачивает Fluorinert через систему, в то время как System X использует гибридную жидкостно-воздушную систему охлаждения, а Blue Gene/P охлаждается воздухом при обычных температурах кондиционирования воздуха . [8] [13] [14] Тепло от суперкомпьютера Aquasar используется для обогрева университетского городка. [15] [16]
Плотность тепла, генерируемого суперкомпьютером, напрямую зависит от типа процессора, используемого в системе, причем более мощные процессоры, как правило, генерируют больше тепла, учитывая схожие базовые полупроводниковые технологии . [7] В то время как ранние суперкомпьютеры использовали несколько быстрых, тесно упакованных процессоров, которые использовали преимущества локального параллелизма (например, конвейерную обработку и векторную обработку ), со временем количество процессоров росло, и вычислительные узлы могли размещаться дальше, например, в компьютерном кластере , или могли быть географически рассредоточены в сетевых вычислениях . [2] [17] По мере роста количества процессоров в суперкомпьютере « частота отказов компонентов » начинает становиться серьезной проблемой. Если суперкомпьютер использует тысячи узлов, каждый из которых может выходить из строя в среднем один раз в год, то система будет испытывать несколько отказов узлов каждый день. [9]
Поскольку соотношение цены и производительности графических процессоров общего назначения (GPGPU) улучшилось, ряд суперкомпьютеров с петафлопсной производительностью, таких как Tianhe-I и Nebulae, начали полагаться на них. [18] Однако другие системы, такие как компьютер K, продолжают использовать обычные процессоры, такие как конструкции на базе SPARC , и общая применимость GPGPU в высокопроизводительных вычислительных приложениях общего назначения стала предметом дебатов, поскольку, хотя GPGPU можно настроить на хорошие результаты в определенных тестах, его общая применимость к повседневным алгоритмам может быть ограничена, если не будут приложены значительные усилия для настройки приложения в соответствии с этим. [19] Однако графические процессоры набирают популярность, и в 2012 году суперкомпьютер Jaguar был преобразован в Titan путем замены центральных процессоров на графические процессоры. [20] [21] [22]
По мере увеличения числа независимых процессоров в суперкомпьютере, способ, которым они получают доступ к данным в файловой системе , и то, как они совместно используют и получают доступ к вторичным ресурсам хранения, становится значимым. За эти годы было разработано несколько систем для распределенного управления файлами , например , IBM General Parallel File System , BeeGFS , Parallel Virtual File System , Hadoop и т. д. [23] [24] Ряд суперкомпьютеров из списка TOP100 , таких как Tianhe-I, используют файловую систему Linux Lustre . [4]
Серия компьютеров CDC 6600 была очень ранней попыткой суперкомпьютеров и получила свое преимущество над существующими системами, переложив работу на периферийные устройства , освободив центральный процессор (ЦП) для обработки фактических данных. С компилятором Minnesota FORTRAN 6600 мог поддерживать 500 килофлопс на стандартных математических операциях. [25]
Другие ранние суперкомпьютеры, такие как Cray 1 и Cray 2 , которые появились позже, использовали небольшое количество быстрых процессоров, которые работали согласованно и были равномерно подключены к самому большому объему общей памяти , который можно было управлять в то время. [3]
Эти ранние архитектуры ввели параллельную обработку на уровне процессора с такими инновациями, как векторная обработка , при которой процессор может выполнять несколько операций за один такт , вместо того чтобы ждать последовательных циклов.
Со временем, по мере увеличения числа процессоров, возникли различные архитектурные проблемы. Две проблемы, которые необходимо решать по мере увеличения числа процессоров, — это распределение памяти и обработка. В подходе с распределенной памятью каждый процессор физически упакован близко к некоторой локальной памяти. Память, связанная с другими процессорами, затем «отдаляется» на основе параметров пропускной способности и задержки при неравномерном доступе к памяти .
В 1960-х годах конвейеризация рассматривалась как инновация, а к 1970-м годам использование векторных процессоров было хорошо устоявшимся. К 1980-м годам многие суперкомпьютеры использовали параллельные векторные процессоры. [2]
Относительно небольшое количество процессоров в ранних системах позволяло им легко использовать архитектуру общей памяти , которая позволяет процессорам получать доступ к общему пулу памяти. В ранние дни распространенным подходом было использование равномерного доступа к памяти (UMA), при котором время доступа к ячейке памяти было одинаковым для всех процессоров. Использование неравномерного доступа к памяти (NUMA) позволяло процессору получать доступ к собственной локальной памяти быстрее, чем к другим ячейкам памяти, в то время как архитектуры памяти только с кэшем (COMA) позволяли использовать локальную память каждого процессора в качестве кэша, что требовало координации при изменении значений памяти. [26]
По мере увеличения числа процессоров эффективная межпроцессорная связь и синхронизация на суперкомпьютере становится проблемой. Для достижения этой цели можно использовать ряд подходов. Например, в начале 1980-х годов в системе Cray X-MP использовались общие регистры . При таком подходе все процессоры имели доступ к общим регистрам , которые не перемещали данные вперед и назад, а использовались только для межпроцессорной связи и синхронизации. Однако присущие проблемы управления большим объемом общей памяти среди многих процессоров привели к переходу к более распределенным архитектурам . [27]
В 1980-х годах, по мере увеличения спроса на вычислительную мощность, началась тенденция к значительно большему количеству процессоров, что ознаменовало начало эпохи массивно-параллельных систем с распределенной памятью и распределенными файловыми системами , [2] учитывая, что архитектуры с общей памятью не могли масштабироваться до большого количества процессоров. [28] Гибридные подходы, такие как распределенная общая память, также появились после ранних систем. [29]
Подход к кластеризации компьютеров объединяет ряд легкодоступных вычислительных узлов (например, персональных компьютеров, используемых в качестве серверов) через быструю частную локальную сеть . [30] Действия вычислительных узлов координируются «кластерным промежуточным программным обеспечением», программным слоем, который находится поверх узлов и позволяет пользователям рассматривать кластер как в целом одну связную вычислительную единицу, например, с помощью концепции единого образа системы . [30]
Кластеризация компьютеров основана на централизованном подходе к управлению, который делает узлы доступными как оркестрованные общие серверы . Это отличается от других подходов, таких как одноранговые или сеточные вычисления , которые также используют много узлов, но с гораздо более распределенной природой . [30] К 21-му веку полугодовой список организации TOP500 из 500 самых быстрых суперкомпьютеров часто включает в себя много кластеров, например, самый быстрый в мире в 2011 году компьютер K с распределенной памятью , кластерной архитектурой. [31] [32]
При использовании большого количества локальных полунезависимых вычислительных узлов (например, в кластерной архитектуре) скорость и гибкость межсоединения становятся очень важными. Современные суперкомпьютеры используют различные подходы для решения этой проблемы, например, Tianhe-1 использует фирменную высокоскоростную сеть на основе Infiniband QDR, улучшенную с помощью процессоров FeiTeng-1000 . [4] С другой стороны, система Blue Gene /L использует трехмерное торовое межсоединение со вспомогательными сетями для глобальных коммуникаций. [11] При таком подходе каждый узел соединен со своими шестью ближайшими соседями. Похожий тор использовался Cray T3E . [12]
Массивные централизованные системы иногда используют специализированные процессоры, разработанные для конкретного приложения, и могут использовать микросхемы программируемых пользователем вентильных матриц (FPGA) для повышения производительности за счет отказа от универсальности. Примерами специализированных суперкомпьютеров являются Belle [33] , Deep Blue [34] и Hydra [35] для игры в шахматы , Gravity Pipe для астрофизики [36] , MDGRAPE-3 для вычисления структуры белка молекулярной динамики [37] и Deep Crack [38] для взлома шифра DES .
Сетевые вычисления используют большое количество компьютеров в распределенных, разнообразных административных доменах. Это оппортунистический подход, который использует ресурсы всякий раз, когда они доступны. [10] Примером является BOINC — добровольная , добровольная сеточная система. [ 39] Некоторые приложения BOINC достигли многопетафлопсных уровней, используя около полумиллиона компьютеров, подключенных к Интернету, всякий раз, когда добровольные ресурсы становятся доступными. [40] Однако эти типы результатов часто не появляются в рейтингах TOP500 , поскольку они не запускают универсальный бенчмарк Linpack .
Хотя сетевые вычисления имели успех в параллельном выполнении задач, требовательные суперкомпьютерные приложения, такие как моделирование погоды или вычислительная гидродинамика, оставались вне досягаемости, отчасти из-за барьеров в надежном суб-назначении большого количества задач, а также надежной доступности ресурсов в определенный момент времени. [39] [41] [42]
В квазиоппортунистических суперкомпьютерах большое количество географически разнесенных компьютеров организовано со встроенными защитными мерами . [43] Квазиоппортунистический подход выходит за рамки добровольных вычислений в высокораспределенных системах, таких как BOINC , или общих вычислений в сетке в такой системе, как Globus, позволяя промежуточному программному обеспечению предоставлять почти бесшовный доступ ко многим вычислительным кластерам, так что существующие программы на таких языках, как Fortran или C, могут быть распределены между несколькими вычислительными ресурсами. [43]
Квазиоппортунистические суперкомпьютеры нацелены на предоставление более высокого качества обслуживания, чем оппортунистическое распределение ресурсов . [44] Квазиоппортунистический подход позволяет выполнять требовательные приложения в компьютерных сетях, устанавливая соглашения о распределении ресурсов на уровне сети; и отказоустойчивую передачу сообщений для абстрактной защиты от сбоев базовых ресурсов, тем самым поддерживая некоторый оппортунизм, при этом обеспечивая более высокий уровень контроля. [10] [43] [45]
Архитектура суперкомпьютера IBM Blue Gene с воздушным охлаждением жертвует скоростью процессора ради низкого энергопотребления, чтобы большее количество процессоров могло использоваться при комнатной температуре, используя обычное кондиционирование воздуха. [14] [46] Система Blue Gene/P второго поколения имеет процессоры с интегрированной логикой связи между узлами. [47] Она энергоэффективна, достигая 371 MFLOPS/Вт . [48]
Компьютер K — это охлаждаемая водой , однородная процессорная система с распределенной памятью и кластерной архитектурой . [32] [49] Он использует более 80 000 процессоров SPARC64 VIIIfx , каждый с восемью ядрами , что в общей сложности составляет более 700 000 ядер — почти вдвое больше, чем любая другая система. Он включает в себя более 800 шкафов, каждый с 96 вычислительными узлами (каждый с 16 ГБ памяти) и 6 узлами ввода-вывода. Хотя он мощнее, чем следующие пять систем в списке TOP500 вместе взятые, при 824,56 MFLOPS/W он имеет самое низкое отношение мощности к производительности среди всех современных крупных суперкомпьютерных систем. [50] [51] Последующая система для компьютера K, называемая PRIMEHPC FX10 , использует то же самое шестимерное торическое соединение, но по-прежнему только один процессор на узел. [52]
В отличие от компьютера K, система Tianhe-1A использует гибридную архитектуру и объединяет центральные и графические процессоры. [4] Она использует более 14 000 процессоров общего назначения Xeon и более 7 000 графических процессоров общего назначения (GPGPU) Nvidia Tesla на примерно 3 500 блейдах . [53] Она имеет 112 компьютерных шкафов и 262 терабайта распределенной памяти; 2 петабайта дискового хранилища реализованы через кластеризованные файлы Lustre . [54] [55] [56] [4] Tianhe-1 использует собственную высокоскоростную коммуникационную сеть для соединения процессоров. [4] Собственная сеть межсоединений была основана на Infiniband QDR, улучшенной с помощью китайских процессоров FeiTeng-1000 . [4] В случае межсоединений система в два раза быстрее Infiniband, но медленнее, чем некоторые межсоединения на других суперкомпьютерах. [57]
Пределы конкретных подходов продолжают проверяться, поскольку границы достигаются посредством крупномасштабных экспериментов, например, в 2011 году IBM прекратила свое участие в проекте Blue Waters Petaflops в Университете Иллинойса. [58] [59] Архитектура Blue Waters была основана на процессоре IBM POWER7 и предполагала наличие 200 000 ядер с петабайтом «глобально адресуемой памяти» и 10 петабайт дискового пространства. [6] Цель устойчивого петафлопса привела к выбору дизайна, который оптимизировал производительность одного ядра и, следовательно, меньшее количество ядер. Затем ожидалось, что меньшее количество ядер поможет повысить производительность программ, которые плохо масштабировались для большого количества процессоров. [6] Большая архитектура глобально адресуемой памяти была направлена на эффективное решение проблем адресации памяти для одного и того же типа программ. [6] Ожидалось, что Blue Waters будет работать на постоянной скорости не менее одного петафлопса и полагался на определенный подход с водяным охлаждением для управления теплом. За первые четыре года работы Национальный научный фонд потратил на проект около 200 миллионов долларов. Вскоре после этого IBM выпустила вычислительный узел Power 775, созданный на основе технологии этого проекта, но фактически отказалась от подхода Blue Waters. [58] [59]
Архитектурные эксперименты продолжаются в ряде направлений, например, система Cyclops64 использует подход «суперкомпьютер на чипе», в направлении от использования массивных распределенных процессоров. [60] [61] Каждый 64-битный чип Cyclops64 содержит 80 процессоров, и вся система использует архитектуру памяти с глобальной адресацией . [62] Процессоры соединены с помощью не блокирующего изнутри перекрестного коммутатора и взаимодействуют друг с другом через глобальную чередующуюся память. В архитектуре нет кэша данных , но половина каждого банка SRAM может использоваться как память scratchpad. [62] Хотя этот тип архитектуры допускает неструктурированный параллелизм в динамически несмежной системе памяти, он также создает проблемы в эффективном отображении параллельных алгоритмов в многоядерной системе. [61]
{{cite journal}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite book}}
: |journal=
проигнорировано ( помощь )