Суперкомпьютер Cray-1, бывший самым быстрым в 1970-х, не похож на суперкомпьютер. Он выглядит, как модификация аттракциона, в котором человек встаёт к стене, пристёгивается, а его потом раскручивают. Его окружает круглая скамейка, скрывающая питание, похожая на бублик – если бы только дырка от бублика могла выдавать ценные идеи, связанные с ядерным оружием.

После того, как Сеймур Крэй впервые создал этот компьютер, он дал Национальной лаборатории в Лос-Аламосе попользоваться им бесплатно шесть месяцев. Но за эти полгода случилось нечто интересное: в компьютер произошли 152 необъяснимых ошибки памяти. И только позднее исследователи узнали, что нейтроны из космических лучей могут сталкиваться с частями процессора и нарушать хранящиеся в компьютере данные. Чем выше вы расположены и чем больше ваши компьютеры, тем сильнее сказывается на вас эта проблема. Лос-Аламос, расположенный на 2,2 км над уровнем моря, где находятся самые роскошные компьютеры мира, стал основной мишенью.


Сеймур Крэй, создатель суперкомпьютера, рядом со своим детищем Cray-1

С тех пор изменился мир, и изменились компьютеры. А космос остался таким же. Поэтому Лос-Аламосу пришлось приспосабливаться – и его инженеры стали учитывать космические частицы в оборудовании и программном обеспечении. «Это не проблема, которую нужно решить, — пояснят Нэйтан Дебарделебен из группы разработки высокопроизводительных компьютеров. – Это проблема, которую мы способны сдерживать».

Для современных компьютеров, начиная с суперкомпьютера Q, это довольно серьёзная вещь. Q, установленный в 2003-м, был гораздо быстрее Cray-1, предназначенный для вычислений, связанных с отложенными на чёрный день запасами ядерного оружия США. Но он выходил из строя чаще, чем ожидалось – и это были первые отказы, заставившие учёных из Лос-Аламоса серьёзно обеспокоиться космическими лучами из глубокого космоса. Они сталкиваются с химическими элементами в атмосфере, и всё это распадается на более мелкие частицы. «Они буквально образуют своеобразные ливни, падающие прямо на нас», — говорит Шон Блэнчард, ещё один член группы. Некоторые из этих «капель» оказываются нейтронами – и это очень плохо.

«Они могут привести к переключению бита в памяти компьютера, — говорит Дебарделебен, — с 0 на 1, или с 1 на 0». Для домашнего компьютера это ерунда. Но в Лос-Аламосе есть огромные молотилки для чисел. Тот же самый Q начала века напоминает полки супермаркета. А сегодня в лаборатории имеются компьютерные залы размером с футбольное поле, причём все компьютеры в зале могут работать над одной и той же задачей. И, точно так же, как на футбольном поле осадков выпадает больше, чем на дачный участок, так и суперкомпьютеры пронизывает больше космических лучей, чем ваш ноутбук.


В Лос-Аламосе по всему суперкомпьютерному центру расставлены нейтронные детекторы

После Q инженеры по-настоящему поняли, что нейтроны – не такие уж и нейтральные частицы, поэтому сейчас они пытаются предвосхитить проблемы. Перед установкой нового оборудования инженеры проводят что-то вроде космического стресс-теста, помещая электронику в луч нейтронов – их там гораздо больше, чем в атмосферных ливнях – и наблюдая за тем, что произойдёт. «Мы берём отдельные части, делаем их радиоактивными, заставляем их работать на отказ», — объясняет Блэнчард. Скоро они разместят внутри суперкомпьютерного центра нейтронные детекторы, чтобы измерять силу «штормов». Если вам известно, сколько нейтронов прилетело, и вы знаете, как они влияют на работу компьютерных комплектующих, «вы можете предсказать время жизни вашей электроники», — говорит Сюзан Новички, физик из группы космических и прикладных наук лаборатории.

Обычно суперкомпьютеры оказываются достаточно умными, чтобы понять, что что-то пошло не так, и чувствуют переключившийся бит так же, как вы почувствуете, если у вас выдернуть волос. [автор оригинальной статьи — девушка / прим. перев.] В этом случае система обычно просто сообщает об ошибке и исправляется. Но иногда, говорит Блэнчард, компьютер оказывается более пессимистичным. «У меня ошибка, переключилось слишком много битов, — изображает он компьютер,- я не могу это исправить, но хотел сообщить вам об этом».

Когда это происходит в Лос-Аламосе, люди намеренно останавливают все компьютеры. Это всё равно, как специально падать, катаясь с горы на лыжах, потому что так будет менее больно, чем если попытаться устоять. Но в данном случае идти обратно на вершину и начинать всё заново не нужно – инженеры устраивают "контрольные точки" на пути поисков ответа. Это всё равно, что точки сохранения в играх – если вы умерли, не надо начинать всё сначала. Начинайте с последней точки, сохранившей ваши достижения. У суперкомпьютеров тоже есть подобная система сохранения.

Настоящая проблема – это "бесшумная порча данных". Это когда биты переключаются, а никто этого не замечает. И тот ответ, что вы считаете верным, на самом деле может оказаться сном, навеянным нейтронами. Именно поэтому упреждающая работа так важна: известно, чего можно ожидать и как часто, и следить за этим. В то же время, получив эти знания, команда надеется превратить бесшумные ошибки в громко кричащие. Но если что-то и проскользнёт сквозь защиту, возможно, это увидит живой человек. Обычно в Лос-Аламосе не говорят «Вот ваш ответ!», пока человек не проверит результаты работы на осмысленность.

Личное вмешательство происходит в частности потому, что Лос-Аламос занимается критически важными исследованиями по темам, влияющим на множество других людей. «Лаборатория – и в целом энергетический департамент – занимается изучением изменения климата, новых лекарств, эпидемиологии, распространения болезней, моделированием пожаров, материаловедением и хрупкостью металлов», — поясняет Блэнчард. И, как он добавляет после этого списка, причина существования Лос-Аламоса состоит в ядерном оружии, созданном людьми (некоторые из них даже относятся к этой самой лаборатории). «Мы – лаборатория изучения ядерного оружия, — говорит Блэнчард. – Наша работа – заведовать его запасами. Мы должны гарантировать, что оно в безопасности и работает, как надо, и не работает, когда не надо».

Из-за запрета испытаний ядерных вооружений, единственным законным методом перестать волноваться и научиться обслуживать запас бомб будет симуляция происходящего внутри на суперкомпьютере. Вот так лаборатория, беспокоящаяся по поводу излучения на Земле, должна беспокоиться из-за излучения из космоса. Потому что, какую бы работу ни выполняли суперкомпьютеры в будущем, ясно одно: «Каждый год они становятся всё большей мишенью», — говорит Блэнчард.

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


  1. Tortortor
    22.06.2018 10:28

    даже для ГТ как-то ниочём


    1. amartology
      22.06.2018 11:05
      +2

      Ага, удивительно беззубый рассказ об очень интересной и сложной проблеме. Причем это не перевод ни о чем, а источник очень плохо написан. На фразах масштаба «Мы берём отдельные части, делаем их радиоактивными» я не знал, плакать или смеяться.


  1. imbasoft
    22.06.2018 10:45

    Судя по статье основная проблема в порче данных обрабатываемых в микросхемах.

    Тут возникает вопрос, насколько сильно данный эффект будет отражаться на хранении данных в SSD и будет ли хранение данных в HDD более надежным (применительно к данному эффекту).


    1. amartology
      22.06.2018 11:12

      В SSD этот эффект тоже есть, но в них по не зависящим от космической радиации причинам используется помехоустойчивое кодирование. Оно не устраняет проблему полностью, но примерно на порядок уменьшает вероятность ее проявления.


    1. ClearAirTurbulence
      22.06.2018 13:19
      +1

      На первый взгляд, HDD более защищены (предположительно требуется большее воздействие более мощной частицы на большую площадь, чем требуется для bit flip в микросхеме; металлический корпус), что косвенно подтверждается отсутствием заметного числа текстов на эту тему, обычно обсуждается воздействие на RAM, реже SSD, практически никогда — HDD.

      Но так или иначе данные попадают на HDD из памяти. Да и на самом HDD могут теоретически попортиться (правда, там тоже есть механизмы коррекции ошибок). Плюс у HDD есть кэш, и данные могут быть повреждены космическими лучами в нем. Или по пути от памяти к контроллеру, возможно.

      В общем, если целостность данных важна — ECC память, какой-нибудь ZFS с четностю, и т.п… Хотя и это не дает полной защиты. Ну и бэкапы, естественно (хотя сами по себе они проблему не решают — если не проверят данные перед бэкапом, вы можете забэкапить уже «сгнившие» данные. Аналогично, уже забэкапленные данные имеет смысл периодически — если они не обновляются — сверять с исходными.

      Однако есть и другая точка зрения на это:
      раз
      www.jodybruchon.com/2017/03/07/zfs-wont-save-you-fancy-filesystem-fanatics-need-to-get-a-clue-about-bit-rot-and-raid-5

      два*
      forums.freenas.org/index.php?threads/do-i-need-zfs-to-protect-against-bit-rot.5332

      TL;DR по этим ссылкам:
      — bit rot для обычного пользователя несущественен
      — RAID5 жив, особенно для soho
      — ZFS обычному юзеру не нужна
      — бэкапы проще и дешевле

      * по второй ссылке человек предлагает хранить бэкапы не на HDD, а на SD-картах и DVD (правда, пост от 2011 г., но все же).
      Это, мягко выражаясь, интересный способ сделать бэкапы, которые в нужный момент не прочтутся.


      1. hyperwolf
        22.06.2018 14:28

        На первый взгляд, HDD более защищены (предположительно требуется большее воздействие более мощной частицы на большую площадь, чем требуется для bit flip в микросхеме; металлический корпус), что косвенно подтверждается отсутствием заметного числа текстов на эту тему, обычно обсуждается воздействие на RAM, реже SSD, практически никогда — HDD.


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


        1. DarkWanderer
          22.06.2018 20:02
          +1

          Вы с нейтрино путаете, нейтроны прекрасно сталкиваются с ядрами. И слой бетона очень даже прореживает поток.


          1. hyperwolf
            22.06.2018 22:50
            +2

            Хм, возможно. Спасибо за информацию. Но все равно нейтроны не должны влиять на пластины жесткого диска.


            1. amartology
              23.06.2018 00:28
              +1

              Зато могут на электронику записи-чтения.


      1. navion
        22.06.2018 23:37

        Для защиты от bit rot сделали T10-PI, который считает чексуммы на всём пути от драйвера ОС до секторов на диске. Но дома и для медиархивов они не страшны.

        Кстати, у LTO вероятность битовой ошибки на два порядка ниже (1 x 10^-19), чем у SSD (1 x 10^-17).


  1. Alexsandr_SE
    22.06.2018 11:16

    SSD насколько я понимаю имеет более крупные ячейки. Если и будет угроза, то скорее всего 4-х битовым SSD. Но там же есть еще алгоритмы коррекции, куда продвинутей чем для ОЗУ.


  1. akardapolov
    22.06.2018 13:31

    Что подвесило систему: баг или вспышка на Солнце?
    habr.com/company/jetinfosystems/blog/346502


    1. amartology
      22.06.2018 13:51

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


      1. akardapolov
        22.06.2018 14:16

        Так процитируйте, в чем проблема?
        Ни в коем случае не хотел посягать на чей-то уровень толковости по этой теме своим сообщением. Извините, если что!!!


        1. amartology
          22.06.2018 15:40

          Ненене, я, наоборот, хотел подкрепить ваше сообщение, а не противоречить ему)
          habr.com/post/406389
          habr.com/post/189066
          habr.com/post/401681


  1. Karpion
    22.06.2018 19:56
    +1

    Если хочешь быть отцом — крышу покрывай свинцом!


  1. xcore78
    22.06.2018 20:38

    Подобное происходит и с ASIC — повреждаются данные в регистрах/микрокод.


    1. amartology
      23.06.2018 00:30
      +2

      Подобное вообще в любой микросхеме происходит при попадании ионизирующих частиц.


  1. DmitrySpb79
    22.06.2018 22:29

    Не пойму, если биты в RAM действительно иногда меняются, почему на бытовых ПК этого не видно?


    1. amartology
      23.06.2018 00:27
      +2

      Во-первых, слишком маленький объем памяти, чтобы накопить статистику. Во-вторых, у вас что, никогда комп не глючит? В-третьих, ECC же есть везде уже давно.


      1. khim
        23.06.2018 01:35
        +2

        В-третьих, ECC же есть везде уже давно.
        Как раз ны бытовых компах ECC нет, то есть заметить подобное повреждение попросту нечем. Если случайным образом флипать биты в программе, то она достаточно долго может вести себя разумно, а контрольных сумм, способных показать что «таки опа» нету…


        1. amartology
          23.06.2018 09:45

          В памяти и процессорах бытовых компов ECC, разумеется, есть. Как минимум для того, чтобы процент выхода годных был повыше, и чипы нормально себя вели с парой вылетевших ещё при производстве бит.
          Но насчёт того, что случайный сбой в одном бите не всегда приводит к видимым последствиям — это вы правы.


          1. khim
            24.06.2018 19:12

            Возможно мы говорим о разных вещах. Кеши в ядре обычно дейстивтельно используют ECC, чтобы повысить уровень годных. А вот ECC DRAM — это девять чипов вместо восьми и, соотвественно, память без ECC дешевле. Почему и используется в 90% (хорошо если не в 99%) случаев.


      1. DmitrySpb79
        23.06.2018 09:36
        +1

        Во-вторых, у вас что, никогда комп не глючит?

        Например, такого чтобы в набираем?м тексте или коде вдруг появился левый симв?л — ни разу не было.

        Может конечно вероятность события раз в 100 лет, тогда да, у меня еще все впереди :)


        1. dadyjo
          23.06.2018 10:24
          +1

          Это с нибиру послания шлют )) www.youtube.com/watch?v=RirqnBUQTEU


          1. DmitrySpb79
            23.06.2018 10:36
            +1

            Да, это сильно :)

            Кстати, программа «Штирлиц» помогла бы декодировать послание :)
            www.softportal.com/software-3560-shtirlits.html
            Когда-то давно пользовался, когда был зоопарк разных кодировок и текст мог попасться в любом формате WIN/DOS/KOI8/etc.