stringtranslate.com

Операционная система суперкомпьютера

Операционная система суперкомпьютера — это операционная система , предназначенная для суперкомпьютеров . С конца 20-го века операционные системы суперкомпьютеров претерпели значительные изменения, поскольку в архитектуре суперкомпьютеров произошли фундаментальные изменения . [1] В то время как ранние операционные системы были индивидуально адаптированы для каждого суперкомпьютера для увеличения скорости, тенденция отходит от внутренних операционных систем и переходит к некоторой форме Linux , [2] при этом она работает на всех суперкомпьютерах в списке TOP500 в ноябре 2017 года. В 2021 году 10 лучших компьютеров работают, например, под управлением Red Hat Enterprise Linux (RHEL) или какой-либо его версии или другого дистрибутива Linux , например Ubuntu .

Учитывая, что современные суперкомпьютеры с массовым параллелизмом обычно разделяют вычисления от других служб, используя несколько типов узлов , они обычно используют разные операционные системы на разных узлах, например, используя небольшое и эффективное легковесное ядро , такое как Compute Node Kernel (CNK) или Compute Node Linux (CNL) на вычислительных узлах, но более крупную систему, такую ​​как дистрибутив Linux, на серверах и узлах ввода-вывода (I/O). [3] [4]

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

Хотя большинство современных суперкомпьютеров используют операционную систему Linux, [6] каждый производитель внес свои собственные изменения в используемый им дистрибутив Linux, и не существует отраслевого стандарта, отчасти потому, что различия в аппаратной архитектуре требуют изменений для оптимизации операционной системы под каждую аппаратную конструкцию. [1] [7]

Операционные системы, используемые на 500 лучших суперкомпьютерах

Контекст и обзор

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

Суперкомпьютерный центр NASA Ames

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

К началу 1990-х годов в программном обеспечении суперкомпьютерных систем произошли серьезные изменения. [1] К этому времени растущее использование Unix начало менять способ рассмотрения системного программного обеспечения. Использование языка высокого уровня ( C ) для реализации операционной системы и опора на стандартизированные интерфейсы контрастировали с подходами, ориентированными на язык ассемблера в прошлом. [1] По мере того, как поставщики оборудования адаптировали Unix к своим системам, в Unix добавлялись новые и полезные функции, например, быстрые файловые системы и настраиваемые планировщики процессов . [1] Однако все компании, которые адаптировали Unix, вносили в него уникальные изменения, а не сотрудничали над отраслевым стандартом для создания «Unix для суперкомпьютеров». Это было отчасти потому, что различия в их архитектурах требовали этих изменений для оптимизации Unix для каждой архитектуры. [1]

По мере того, как операционные системы общего назначения становились стабильными, суперкомпьютеры начали заимствовать и адаптировать критический системный код из них и полагаться на богатый набор вторичных функций, которые были с ними. [1] Однако в то же время размер кода для операционных систем общего назначения быстро рос. К тому времени, когда код на основе Unix достиг длины 500 000 строк, его обслуживание и использование стали проблемой. [1] Это привело к переходу на использование микроядер , которые использовали минимальный набор функций операционной системы. Такие системы, как Mach в Университете Карнеги-Меллона и ChorusOS в INRIA, были примерами ранних микроядер. [1]

Разделение операционной системы на отдельные компоненты стало необходимым, поскольку суперкомпьютеры разработали различные типы узлов, например, вычислительные узлы против узлов ввода-вывода. Таким образом, современные суперкомпьютеры обычно используют различные операционные системы на разных узлах, например, используя небольшое и эффективное легковесное ядро, такое как CNK или CNL, на вычислительных узлах, но более крупную систему, такую ​​как производная Linux , на серверах и узлах ввода-вывода. [3] [4]

Ранние системы

Первый Cray-1 (образец показан с внутренними компонентами) был доставлен заказчику без операционной системы. [8]

CDC 6600 , который обычно считается первым суперкомпьютером в мире, работал под управлением операционной системы Chippewa , которая затем была развернута на различных других компьютерах серии CDC 6000. [9] Chippewa была довольно простой системой, ориентированной на управление заданиями, производной от более ранней CDC 3000 , но она оказала влияние на более поздние системы KRONOS и SCOPE . [9] [10]

Первый Cray-1 был доставлен в Лос-Аламосскую лабораторию без операционной системы или какого-либо другого программного обеспечения. [11] В Лос-Аламосе для него было разработано прикладное программное обеспечение и операционная система. [11] Основная система разделения времени для Cray 1, Cray Time Sharing System (CTSS), была затем разработана в Ливерморской лаборатории как прямой потомок Livermore Time Sharing System (LTSS) для операционной системы CDC 6600 двадцатилетней давности. [11]

При разработке суперкомпьютеров рост затрат на программное обеспечение вскоре стал доминирующим фактором, о чем свидетельствует тот факт, что в 1980-х годах стоимость разработки программного обеспечения в Cray выросла до уровня стоимости оборудования. [2] Эта тенденция частично обусловила переход от собственной операционной системы Cray к системе UNICOS на основе Unix . [2] В 1985 году Cray-2 стала первой системой, поставляемой с операционной системой UNICOS. [12]

Примерно в то же время ETA Systems разработала операционную систему EOS для использования в своих суперкомпьютерах ETA10 . [13] Написанная на Cybil , языке, похожем на Pascal, от Control Data Corporation , EOS выдвинула на первый план проблемы стабильности при разработке стабильных операционных систем для суперкомпьютеров, и в конечном итоге на той же машине была предложена Unix-подобная система. [13] [14] Уроки, извлеченные из разработки системного программного обеспечения ETA, включали высокий уровень риска, связанный с разработкой новой операционной системы для суперкомпьютера, и преимущества использования Unix с его большой существующей базой библиотек системного программного обеспечения. [13]

К середине 1990-х годов, несмотря на существовавшие инвестиции в старые операционные системы, тенденция была направлена ​​на использование систем на основе Unix, которые также способствовали использованию интерактивных графических пользовательских интерфейсов (GUI) для научных вычислений на нескольких платформах. [15] Движение к потребительской ОС имело противников, которые ссылались на быстрый темп и направленность разработки Linux как на основное препятствие для принятия. [16] Как написал один автор, «Linux, скорее всего, догонит, но у нас уже есть крупномасштабные системы». Тем не менее, эта тенденция продолжала набирать обороты, и к 2005 году практически все суперкомпьютеры использовали некоторые Unix-подобные ОС. [17] Эти варианты Unix включали IBM AIX , систему Linux с открытым исходным кодом и другие адаптации, такие как UNICOS от Cray. [17] К концу 20-го века Linux, как предполагалось, занимал самую большую долю пирога суперкомпьютеров. [1] [18]

Современные подходы

Суперкомпьютер Blue Gene /P в Аргоннской национальной лаборатории

Суперкомпьютер IBM Blue Gene использует операционную систему CNK на вычислительных узлах, но использует модифицированное ядро ​​на основе Linux, называемое I/O Node Kernel ( INK ) на узлах ввода-вывода. [3] [19] CNK — это легковесное ядро , которое работает на каждом узле и поддерживает одно приложение, запущенное для одного пользователя на этом узле. Ради эффективной работы дизайн CNK был сохранен простым и минимальным, с физической памятью, статически отображаемой, и CNK не нуждается и не обеспечивает планирование или переключение контекста. [3] CNK даже не реализует файловый ввод-вывод на вычислительном узле, а делегирует это выделенным узлам ввода-вывода. [19] Однако, учитывая, что на Blue Gene несколько вычислительных узлов совместно используют один узел ввода-вывода, операционная система узла ввода-вывода требует многозадачности, отсюда и выбор операционной системы на основе Linux. [3] [19]

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

Некоторые, но не все планировщики суперкомпьютеров пытаются поддерживать локальность выполнения заданий. Планировщик PBS Pro, используемый в системах Cray XT3 и Cray XT4, не пытается оптимизировать локальность на своем трехмерном торическом соединении , а просто использует первый доступный процессор. [20] С другой стороны, планировщик IBM на суперкомпьютерах Blue Gene стремится использовать локальность и минимизировать сетевое соперничество, назначая задачи из одного и того же приложения на одну или несколько средних плоскостей группы узлов 8x8x8. [20] Планировщик Slurm Workload Manager использует алгоритм наилучшего соответствия и выполняет планирование кривой Гильберта для оптимизации локальности назначений задач. [20] Несколько современных суперкомпьютеров, таких как Tianhe-2, используют Slurm, который разрешает конфликты за ресурсы во всей системе. Slurm — это открытый исходный код , работающий на базе Linux, очень масштабируемый и способный управлять тысячами узлов в компьютерном кластере с постоянной пропускной способностью более 100 000 заданий в час. [21] [22]

Смотрите также

Ссылки

  1. ^ abcdefghijklm Энциклопедия параллельных вычислений Дэвида Падуи, ISBN 2011 г.  0-387-09765-1, страницы 426–429.
  2. ^ abcde Знающие машины: очерки о технических изменениях Дональда Маккензи 1998 ISBN 0-262-63188-1 стр. 149–151. 
  3. ^ abcde Euro-Par 2004 Параллельная обработка: 10-я Международная конференция Euro-Par 2004, Марко Данелутто, Марко Ваннески и Доменико Лафоренца ISBN 3-540-22924-8 , стр. 835. 
  4. ^ ab Оценка Oak Ridge National Laboratory Cray XT3 Садафа Р. Алама и др., Международный журнал по высокопроизводительным вычислительным приложениям, февраль 2008 г., т. 22, № 1, 52–80.
  5. ^ abc Открытая архитектура управления заданиями для суперкомпьютера Blue Gene/L Ярива Аридора и др. в Стратегиях планирования заданий для параллельной обработки Дрора Г. Фейтельсона 2005 ISBN 978-3-540-31024-2 страницы 95–101. 
  6. ^ Vaughn-Nichols, Steven J. (18 июня 2013 г.). «Linux продолжает править суперкомпьютерами». ZDNet . Получено 20 июня 2013 г. .
  7. ^ "Top500 OS chart". Top500.org. Архивировано из оригинала 2012-03-05 . Получено 2010-10-31 .
  8. ^ Нацеливание на компьютер: государственная поддержка и международная конкуренция Кеннета Фламма 1987 ISBN 0-8157-2851-4 страница 82 [1] 
  9. ^ ab Компьютерная революция в Канаде , Джон Н. Вардалас, 2001, ISBN 0-262-22064-4 , стр. 258. 
  10. Проектирование компьютера: Control Data 6600 Джеймса Э. Торнтона, Скотт, Foresman Press 1970 стр. 163.
  11. ^ abc Нацеливание на компьютер: государственная поддержка и международная конкуренция Кеннета Фламма 1987 ISBN 0-8157-2851-4 страницы 81–83. 
  12. ^ Лестер Т. Дэвис, Баланс сил, краткая история аппаратных архитектур Cray Research в книге «Высокопроизводительные вычисления: технология, методы и приложения» Дж. Дж. Донгарры, 1995 г., ISBN 0-444-82163-5 , стр. 126 [2]. 
  13. ^ abc Ллойд М. Торндайк, Распад систем ETA в книге «Frontiers of Supercomputing II» Карин Р. Эймс, Алана Бреннера, 1994 ISBN 0-520-08401-2 , страницы 489–497. 
  14. ^ Прошлое, настоящее, параллельное: обзор доступных параллельных компьютерных систем Артура Трю 1991 ISBN 3-540-19664-1 стр. 326. 
  15. Frontiers of Supercomputing II Карин Р. Эймс, Алан Бреннер 1994 ISBN 0-520-08401-2 страница 356. 
  16. ^ Брайтвелл, Рон Райзен, Рольф Маккабе, Артур. «О целесообразности использования массовых операционных систем для крупномасштабных сбалансированных вычислительных систем» (PDF) . Получено 29 января 2013 г.{{cite web}}: CS1 maint: несколько имен: список авторов ( ссылка )
  17. ^ ab Getting to speed: the future of supercomputing Сьюзен Л. Грэм, Марк Снир, Синтия А. Паттерсон, Национальный исследовательский совет 2005 ISBN 0-309-09502-6 стр. 136. 
  18. Журнал Forbes, 15.03.05: Linux правит суперкомпьютерами
  19. ^ abc Euro-Par 2006 Параллельная обработка: 12-я Международная конференция Euro-Par , 2006, Вольфганг Э. Нагель, Вольфганг В. Вальтер и Вольфганг Ленер ISBN 3-540-37783-2
  20. ^ abc Стратегии планирования заданий для параллельной обработки: Эйтан Фрахтенберг и Уве Швигельшон 2010 ISBN 3-642-04632-0 страницы 138–144. 
  21. ^ SLURM в SchedMD
  22. ^ Джетт, М. и М. Грондона, SLURM: Простая утилита Linux для управления ресурсами в трудах конференции ClusterWorld, Сан-Хосе, Калифорния, июнь 2003 г. [3]