Каждый из нас не раз и не два в своей жизни слышал возмущённое «оно само сломалось» в ответ на вопрос, как случилась та или иная неполадка в компьютере или ПО. В 99% случаев это происходит «не само». Но есть 1%, когда пользователь действительно не виноват, и причиной сбоя является не «человеческий фактор», а случайность. Случайность, вызванная космическим излучением. Давайте об этом и поговорим.
Быстрые нейтроны из космических лучей могут вызвать серьёзные ошибки в суперкомпьютерах. Но физики надеются сделать такие устройства менее подверженными космическому разрушению, а также защитить всю технику, от беспилотных автомобилей до квантовых компьютеров.
В 2013 году спидраннер DOTA_Teabag играл в Super Mario 64 от Nintendo и внезапно обнаружил «невозможный» сбой: Марио внезапно телепортировался высоко в воздух, что сократило время прохождения уровня и обеспечило преимущество в игре. Запись этого инцидента транслировалась в Twitch и привлекла внимание другого известного геймера, pannenkoek12, который захотел понять, как такое возможно. И даже предложил 1000 долларов каждому, кто сможет воспроизвести сбой. Многие пытались повторить трюк DOTA_Teabag, но никому это не удавалось. Восемь лет спустя pannenkoek12 пришел к выводу, что перемещение Марио, вероятно, произошло из-за изменения (флипа) одного конкретного бита в байте, который определяет местонахождение игрока в определенный момент игры. И причиной этого изменения, скорее всего, была ионизирующая частица из космического пространства.
Воздействие космической радиации не всегда так безобидно, как в случае с игрой. 7 октября 2008 года самолет Qantas, следовавший из Сингапура в Австралию на высоте 11 300 м, внезапно пошёл на снижение, которое привело к травмам пассажиров и членов экипажа и внутренним разрушениям салона самолёта. Следователи установили, что проблема возникла из-за «нарушения в результате единичного события» (Single-event Upset, SEU), в результате которого неверные данные поступили в систему бортовых приборов. И снова, скорее всего, виновато космическое излучение. Бит-флип SEU также был признан виновным в ошибках в электронной машине для голосования в Бельгии в 2003 году, которая добавила 4096 дополнительных голосов одному кандидату.
Космическое излучение также может влиять на данные в суперкомпьютерах, что часто приводит к их сбоям. Это вызывает всё большее беспокойство, особенно с учетом того, что уже в 2021 году может появиться первый «эксафлопсный» компьютер, способный выполнять более 1018 операций в секунду. Пока непонятно, как такие машины будут противостоять угрозе повреждения данных космическими лучами. Поскольку транзисторы становятся меньше, энергия, необходимая для «флипа», уменьшается. А по мере увеличения размеров компьютера вероятность повреждения данных возрастает.
К счастью, те, кто работает в небольшой, но важной области компьютерной устойчивости, серьезно относятся к этим угрозам. «Мы как канарейка в угольной шахте. Мы идём впереди и изучаем происходящее», — утверждает Натан ДеБарделебен, старший научный сотрудник Лос-Аламосской национальной лаборатории в США. В научном центре он проводит «космические стресс-тесты» электронных компонентов, подвергая их воздействию пучка нейтронов для имитации воздействия космических лучей.
Далеко не все компьютерные сбои вызваны космическими лучами (температура, возраст и производственный брак тоже могут сказываться на работе оборудования). Однако роль, которую они играют, была очевидна с момента появления первых суперкомпьютеров. Cray-1, разработанный Сеймуром Роджером Креем, был испытан в Лос-Аламосе. Вполне вероятно, что это было ошибочным решением, так как большая высота лаборатории (2300 м над уровнем моря), делает исследуемые устройства ещё более уязвимым для космических лучей.
Сначала Cray не хотел включать модуль коррекции ошибок, но в конечном итоге сделал это, добавив так называемую память четности, где к заданному набору битов добавляется дополнительный бит «четности». Он записывает, является ли сумма всех битов нечетной или четной. Поэтому любое повреждение бита будет отображаться как несоответствие. Cray-1 зафиксировал около 152 ошибок четности за первые шесть месяцев.
По мере развития суперкомпьютеров проблемы, вызванные космическим излучением, не исчезли. В 2002 году в Лос-Аламосе был установлен второй по скорости суперкомпьютер в мире ASCI Q. И первоначально он не мог работать дольше часа без сбоев, вызванных всевозможными ошибками. Проблема решилась только тогда, когда инженеры добавили к серверам металлические боковые панели, что позволило ему работать в течение шести часов.
Космический хаос
Космическое излучение идёт от Солнца и от разнообразных космических происшествий наподобие взрыва сверхновой в нашей галактике или за её пределами. Космические лучи состоят в основном из высокоэнергетических протонов и ядер гелия, которые движутся в пространстве почти со скоростью света). Космическое излучение в основном состоит из заряженных частиц: протонов (88%), ядер гелия (9%), антипротонов, электронов, позитронов и нейтральных частиц, которые движутся в космосе почти со скоростью света. Когда они сталкиваются с атмосферой Земли, то создают вторичный поток частиц, включая нейтроны, мюоны, пионы и альфа-частицы.
«Доходят до поверхности земли в основном быстрые нейтроны», — объясняет Кристофер Фрост, который управляет устройством ChipIR в лаборатории Резерфорда Эпплтона в Великобритании. Оно было создано в 2009 году для изучения последствий облучения микроэлектроники.
Учёный-компьютерщик Леонардо Баутиста-Гомес из Суперкомпьютерного центра Барселоны сравнивает эти ошибки с мутациями, которые иногда происходят в ДНК человека. «В зависимости от того, где происходит мутация, она может стать или не стать причиной появления рака, и это очень похоже на компьютерный код».
Кристофер Фрост вместе с ученым Паоло Речем из бразильского Федерального университета Риу-Гранди-ду-Сол также изучал дополнительный источник осложнений в виде медленных нейтронов. Эти нейтроны имеют на девять порядков меньше энергии, чем у их собратьев из космических лучей. Тепловые нейтроны могут быть особенно «вредными», когда они сталкиваются с бором-10, который содержится во многих полупроводниковых чипах. Ядро бора-10 захватывает нейтрон, распадаясь на литий и альфа-частицу.
Эксперты из Frost and Rech протестировали шесть имеющихся в продаже устройств, запустили их в нормальных условиях, и обнаружили, что все они подвергались воздействию медленных нейтронов (J. Supercomput. 77 1612). «В принципе, чтобы избавиться от этой проблемы, можно использовать чрезвычайно чистый бор-11», — считает Паоло Реч, но добавляет, что это увеличивает стоимость производства. Ведь даже суперкомпьютеры используют готовые коммерческие компоненты, которые могут пострадать от тепловых нейтронов. Хотя космические лучи есть везде, образование тепловых нейтронов чувствительно к окружающей среде устройства.
«Вещества, содержащие водород [например, вода], или предметы, сделанные из бетона, тормозят быстрые нейтроны, превращая их в медленные», — объясняет Фрост. Исследователи даже обнаружили, что погода влияет на количество тепловых нейтронов, их уровень в дождливые дни увеличивается вдвое.
Профилактические меры
Хотя вероятность подобных ошибок относительно низка, в некоторых критических системах используются меры избыточности за счёт удвоения или утроения каждого бита, так что ошибки могут быть обнаружены мгновенно. «Это особенно заметно в космических аппаратах и спутниках, которые не должны просто так выходить из строя», — утверждает ДеБарделебен. Но создание таких отказоустойчивых систем на суперкомпьютерах обходилось бы непомерно дорого, ведь на них часто выполняются программы, рассчитанные на месяцы работы. Вариант полной остановки нейтронов, достигающих этих машин, также непрактичен — требуется три метра бетона, чтобы заблокировать космические лучи. Хотя учёные рассматривали возможность размещения центров обработки данных глубоко под землей.
Современные суперкомпьютеры используют более совершенную ECC-память, которая автоматически распознаёт и исправляет спонтанно возникшие изменения (ошибки) битов памяти. Около 12% объёма записываемых данных используется для кодов исправления ошибок. Ещё одним важным нововведением для суперкомпьютеров является «контрольная точка» — процесс регулярного сохранения данных в середине вычисления. И если возникает сбой, вычисление может быть выполнено с последней контрольной точки. Вопрос лишь в том, как часто делать эти контрольные точки. Большая частота требует больших затрат времени и энергии, а малая чревата тем, можно потерять месяцы вычислительной работы.
Страх перед сбоем системы и потерей данных — это половина проблемы. Учёных беспокоит риск необнаруженных или скрытых ошибок. Тех, которые не вызывают сбоев и поэтому не обнаруживаются. По словам Баутисты-Гомеса, ECC обычно может обнаруживать одно- или двухбитовые перевороты, но «помимо этого, если у вас есть космический луч, который меняет три бита в ячейке памяти, то методы, которые мы используем сегодня, скорее всего, не смогут обнаружить это».
До недавнего времени не хватало прямых доказательств такого скрытого искажения данных в суперкомпьютерах, за исключением того, что Баутиста-Гомес описывает как «странные вещи, которые мы не знаем, как объяснить». В 2016 году вместе с ученым-компьютерщиком Саймоном Макинтош-Смитом из Бристольского университета он решил найти эти ошибки, используя специально разработанное сканирующее память ПО для анализа кластера из 1000 компьютерных узлов (точек данных) без какой-либо ECC. За год они обнаружили 55 000 ошибок памяти.
«Мы наблюдали много однобитовых ошибок, чего и следовало ожидать. Мы также видели множественные двузначные ошибки, а также несколько многобитовых ошибок, которые бы не заметили даже с ECC», — вспоминает Баутиста-Гомес.
Ускоренное тестирование
Есть и другая актуальная проблема: всё более широкое использование GPU для высокопроизводительных вычислений. Изначально они создавались для быстрой обработки и создания изображений и были нужны только для игр. Но теперь эти устройства используются в суперкомпьютерах и в беспилотных автомобилях, поэтому последствия возможных сбоев становятся критически опасными.
Паоло Реч, используя ChipIR, разработал свой метод проверки частоты отказов GPU от Nvidia и AMD, используемых в беспилотных автомобилях. Они занимались подобными испытаниями в течение последнего десятилетия и разработали методы, позволяющие подвергать устройства высокому уровню нейтронного облучения во время работы приложения с прогнозируемым результатом. В случае систем для беспилотных автомобилей они, по сути, показывают устройству предварительно записанные видеоролики, чтобы проверить, насколько хорошо оно реагирует на то, что они называют "инцидентами с пешеходами": может ли оно распознать человека или нет.
Конечно, в этих экспериментах нейтронное облучение намного выше, чем от космических лучей. Фактически, это примерно в 1,5 миллиарда раз больше, чем можно было бы получить в обычных условиях. «Такой подход позволяет нам проводить ускоренные испытания, как если бы устройство находилось в реальной среде в течение сотен тысяч лет», — объясняет Фрост. Экспериментаторы пытаются воспроизвести 100 ошибок в час и, исходя из известного нейтронного потока, вычислить, какой коэффициент ошибок будет в реальном мире. Их вывод: в среднем GPU каждые 3,2 года может произойти ошибка.
Казалось бы, немного. Но, если вы используете их в большом количестве, например, в суперкомпьютерах или в критически важной для безопасности системе, то эти цифры будут недостаточно хорошими. При такой частоте ошибок в суперкомпьютере с 1800 устройствами ошибка будет возникать каждые 15 часов. Что касается автомобилей, то при наличии примерно 268 миллионов «умных» автомобилей в ЕС и 10 миллионов автомобилей, находящихся на дорогах в любой момент времени, будет происходить 380 ошибок в час, что нехорошо.
Масштабность
Увеличение размеров суперкомпьютеров, может усугубить проблему в следующем десятилетии. Первый суперкомпьютер Cray-1 был размером с пару комнат, а современные серверы занимают площадь, равную футбольному полю. Поэтому учёные активно работают над дополнительными методами проверки ошибок, которые могут быть использованы по мере роста суперкомпьютеров. А в сфере беспилотных автомобилей много сил тратится на анализ точек отказа. То есть зон, где возникают критические неисправности в микросхемах GPU, способные вызвать аварии. Задача-минимум: предотвратить хотя бы ошибки в этих зонах.
Другой метод, используемый для проверки точности расчётов на суперкомпьютере, — это использование физики. В большинстве научных приложений есть некоторые константы, например, общая энергия системы должна быть постоянной. Поэтому время от времени можно проверять приложение, чтобы узнать, теряет ли система энергию или набирает её. Если это происходит, значит, что что-то идёт не так.
И Реч, и Баутиста-Гомес используют искусственный интеллект для создания систем, способных выявлять сбои. Паоло Реч работает с разработчиками ПО для проверки автономных транспортных средств, которое позволяет сравнивать последовательные изображения и выполнять «проверку чувствительности». На данный момент этот метод выявил 90% ошибок. Баутиста-Гомес использует машинное обучение для анализа выходных данных в режиме реального времени. «Например, если вы выполняете моделирование климата, эта система машинного обучения может анализировать давление и температуру моделирования. Глядя на эти данные, он узнает нормальные варианты, и когда у вас есть искажение данных, которое вызывает большие изменения, это может сигнализировать о том, что что-то не так». Такие системы пока широко не используются, но Баутиста-Гомес ожидает, что они понадобятся в будущем.
Квантовая головоломка
Если заглянуть в будущее, где вычисления, скорее всего, будут квантовыми, то становится понятно, как усложнят нашу жизнь космические лучи. Базовая единица квантовой информации, кубит, может существовать в трех состояниях: 0, 1 и смешанном, что обеспечивает параллельные вычисления и возможность выполнять расчёты, слишком сложные даже для современных суперкомпьютеров. Чтобы квантовые компьютеры функционировали, кубиты должны быть когерентными — это означает, что они действуют вместе с другими битами в квантовом состоянии. Сегодня самый длительный период когерентности для квантового компьютера составляет около 200 микросекунд.
Учёные Формаджо и Уильям Оливер из Массачусетского технологического института провели эксперимент с использованием радиоактивной медной фольги, производящей изотоп меди-64, распадающейся с периодом полураспада чуть более 12 часов. Они поместили её в холодильник с охлаждённым до жидкообразного состояния 3He и 4He со сверхпроводящими кубитами Оливера. «Сначала мы включал свой прибор, и ничего не работало», — описывает Формаджо, «но через несколько дней, появилась возможность зафиксировать хоть что-то [в квантовой когерентности], потому что радиоактивность снижалась. Мы делали это в течение нескольких недель и могли наблюдать, как кубит медленно возвращается к исходному состоянию». Исследователи также продемонстрировали эффект, создав массивную двухтонную стену из свинцовых кирпичей, которую они поднимали и опускали для защиты кубитов каждые 10 минут, и увидели, как меняется стабильность кубитов.
На основе этих экспериментов они предсказали, что космическое и другое внешнее излучение ограничивает когерентность кубита максимум до 4 миллисекунд (Nature 584 551). Проблема пока ещё не является серьёзной, но по мере увеличения времени когерентности радиационные эффекты станут более значительными.
Конечно, как и в случае с суперкомпьютерами, сообщество учёных ищет способ обойти эту проблему. Google предложил добавить островки из алюминиевой пленки в свой 53-кубитный квантовый процессор Sycamore. Кубиты сделаны из гранулированного алюминия, сверхпроводящего материала, содержащего смесь наноразмерных зерен алюминия и аморфного оксида алюминия. Они сидят на кремниевой подложке, и когда на неё воздействует излучение, происходит обмен фотонами между кубитом и подложкой, что приводит к декогеренции. Есть надежда, что островки алюминия будут улавливать фотоны.
Другое решение, предложенное Google, — это специальный код квантовой коррекции ошибок, называемый «поверхностным кодом». Google разработал шахматную доску расположения кубитов, где «белые квадраты» представляют кубиты данных, которые выполняют операции, а «черные квадраты» выявляют ошибки в соседних кубитах. Расположение позволяет избежать декогеренции, полагаясь на квантовую запутанность квадратов.
Задача на ближайшие несколько лет — найти способ повысить устойчивость суперкомпьютерных технологий. Возможно, что ошибки, вызванные космическим излучением, могут стать препятствием для более быстрых суперкомпьютеров, даже если размер компонентов будет уменьшаться.
Что ещё интересного есть в блоге Cloud4Y
→ Изучаем своё железо: сброс паролей BIOS на ноутбуках
→ Реклама в Windows 11 сломала «Пуск» и панель задач некоторых пользователей
→ Клавиатуры, которые постигла неудача
→ Мониторинг СУБД VMware Cloud Director и vCenter Server Appliance с помощью Zabbix
→ Из кузова грузовика в сумочку: самые известные портативные компьютеры
Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.