Начиная с 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.

Комментарии (48)


  1. Samouvazhektra
    08.12.2019 12:15
    +1

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

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


    1. andrewzhuk
      08.12.2019 12:34

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


      1. Samouvazhektra
        08.12.2019 12:47
        +1

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


      1. ctacka
        08.12.2019 20:02
        +2

        Выбор ОС зависит от задач, а выбор облака зависит в том числе и от выбора ОС. Если у 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/


  1. drWhy
    08.12.2019 13:15

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


    1. DreamingKitten
      08.12.2019 14:00

      Стоимость сертификации драйвера для WHQL включена в цену продукта, обычно, так что это не проблема для интеграторов. А для любителей на этом сэкономить — проверка подписей может быть отключена, внезапно.


      1. drWhy
        08.12.2019 15:23

        Есть два продукта, мышь (тираж 100 000 экземпляров) и гравицаппа для суперкомпьютера (тираж 1 экземпляр). Какова стоимость сертификации из расчёта на 1 экземпляр?

        А как на условия и стоимость техподдержки влияет отключение проверки подписей?


        1. DreamingKitten
          08.12.2019 16:23

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


          1. drWhy
            08.12.2019 16:31

            Спасибо, не знал, что оплата уже необязательна. В противном случае подписание промежуточных версий драйвера 21.20.16.4508 может влететь в копеечку.
            Неоднократно встречал упоминание введения обязательной платной подписи драйверов в качестве одной из причин отказа от продолжения разработки ПО различными небольшими компаниями.

            Имелась в виду техподдержку Microsoft. Условия её предоставления точно распространяются на системы с отключённой проверкой подписи драйверов?


            1. sergeyns
              09.12.2019 10:19

              Важно даже не то, что распространяются-не распространяются, а то что Microsoft может в любой момент поменять условия игры…


    1. ramzes2
      09.12.2019 02:46
      -1

      Сейчас для подписывание драйвера достаточно купить code signing EV сертификат, подписать им драйвер и отправить драйвер на специальный портал Microsoft, для подписывания ихним сертификатом (бесплатно). Делал в этом году — работает на win 10.


  1. Serge78rus
    08.12.2019 13:16

    Также Linux обладает относительно универсальными требованиями к железу. Некоторые дистрибутивы функционируют на устройствах с объёмом памяти в 128 МБ.
    Это дистрибутивы общего назначения. OpenWrt работает на 4 MB flash и 32 MB RAM


  1. netch80
    08.12.2019 14:40

    Я пару лет назад писал на 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 это следствие открытости и лёгкой кастомизируемости. В остальном те эксперты из статьи ничего внятного не сказали.)


  1. P6i
    08.12.2019 20:02
    +2

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


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


    1. Magn
      09.12.2019 12:34

      Статистика по aws, доля windows процентов 8
      thecloudmarket.com/stats#/totals


  1. bzzz00
    08.12.2019 20:13
    +1

    ест-но… Lustre только под Linux есть.


  1. Shpankov
    09.12.2019 00:14
    -1

    Ядро Linux монолитное

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


    1. Oxyd
      09.12.2019 01:13
      +2

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


      1. Shpankov
        09.12.2019 11:10

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


        1. Oxyd
          11.12.2019 02:21

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


          1. Shpankov
            11.12.2019 11:49

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


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


    1. DCNick3
      09.12.2019 03:06

      Монолитное — это в противопоставление микроядру, пикоядру и прочим извращениям. Хотя не очень понятно, почему это включено в преимущества, посколько большинство (всё?) используемых на практике ОС построено на основе монолитных ядер.


      1. Shpankov
        09.12.2019 11:12

        Хотя не очень понятно, почему это включено в преимущества

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


        1. Oxyd
          11.12.2019 02:23
          +1

          Причина не в этом.



      1. Oxyd
        11.12.2019 02:23

        Макось гибридная. Часть драйверов в адресном пространстве микроядра mach(Сами себе злобные буратины) первого поколения.


    1. P6i
      09.12.2019 11:23

      Ядро линукс — самое, что ни есть, монолитное, с возможностью, динамически, подгружать в память куски ядра, именуемые — модулями, но от этого, ядро, не перестает быть монолитным, крах в любой части ядра, включая и модули, вызывает, в 99%, кернел паник всего ядра.


      1. Shpankov
        09.12.2019 11:57

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


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


        1. P6i
          09.12.2019 12:12

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


          1. Shpankov
            09.12.2019 12:58

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


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


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


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


            1. P6i
              09.12.2019 13:06
              +1

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


              1. Shpankov
                09.12.2019 13:19
                -1

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


        1. P6i
          09.12.2019 12:18

          Вам картинка, для привлечения внимания, чем монолитное ядро отличается от микроядра. и почему linux kernel, что ни на есть монолитное, и что динамическая подгрузка модулей не делает linux kernel микроядром. Разница, совсем в другом
          image


        1. Oxyd
          11.12.2019 02:25

          Микроядро? Из ядра линукса? Мда… Никогда не думал, что хабр будет источником таких оксюморонов… :-(


          1. Shpankov
            11.12.2019 11:57

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


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


        1. Oxyd
          11.12.2019 02:31

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


          1. Shpankov
            11.12.2019 11:57

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


      1. EddyEm
        09.12.2019 21:03

        Есть такое, к сожалению.
        Поэтому отладку самописных модулей ядра приходится в виртуальной машине делать. Намучился в свое время: чуть где ошибся, все — kernel panic и перезагрузка компьютера. Решил после этого, что лучше я виртуальный компьютер в виртуалбоксе перезагружать буду!


    1. Andy117
      09.12.2019 20:53

      При компиляции кастомного ядра можно задать компилировать ли модуль или встроить в ядро.


  1. cyrillpetroff
    09.12.2019 04:07

    Кстати, а у "… вот-вот сверхдержавы..." суперкомпьютеры есть?
    Интересно, если есть, какое место занимают в рейтинге суперкомпьютеров…


    1. DreamingKitten
      09.12.2019 07:04
      +1

      1. cyrillpetroff
        09.12.2019 22:11

        Ну надо же, а я и не знал, спс. Теперь точно «прорыв» не за горами!


    1. Kanlas
      10.12.2019 09:56

      Даже в крупных российских региональных университетах есть суперкомпьютеры, например, суперкомпьютер «Сергей Королев». С подключением


  1. DreamingKitten
    09.12.2019 07:03

    del


  1. Magn
    09.12.2019 11:09

    "Лучше дела обстоят в облачной и 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/


    1. DrunkBear
      09.12.2019 16:13

      Кстати, этой осенью MS и Oracle объявили о сотрудничестве в облаках, поэтому процент linux в Azure будет расти и дальше.


  1. EddyEm
    09.12.2019 20:53

    Дык, лучше линукса еще ничего не придумали. Что еще использовать?
    Вот на рабочем компьютере выбор немного больше: или линукс, или фряха…


  1. EddyEm
    09.12.2019 20:53

    Дык, лучше линукса еще ничего не придумали. Что еще использовать?
    Вот на рабочем компьютере выбор немного больше: или линукс, или фряха…