Операционные системы суперкомпьютеров - Supercomputer operating systems

А операционная система суперкомпьютера является Операционная система предназначен для суперкомпьютеры. С конца 20-го века операционные системы суперкомпьютеров претерпели серьезные преобразования, поскольку фундаментальные изменения произошли в суперкомпьютерная архитектура.[1] В то время как ранние операционные системы были специально адаптированы для каждого суперкомпьютера для увеличения скорости, тенденция сдвигалась от собственных операционных систем к некоторой форме Linux,[2] с ним работают все суперкомпьютеры на TOP500 list в ноябре 2017 года.

Учитывая, что современные массивно параллельный суперкомпьютеры обычно отделяют вычисления от других сервисов, используя несколько типов узлы, они обычно запускают разные операционные системы на разных узлах, например, используя небольшой и эффективный легкое ядро Такие как Ядро вычислительного узла (CNK) или Вычислительный узел 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] Это привело к переходу на использование микроядра который использовал минимальный набор функций операционной системы. Такие системы как Мах в Университет Карнеги Меллон и Припев в INRIA были примерами ранних микроядер.[1]

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

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

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

В CDC 6600, который обычно считается первым суперкомпьютером в мире, управлял Операционная система Chippewa, который затем был развернут на различных CDC 6000 серии компьютеры.[9] Чиппева была довольно простой контроль работы ориентированная система, основанная на более ранних CDC 3000, но это повлияло на более позднее КРОНОС и ОБЪЕМ системы.[9][10]

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

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

Примерно в то же время EOS операционная система была разработана ETA Systems для использования в их ETA10 суперкомпьютеры.[13] Написано в Сибил, язык, подобный Паскалю, из Корпорация Control Data, 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 Синий ген суперкомпьютер использует Операционная система CNK на вычислительных узлах, но использует модифицированный Linux ядро, называемое I / O Node Kernel (ЧЕРНИЛА ) на узлах ввода-вывода.[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] Несколько современных суперкомпьютеров, таких как Тяньхэ-2 используйте Slurm, который разрешает конкуренцию за ресурсы в системе. Slurm - это Открытый исходный код, На базе Linux, очень масштабируемый и может управлять тысячами узлов в компьютерном кластере с устойчивой пропускной способностью более 100 000 заданий в час.[21][22]

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

Рекомендации

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