Большая часть суперкомпьютеров работают под управлением Linux — обсуждаем ситуацию

    Начиная с 2018 года, пятьсот самых высокопроизводительных систем в мире работают на Linux. Обсуждаем причины сложившейся ситуации и приводим мнения экспертов.


    Фото — Rawpixel — PD

    Состояние рынка


    Пока что Linux проигрывает другим ОС в борьбе за рынок ПК. По данным Statista, Linux установлена всего на 1,65% компьютеров, в то время как с ОС от Microsoft работает 77% пользователей.

    Лучше дела обстоят в облачной и IaaS-среде, хотя и здесь лидером остается Windows. Например, эту ОС использует 45% клиентов 1cloud.ru, в то время как 44% отдали предпочтение Linux-дистрибутивам.


    Но если говорить о высокопроизводительных вычислениях, то здесь Linux однозначный лидер. Согласно недавнему отчету портала Top500 — это проект, который составляет рейтинг мощнейших вычислительных установок мира — суперкомпьютеры из списка топ-500 построены на Linux.

    На машине Summit (номер один в списке на момент написания статьи), которую спроектировали в IBM, установлен Red Hat Enterprise. Эта же система управляет вторым по мощности суперкомпьютером — Sierra, а китайская установка TaihuLight работает на Sunway Raise OS, основанной на Linux.

    Причины распространенности Linux


    Производительность. Ядро Linux монолитное и хранит в себе все необходимые компоненты — драйверы, планировщик задач, файловую систему. При этом kernel-сервисы выполняются в адресном пространстве ядра, что повышает общую производительность. Также Linux обладает относительно универсальными требованиями к железу. Некоторые дистрибутивы функционируют на устройствах с объёмом памяти в 128 МБ. Тот факт, что машины под управлением Linux более производительны, чем под Windows, несколько лет назад признал даже один из разработчиков Microsoft. Среди причин он выделил инкрементальные обновления, направленные на оптимизацию кодовой базы.

    Открытость. Суперкомпьютеры 70-х и 80-х годов прошлого века в большинстве своем строились на коммерческих дистрибутивах, основанных на UNIX, — например UNICOS от Cray. Университеты и исследовательские лаборатории, были вынуждены платить крупные роялти авторам ОС, что отрицательно сказывалось на конечной стоимости высокопроизводительных компьютеров — она составляла миллионы долларов. Появление открытой операционной системы позволило значительно сократить расходы на программное обеспечение. В 1998 году был представлен первый суперкомпьютер на базе Linux — Avalon Cluster. Его собрали в Лос-Аламосской национальной лаборатории США всего за 152 тыс. долларов.

    Машина имела производительность в 19,3 гигафлопс и заняла 314 место в мировом топе. На первый взгляд, это небольшое достижение, но соотношение цена/производительность привлекло разработчиков суперкомпьютеров. Всего за два года Linux удалось захватить 10% рынка.

    Кастомизация. Каждый суперкомпьютер обладает уникальной ИТ-инфраструктурой. Открытость Linux дает инженерам необходимый уровень гибкости для внесения изменений и оптимизации производительности. Администратор Эдди Эпштейн (Eddie Epstein), который участвовал в проектировании суперкомпьютера Watson, назвал доступность и относительную легкость в управлении главной причиной выбора SUSE Linux.

    Суперкомпьютеры ближайшего будущего


    Вычислительная система Summit от IBM мощностью в 148 петафлопс уже несколько лет удерживает первую строчку Top500. Но в 2021 году ситуация может измениться — на рынок выйдет сразу несколько эксафлопсных суперкомпьютеров.


    Фото — OLCF at ORNL — CC BY

    Один из них разрабатывает Министерство энергетики США (DOE) совместно со специалистами из Cray. Его мощности направят на исследование космоса и последствий глобального потепления, поиск препаратов для лечения рака и новых материалов для солнечных панелей. Уже известно, что суперкомпьютер будет управляться ОС Cray Linux Environment — она основана на SUSE Linux Enterprise.

    Свою эксафлопсную высокопроизводительную машину представит и Китай. Она получит название Tianhe-3 и найдет применение в генной инженерии и разработке лекарств. На суперкомпьютер должны будут установить Kylin Linux, который уже используют для его предшественника — Tianhe-2.

    Таким образом, можно ожидать, что в ближайшие несколько лет статус-кво сохранится, и Linux продолжит укреплять лидерство в нише мощнейших суперкомпьютеров.


    Мы в 1cloud предоставляем услугу «Частное облако». С её помощью можно в кратчайшие сроки развернуть ИТ-инфраструктуру для проектов любой сложности.

    Наше облако построено на железе Cisco, Dell, NetApp. Оборудование стоит в нескольких ЦОД: московском DataSpace, питерском SDN/Xelent и алма-атинском Ahost.

    1cloud.ru
    175,19
    IaaS, VPS, VDS, Частное и публичное облако, SSL
    Поделиться публикацией

    Комментарии 54

      +5
      Например, эту ОС использует 45% клиентов 1cloud.ru, в то время как 44% отдали предпочтение Linux-дистрибутивам

      Ну как бы не совсем объективный показатель "предпочтения", потому что часто выбор windows обусловлен задачей заоблачить какой-то windows-специфичный продукт. У вас отдельным пунктом предложение 1C в облаке идёт.

        +4
        Если не привязываться к выбору слов, то (как мне кажется) вы сейчас сформулировали совсем очевидный вывод — выбор ОС в облаке (и не в облаке) зависит от задач. Спасибо, кэп.
          +1

          Это само собой, но меня смутила именно формулировка. Так как тут речь об конкретном провайдере — то такой результат распределения может обуславливаться маркетингом, больше направленным на привлечение клиентов под windows-кейсы. Поэтому мне кажется не верным делать выводы о предпочтении.

            +3

            Выбор ОС зависит от задач, а выбор облака зависит в том числе и от выбора ОС. Если у 1cloud.ru хорошие предложения на Windows-машинах, то конечно же Windows будет более популярна. Хорошо бы какую-то более широкую статистику. А то вот на Azure (где цены на Windows хорошие) Linux вроде как популярнее — https://www.zdnet.com/article/microsoft-developer-reveals-linux-is-now-more-used-on-azure-than-windows-server/

          +2
          Причины распространенности Linux
          Производительность. Ядро Linux монолитное и хранит в себе все необходимые компоненты — драйверы, планировщик задач, файловую систему. При этом kernel-сервисы выполняются в адресном пространстве ядра, что повышает общую производительность.
          А у Windows 10 процесс taskmgr.exe расположен прямо в глубокой свопе. К моменту, когда система его оттуда достанет, можно успеть забыть, зачем он вызывался.
          Ещё подписание драйверов. Вероятно, у суперкомпьютера найдётся парочка оригинальных устройств, за подписание драйверов к которым придётся заплатить, за каждую модификацию. Учитывая тираж данной модели, это быстро может стать довольно затратно.
            –1
            Стоимость сертификации драйвера для WHQL включена в цену продукта, обычно, так что это не проблема для интеграторов. А для любителей на этом сэкономить — проверка подписей может быть отключена, внезапно.
              +3
              Есть два продукта, мышь (тираж 100 000 экземпляров) и гравицаппа для суперкомпьютера (тираж 1 экземпляр). Какова стоимость сертификации из расчёта на 1 экземпляр?

              А как на условия и стоимость техподдержки влияет отключение проверки подписей?
                +1
                Какова стоимость сертификации из расчёта на 1 экземпляр?
                Беглое гугление показало, что это около $250 за версию драйвера и ещё пишут что с 2014 плата уже не требуется (без уточнения, что поменялось в процессе). На фоне общей стоимости современных HPC решений это вообще ни о чём. И я не очень понимаю, причём тут это. HPC это ниша для заведомо не массового и узкоспециального железа. Какой смысл жаловаться на то, что его структура цены не такая как у мышки? Она и не должна быть такой.
                А как на условия и стоимость техподдержки влияет отключение проверки подписей?
                Если политику безопасности делать не через одно место — то никак. Туда, где это играет роль, всё равно имеют доступ только админы.
                  –1
                  Спасибо, не знал, что оплата уже необязательна. В противном случае подписание промежуточных версий драйвера 21.20.16.4508 может влететь в копеечку.
                  Неоднократно встречал упоминание введения обязательной платной подписи драйверов в качестве одной из причин отказа от продолжения разработки ПО различными небольшими компаниями.

                  Имелась в виду техподдержку Microsoft. Условия её предоставления точно распространяются на системы с отключённой проверкой подписи драйверов?
                    +2
                    Важно даже не то, что распространяются-не распространяются, а то что Microsoft может в любой момент поменять условия игры…
                  0
                  К тому ж в условных «мышах» (камерах, сетевухах итд) используетсявсего несколько вариантов чипов — больше не нужно.
                    0
                    Ну да, конечно, стандартного виндового драйвера для Apple Magic Mouse должно хватать всем.
                    Или, скажем, распространённый в своё время сетевой чип Realtek 8129, карты на котором довольно часто содержали VID/PID, отличные от стандартных.
                    Да для одной модели ноутбука Lenovo на сайте в разделе драйверов может быть пять различных вариантов web-камеры, все разных производителей. Cтавят то, что есть на складе на момент сборки. К некоторым драйверов под Windows вообще никогда не было.
                      0
                      Да, помню целую партию сетевух. Но их довольно просто было «привести в чувство» — там значения mac да и vid/pid были зашиты в внешней eeprom памяти. Легко менялись даже без программатора, утилиткой.
                +1
                Сейчас для подписывание драйвера достаточно купить code signing EV сертификат, подписать им драйвер и отправить драйвер на специальный портал Microsoft, для подписывания ихним сертификатом (бесплатно). Делал в этом году — работает на win 10.
                +8
                Также Linux обладает относительно универсальными требованиями к железу. Некоторые дистрибутивы функционируют на устройствах с объёмом памяти в 128 МБ.
                Это дистрибутивы общего назначения. OpenWrt работает на 4 MB flash и 32 MB RAM
                  +13
                  Я пару лет назад писал на dou.ua (он в России до сих пор под запретом?), повторю тут. Если сравнивать с Windows, области, которые (лет 5 назад) не покрыты для HPC или отвратительно покрыты:

                  === cut ===
                  1. Специализированные интерконнекты для HPC. Даже Infiniband реализуется под Windows чуть хуже чем ужасно, про более редкие и не вспоминаю.
                  2. Специализированные приложения (протоколы) поверх интерконнектов, начиная с RDMA.
                  3. Ethernet-over-IB, IP-over-IB в вариантах, где есть что-то кроме unicast.
                  4. «Минимальные» узлы, на которых ничего нет, кроме процессора и PCI-E корня (даже BIOS подключается по сети), а PCI-E проброшен по IB.
                  5. В продолжение предыдущего — сетевая загрузка со средств типа iSCSI и работа с дисками по нему (включая динамическое подключение и отключение).
                  6. Динамическое подключение GPU по PCI-E, в конфигурациях типа «20 узлов в шасси, на них 10 GPU».
                  7. Эффективная виртуализация сетевых адаптеров виртуальных машин для соответствующих конфигураций (опять-таки, Ethernet в таких местах никого не интересует — минимум это IB). Эффективная — это значит, что VT-d/IOMMU должно быть задействовано в полную силу.
                  8. Лёгкая виртуализация стиля LXC, но с надёжным распределением всех ресурсов, как минимум процессор+RAM+сеть+диск.
                  9. Центральный гибко настраиваемый DHCP (тут уже можно поверх Ethernet, но не везде) на объёмы порядка 20 тысяч узлов. В гибкость настройки должны входить задания как однократных параметров, так и длительных, с грануляцией по ряду, стойке, шасси, отдельному узлу.
                  10. Распределённая FS пользовательских данных, хотя бы такая, как Lustre (которая далеко не идеал, но стартовая площадка по умолчанию). Динамическое подключение ресурсов с такой FS на клиентских системах.
                  11. MPI, поддерживающий специализированные протоколы того же IB эффективным образом. Желательно видеть все 30+ версий MPI для тех, кому оно нужно.
                  12. Huge pages в MMU с возможностью управления использования им по процессам.
                  13. Мониторинг аппаратных ресурсов на уровне ядра.

                  это действительно навскидку по памяти, я не копался в архивах и озвучил только те проблемы, решение которых активно видел сам, или даже участвовал.

                  Может, в одном конкретном случае даже 1-2 пункта реализуется:), но требование выполнить хотя бы 4 из них приводит вендора и интегратора в безвыходный ступор, из которого единственный выход звучит как «а давайте пойдём на linux»:)
                  === end cut ===

                  Я не в этой области последние 5 лет, но крайне сомневаюсь, что начала выполняться хотя бы половина пунктов.

                  (Да, их выполнение для Linux это следствие открытости и лёгкой кастомизируемости. В остальном те эксперты из статьи ничего внятного не сказали.)
                    +2
                    Лучше дела обстоят в облачной и IaaS-среде, хотя и здесь лидером остается Windows. Например, эту ОС использует 45% клиентов 1cloud.ru, в то время как 44% отдали предпочтение Linux-дистрибутивам.


                    Какая подача информации и выводы на ее основании. А где показатели от большой тройки aws, azure, gcp? или если бы привели, то оказалось, что и в IaaS в публичных облаках, в вебскейл сегменте преобладает линукс?
                    +1
                    ест-но… Lustre только под Linux есть.
                      –1
                      Ядро Linux монолитное

                      Вообще-то ядро Linux модульное, это одно из его основных преимуществ.

                        +1
                        Это отменяет то что загруженные модули работают в адресном пространстве ядра?
                          0

                          Это отменяет утверждение про "монолитность ядра Linux". Если человек допускает подобные "вольности", то ко всему последующему тексту отношение соответствующее.

                            0
                            Монолитность архитектуры ядра, это не все подсистемы в одном бинарнике, на диске, это все подсистемы, включая модули, в едином, привилегированном, адресном пространстве, в памяти. А модульное, оно там, не модульное, значения не имеет.
                              0

                              Это вам сейчас, возможно, значения не имеет, а в начале 2000-х модульность Linux была одним из основных преимуществ по сравнению с остальными. Особенно критично это было для встраиваемых ОС во всевозможные кофемолки и утюги, и то, что Linux занял все эти рынки, включая, на минуточку, и мобильный рынок, являлось следствием именно модульности — т.е. гибкой расширяемости и, что важнее, "сужаемости" ядра Linux.


                              А вот как раз то, в каком адресном пространстве работают эти модули, было абсолютно перпендикулярно. Критичным был размер ядра и возможность оставить в нём только те модули, которые реально нужны, отрезав всё остальное.

                                +1
                                Я ему о тёплом, а он мне о мягком… Давайте повторим. Модульность ядра linux никак не отменяет того, что архитектура этого самого ядра монолитная.
                          0
                          Монолитное — это в противопоставление микроядру, пикоядру и прочим извращениям. Хотя не очень понятно, почему это включено в преимущества, посколько большинство (всё?) используемых на практике ОС построено на основе монолитных ядер.
                            –1
                            Хотя не очень понятно, почему это включено в преимущества

                            Потому, что именно модульность ядра Linux позволяет его использовать максимально широко — от миниатюрных ПЛИС до суперкомпьютеров.

                              0
                              Причина не в этом.
                                0
                                  0
                                  Нет. Учите матчасть. Модульность здесь абсолютно ни при чём, а вот переносимость(надеюсь вам не надо объяснять что это такое и с чем его едят) на произвольную архитектуру очень даже при чём. Загляните в исходники ядра и полюбуйтесь на обилие поддерживаемых архитектур, начиная от мотороллы 65k вплоть до новомодного RiscV.
                              0
                              Макось гибридная. Часть драйверов в адресном пространстве микроядра mach(Сами себе злобные буратины) первого поколения.
                              +3
                              Ядро линукс — самое, что ни есть, монолитное, с возможностью, динамически, подгружать в память куски ядра, именуемые — модулями, но от этого, ядро, не перестает быть монолитным, крах в любой части ядра, включая и модули, вызывает, в 99%, кернел паник всего ядра.
                                0

                                Ядро Linux модульное, при этом вы можете скомпилировать его по своему усмотрению — можете наглухо вкомпилировать модули в ядро, а можете сделать их подгружаемыми по необходимости. Также вы можете вообще удалить из ядра все модули, оставив только те, которые вам необходимы в данном конкретном случае (какая-нибудь миниатюрная программируемая ПЛИС), и получите микроядро со всеми вытекающими преимуществами.


                                И — да. Любопытно посмотреть, чем вы там таким пользуетесь, что у вас падение модуля вызывает kernel panic.

                                  +1
                                  О то, линус удивится, что его ядро, которое он называет моноитным, оказывается модульное.
                                  Еще раз для тех кто в танке, модль — это динамически подгружаемая часть ядра, но она после загрузки, выполняется в общем скопе ядра. И да, вспомним перепалку Линуса и Тененбаума?
                                  www.oreilly.com/openbook/opensources/book/appa.html
                                    –4

                                    Ещё раз, для тех, кто в танке.


                                    Модули могут быть как намертво скомпилированными с ядром в одно целое, так и динамически подгружаемыми. Вы можете при желании вообще отказаться от использования многих модулей, оставив себе только самый необходимый минимум. Именно в этом смысле ядро Linux — модульное и, благодаря этой модульности, очень адаптивное под различные задачи.


                                    Торвальдс и Таненбаум говорили о другом — об отличии между ядром Linux и микроядром MINIX и о преимуществах/недостатках этих типов ядер. И данный спор совсем не исключает того, что на самом деле Linux — это монолитное модульное ядро, где подгружаемые модули работают в адресном пространстве ядра.


                                    P.S. К слову, жёсткость заявлений Торвальдса по поводу монолитности Linux в этом споре в большой степени было продиктовано необходимостью ответить на провокационный тезис Таненбаума о том, что, мол, "Linux устарел" и пришло время микроядер.

                                      +2
                                      Покажите мне в классификации архитектур ядра ОС про модульное ядро, как независимая архитектура
                                      Linux kernel — это монолитное ядро, с возможностью динамически подгружать свои «куски», именуемыми module, после заргрузки этот кусок кода становится неотемлемой частью работающего монолитного ядра. То что у монолитного ядра (кстати и не только у монолитного) есть возможность динамически и на лету подгружать / выгружать свои куски — не делает его не монолитным. Монолитное ядро, микро ядро, экзо ядро — определяется совсем другими архитектрными моментами, а не динамической подгрозкой куска кода в рантайме.
                                        –4

                                        Вы зря спорите. Преимуществом ядра Linux с самого начала была его модульность — способность не только подгружать/выгружать модули на лету, но и возможность компилировать ядро с определённым набором модулей. Именно об этом и речь. Эта модульность делает ядро Linux легко адаптируемым под самые различные нужды. Зачем вы спорите с фактами — вообще непонятно.

                                    +3
                                    Вам картинка, для привлечения внимания, чем монолитное ядро отличается от микроядра. и почему linux kernel, что ни на есть монолитное, и что динамическая подгрузка модулей не делает linux kernel микроядром. Разница, совсем в другом
                                    image
                                      0
                                      Микроядро? Из ядра линукса? Мда… Никогда не думал, что хабр будет источником таких оксюморонов… :-(
                                        0

                                        Не придирайтесь к словам. Читайте это как "миниядро".


                                        Повторю, что в контексте данного спора речь идёт исключительно о модульности ядра Linux и о его способности к адаптации под различные задачи и для различных, даже самых миниатюрных устройств.

                                          0
                                          Это не придирка, это ваше непонимание, увы.
                                        0
                                        Вы меня конечно извините, но вам совершенно необходимо изучить матчасть. Начните с классики, с Танненбаума, что-ли. Я такое комментировать просто не могу, увы :-(
                                          –1

                                          Не можете — не комментируйте.

                                        +1
                                        Есть такое, к сожалению.
                                        Поэтому отладку самописных модулей ядра приходится в виртуальной машине делать. Намучился в свое время: чуть где ошибся, все — kernel panic и перезагрузка компьютера. Решил после этого, что лучше я виртуальный компьютер в виртуалбоксе перезагружать буду!
                                        0
                                        При компиляции кастомного ядра можно задать компилировать ли модуль или встроить в ядро.
                                        –4
                                        Кстати, а у "… вот-вот сверхдержавы..." суперкомпьютеры есть?
                                        Интересно, если есть, какое место занимают в рейтинге суперкомпьютеров…
                                        0
                                        del
                                          +4

                                          "Лучше дела обстоят в облачной и IaaS-среде, хотя и здесь лидером остается Windows."


                                          Вы не в первый раз пишите такие странные вещи, так что я снова отпишусь на эту тему.
                                          Строить такие предположения основываясь на статистике вашего, заточенного на Windows, сервиса — очень странно.
                                          Такое надо проверять по обычным провайдерам мирового значения и общего назначения.
                                          В Амазоне доля windows 8%. http://thecloudmarket.com/stats#/totals
                                          Для Google cloud не нашёл, сомневаюсь что отличается от aws.
                                          Даже в самом azure доля linux теперь больше 50%
                                          https://www.zdnet.com/article/linux-now-dominates-azure/

                                            0
                                            Кстати, этой осенью MS и Oracle объявили о сотрудничестве в облаках, поэтому процент linux в Azure будет расти и дальше.
                                            0
                                            Дык, лучше линукса еще ничего не придумали. Что еще использовать?
                                            Вот на рабочем компьютере выбор немного больше: или линукс, или фряха…
                                              –1
                                              Дык, лучше линукса еще ничего не придумали. Что еще использовать?
                                              Вот на рабочем компьютере выбор немного больше: или линукс, или фряха…

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                              Самое читаемое