Операционная система суперкомпьютера
— Операционная система суперкомпьютера это операционная система, предназначенная для суперкомпьютеров . С конца 20-го века операционные системы суперкомпьютеров претерпели серьезные трансформации, поскольку произошли фундаментальные изменения в архитектуре суперкомпьютеров . [1] В то время как ранние операционные системы были специально адаптированы для каждого суперкомпьютера для повышения скорости, тенденция отошла от собственных операционных систем к той или иной форме Linux . [2] при этом в ноябре 2017 года на нем работали все суперкомпьютеры из списка TOP500 . В 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]

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

В 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]
Ранние системы
[ редактировать ]
CDC 6600 , обычно считающийся первым суперкомпьютером в мире, работал под управлением операционной системы Chippewa , которая затем была развернута на различных других серии CDC 6000 . компьютерах [9] Chippewa была довольно простой системой, ориентированной на управление заданиями, созданной на основе более ранней CDC 3000 , но она повлияла на более поздние KRONOS и SCOPE . системы [9] [10]
Первый Cray-1 был доставлен в лабораторию Лос-Аламоса без операционной системы или какого-либо другого программного обеспечения. [11] Лос-Аламос разработал для него прикладное программное обеспечение и операционную систему. [11] Основная система разделения времени для Cray 1, система разделения времени Cray (CTSS), была затем разработана в Ливерморской лаборатории как прямой потомок Ливерморской системы разделения времени (LTSS) для операционной системы CDC 6600, созданной двадцатью годами ранее. [11]
При разработке суперкомпьютеров рост стоимости программного обеспечения вскоре стал доминирующим, о чем свидетельствует то, что в 1980-х годах стоимость разработки программного обеспечения в Cray выросла до уровня стоимости аппаратного обеспечения. [2] Эта тенденция частично стала причиной перехода от собственной операционной системы Cray к системе UNICOS, основанной на Unix . [2] В 1985 году Cray-2 стала первой системой, поставляемой с операционной системой UNICOS. [12]
Примерно в то же время компания EOS разработала операционную систему ETA Systems для использования в своих суперкомпьютерах ETA10 . [13] Написанная на Cybil , языке, похожем на Паскаль, от 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]
Современные подходы
[ редактировать ]
Суперкомпьютер IBM Blue Gene использует операционную систему CNK на вычислительных узлах, но использует модифицированное ядро на базе Linux, называемое ядром узла ввода-вывода ( 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]
См. также
[ редактировать ]- Распределенная операционная система
- Суперкомпьютерная архитектура
- Доля использования операционных систем суперкомпьютеров
Ссылки
[ редактировать ]- ^ Jump up to: а б с д и ж г час я дж к л м Энциклопедия параллельных вычислений Дэвида Падуа, 2011 г. ISBN 0-387-09765-1, страницы 426–429.
- ^ Jump up to: а б с д и Познание машин: очерки технических изменений Дональда Маккензи, 1998 г. ISBN 0-262-63188-1 страницы 149–151.
- ^ Jump up to: а б с д и Параллельная обработка Euro-Par 2004: 10-я Международная конференция Euro-Par 2004, Марко Данелутто, Марко Ваннески и Доменико Лафоренца. ISBN 3-540-22924-8, стр. 835.
- ^ Jump up to: а б Оценка Cray XT3 Национальной лаборатории Ок-Ридж, проведенная Садафом Р. Аламом и др., Международный журнал приложений для высокопроизводительных вычислений, февраль 2008 г., том. 22 нет. 1 52–80.
- ^ Jump up to: а б с Открытая архитектура управления заданиями для суперкомпьютера Blue Gene/L, автор Ярив Аридор и др., Стратегии планирования заданий для параллельной обработки , Дрор Г. Фейтельсон, 2005 г. ISBN 978-3-540-31024-2 страницы 95–101.
- ^ Вон-Николс, Стивен Дж. (18 июня 2013 г.). «Linux продолжает править суперкомпьютерами» . ЗДНет . Проверено 20 июня 2013 г.
- ^ «Топ500 чарт ОС» . Топ500.org. Архивировано из оригинала 05 марта 2012 г. Проверено 31 октября 2010 г.
- ^ Нацеливание на компьютер: государственная поддержка и международная конкуренция Кеннета Фламма, 1987 г. ISBN 0-8157-2851-4 стр. 82 [1]
- ^ Jump up to: а б Компьютерная революция в Канаде , Джон Н. Вардалас, 2001 г. ISBN 0-262-22064-4, стр. 258.
- ^ Конструкция компьютера: Control Data 6600 Джеймса Э. Торнтона, Скотта, Foresman Press 1970, стр. 163.
- ^ Jump up to: а б с Нацеливание на компьютер: государственная поддержка и международная конкуренция Кеннета Фламма, 1987 г. ISBN 0-8157-2851-4 страницы 81–83.
- ^ Лестер Т. Дэвис, Баланс сил, краткая история аппаратных архитектур Cray Research в книге Дж. Дж. Донгарры «Высокопроизводительные вычисления: технологии, методы и приложения», 1995 г. ISBN 0-444-82163-5, стр. 126 [2] .
- ^ Jump up to: а б с Ллойд М. Торндайк, Упадок систем ETA в «Границах суперкомпьютеров II», Карин Р. Эймс, Алан Бреннер, 1994 г. ISBN 0-520-08401-2 страницы 489–497.
- ^ Прошлое, настоящее, параллельное: обзор доступных параллельных компьютерных систем, проведенный Артуром Трю, 1991 г. ISBN 3-540-19664-1, стр. 326.
- ↑ «Границы суперкомпьютеров II» , Карин Р. Эймс, Алан Бреннер, 1994 г. ISBN 0-520-08401-2, стр. 356.
- ^ Брайтвелл, Рон Райзен, Рольф Маккейб, Артур. «О пригодности обычных операционных систем для крупномасштабных сбалансированных вычислительных систем» (PDF) . Проверено 29 января 2013 г.
{{cite web}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ^ Jump up to: а б Введение в курс дела: будущее суперкомпьютеров Сьюзан Л. Грэм, Марк Снир, Синтия А. Паттерсон, Национальный исследовательский совет, 2005 г. ISBN 0-309-09502-6, стр. 136.
- ^ Журнал Forbes, 15 марта 2005 г.: Linux управляет суперкомпьютерами.
- ^ Jump up to: а б с Параллельная обработка Euro-Par 2006: 12-я Международная конференция Euro-Par , 2006 г., Вольфганг Э. Нагель, Вольфганг В. Вальтер и Вольфганг Ленер ISBN 3-540-37783-2 .
- ^ Jump up to: а б с Стратегии планирования заданий для параллельной обработки: Эйтан Гютерберг и Уве Швигельшон, 2010 г. ISBN 3-642-04632-0 страницы 138–144.
- ^ SLURM в SchedMD
- ^ Джетт, М. и М. Грондона, SLURM: Простая утилита Linux для управления ресурсами в материалах конференции ClusterWorld, Сан-Хосе, Калифорния, июнь 2003 г. [3]