Работа без останова: можно ли научить компьютер не бояться ошибок? Евгений Золотов
Работа без останова: можно ли научить компьютер не бояться ошибок?
Евгений Золотов
Опубликовано 22 февраля 2013
Компьютер, способный работать без сбоев, без аварийных остановок, остаётся голубой мечтой с незапамятных времён. Избавиться от ошибок мы давно не надеемся: даже программы с открытым исходным кодом всё ещё содержат примерно одну ошибку на каждые две тысячи строк. В наших силах, похоже, лишь защититься от последствий.
Ещё двадцать лет назад ошибка в программе стремилась унести с собой результат работы не только самой программы, но и операционной системы. Популяризация микропроцессоров, способных аппаратно изолировать приложения друг от друга (архитектура x86 умеет это с середины 80-х), появление массовых операционных систем, умеющих использовать эту возможность, несколько улучшило ситуацию. Не стояла на месте и эволюция языков программирования. Вышедший из лабораторий Ericsson чудаковатый Erlang и его последователи делают ставку на конкурентное решение задачи множеством мелких параллельных процессов: если один из них вдруг «обваливается», соседям это не мешает.
Тем не менее и сегодня ещё стопроцентная надёжность остаётся недостижимой. Даже дата-центры таких гигантов бизнеса, как Amazon, Facebook, Google, Microsoft, обеспечивают аптайм лишь с одной девяткой после запятой (онлайн 99,9 процента времени). Вправе ли мы надеяться, что однажды научимся строить вычислительные машины, сохраняющие работоспособность вне зависимости от качества кода, решаемых задач, любых других обстоятельств? Учёные — пожалуй, единственные, кто ещё не растерял оптимизма. На днях группа британских компьютерщиков (University College, London) обнародовала результаты эксперимента, в рамках которого была создан действующий прототип именно такой — абсолютно надёжной! — машины.
Британцы оттолкнулись от простого рассуждения. Мы строим компьютеры и разрабатываем программы, равняясь на последовательное исполнение команд. Суперскалярные фокусы в микропроцессорах (уже Intel Pentium умел исполнять несколько команд одновременно) и суперкомпьютеры с их тысячами параллельно работающих узлов лишь маскируют это препятствие. Взгляните на картину в целом: весь компьютерный мир всё ещё крутится вокруг идеи последовательного исполнения. Если одна команда в потоке приводит к непредвиденному результату, выполнение прекращается — и вся задача остаётся нерешённой.
Представьте, как смешно выглядел бы, скажем, человек, надели нас природа таким вычислителем. Мы застывали бы на месте, если под ногой вдруг обнаруживалась бы лужа, теряли дар речи, если «синтезатор голоса» вместо слов вдруг выдавал бы хрипы и кашель. Слава богу (или эволюции), живые системы строятся по иному принципу. В живой природе балом правит децентрализованный, вероятностный, массивно-параллельный подход. Выполняя свои повседневные функции, тело получает информацию из нескольких источников, обрабатывает их независимо и не в унисон, а в случае непредвиденных ситуаций адаптируется, оценивая и корректируя состояние вышедших из строя узлов за счёт узлов, сохранивших работоспособность.
Это и попытались воспроизвести в виде компьютерной архитектуры британцы. Идея, несколько упрощая, следующая: каждая большая задача разбивается на множество независимых кусков, которые — и это важный момент — вместе с необходимыми исходными данными передаются на исполнение разным микропроцессорам. Авторы назвали это «системными вычислениями», потому что каждый микропроцессор с порученной ему частью задачи здесь фактически является самодостаточной системой (архитектура HAoS — Hardware Architecture of Systemic computation). Работают они одновременно, асинхронно, словно пчелиный рой или части человеческого тела. Вышла из строя одна система? Не беда! Можно добавить избыточности, сделав резервные системы, ждущие повода вступить в игру, а можно заставить некоторые из систем следить за соседями, скажем, перезагружая их в случае необходимости. Результатом станет машина, не просто чрезвычайно устойчивая к сбоям, но и обладающая необычной для компьютеров способностью «лечить» себя на ходу.
Строго говоря, авторы HAoS Америки не открыли, но научная пресса комментирует их работу тепло: британцы спроектировали и построили (с помощью имеющихся на рынке FPGA и графических процессоров) действующий, практически применимый образчик сверхнадёжного компьютера с архитектурой, отличной от доминирующей фон-неймановской, а попутно ещё и доказали, что такая машина может быть производительней, нежели предполагалось ранее.
HAoS — больше, чем просто эксперимент: уже есть конкретные планы её практического применения. К сожалению, пока не дома и не в офисе, где цена компьютерного сбоя не настолько велика, чтобы оправдать смену вычислительной архитектуры. HAoS планируется применить в науке — для эффективной симуляции живых систем (вроде очень сложных генетических алгоритмов или нейросетей). А следующим кандидатом считаются военные и представители космических отраслей. Так управление дроном кажется задачей, хорошо укладывающейся в идею и возможности HAoS. Равно и частные космические извозчики вроде SpaceX могут заимствовать такую архитектуру для своих бортовых компьютеров.
Будут ли и персоналки когда-нибудь строиться из системных кубиков а-ля HAoS? Очень может быть. Но тут необходимо сделать приятную поправку: на самом-то деле миллиарды человек уже пользуются преимуществами HAoS-подобных систем. Каждый день! Для того чтобы это увидеть, необходимо переключить внимание с микроуровня на уровень макро. Вспомните о коммерческих дата-центрах, с которых начался сегодняшний рассказ. «Облака», в которых хранятся данные и выполняются веб-сервисы Google, Facebook и прочих, к настоящему моменту превратились из просто серверных ферм в сложное целое, функционирующее в соответствии с принципами, очень похожими на живую природу.
Посмотрите, как строит своё облако, скажем, Microsoft. Кирпичиком, мельчайшей функциональной единицей для неё сегодня стал — как она сама его нарекла — ITPAC: контейнер размером с небольшой загородный домик, вмещающий тысячи серверов (на фото выше). Такой «кирпич» полностью самодостаточен: извне ему требуется только какой-никакой источник электричества и широкий интернет-канал, но, строго говоря, даже качество этих двух компонент особой роли не играет. ITPAC бросают в любой точке Земли — и он вливается в облако, беря на себя часть вычислений. Избыточность и высшая степень абстракции решаемых задач от «железа» позволяют не беспокоиться о судьбе конкретного «кирпича»: облако составлено из тысяч подобных юнитов — и если сколько-то из них выйдут из строя, на работоспособности облака в целом это не скажется. Та же картина в Google (где сломавшиеся серверы даже не трудятся менять сразу, ибо смысла в такой спешке нет), в Facebook (где петабайтные кластеры, работающие в том числе и под Erlang, обслуживают лишь несколько человек), в Amazon, Dropbox и многих других крупных компаниях.
Тот факт, что облака периодически всё-таки «зависают», говорит не столько о неспособности инженеров справиться с вечной проблемой, сколько о достигнутом консенсусе между спросом и предложением. Надёжности в 99,9 процента, очевидно, достаточно для бизнеса и рядовых пользователей. А конкуренция со временем улучшит эту цифру — возможно, и путём заимствования наработок из проекта HAoS. В любом случае, необходимость беспокоить рядового пользователя сменой архитектуры появится вряд ли.
К оглавлению
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
(6.1) Как управлять пользователями, которым можно заходить на компьютер?
(6.1) Как управлять пользователями, которым можно заходить на компьютер? В W2k есть механизм идентификации пользователей, при этом каждого пользователя можно ограничить в правах. Пользователей, на одной машине может быть множество, и что бы было проще ими управлять,
1.14. Как управлять пользователями, которым можно заходить на компьютер?
1.14. Как управлять пользователями, которым можно заходить на компьютер? Как любая NT, XP имеет механизм идентификации пользователей, и каждого пользователя можно ограничить в правах. На этих пользователях и их правах строится вся модель безопасности XP, как на локальной
Компьютер, излечися сам: удастся ли DARPA создать цифровую иммунную систему? Евгений Золотов
Компьютер, излечися сам: удастся ли DARPA создать цифровую иммунную систему? Евгений Золотов Опубликовано 01 ноября 2013 DARPA — Агентство перспективных оборонных исследований при Министерстве обороны США — известно нам как родина сети Интернет,
Виртуальную MasterCard можно купить за «Яндекс.Деньги» Крестников Евгений
Виртуальную MasterCard можно купить за «Яндекс.Деньги» Крестников Евгений Опубликовано 29 июля 2010 года Со вчерашнего дня пользователи системы «Яндекс.Деньги» могут приобрести предоплаченную виртуальную карту MasterCard Prepaid. В совместном проекте также
Горыныч: компьютер советской лунной программы Евгений Лебеденко, Mobi.ru
Горыныч: компьютер советской лунной программы Евгений Лебеденко, Mobi.ru Опубликовано 19 апреля 2011 года Приобретая компьютер, мы хотим, чтобы он проработал без сбоев, как можно дольше. Обидно, когда «подыхает» новенькая машина, и мастера сервисного
Чем можно заменить Ubuntu с Unity Евгений Крестников
Чем можно заменить Ubuntu с Unity Евгений Крестников Опубликовано 02 декабря 2011 года В последней версии популярного дистрибутива появилась GNOME 3 и состоялся окончательный переход на Unity. Раньше у пользователей был выбор: в GNOME 2 они могли работать с
Спасительные технологии: можно ли было избежать жертв на пароме «Сеул»? Евгений Золотов
Спасительные технологии: можно ли было избежать жертв на пароме «Сеул»? Евгений Золотов Опубликовано 17 апреля 2014 О катастрофах писать всегда тяжело: один человек погиб или десять — это человеческие жизни, и любые спекуляции, размышления в духе
BlackBerry всё Евгений Золотов
BlackBerry всё Евгений Золотов Опубликовано 24 сентября 2013 «Когда умирают тираны, в первый момент наступает замешательство: возможно ли это, неужто и они состоят из смертных молекул?»Это сказано про человека, не про компанию. Но именно эти слова
Мелочь, а неприятно! Как АНБ читает шифрованные чаты Skype и Outlook — и можно ли положиться на Android Евгений Золотов
Мелочь, а неприятно! Как АНБ читает шифрованные чаты Skype и Outlook — и можно ли положиться на Android Евгений Золотов Опубликовано 15 июля 2013 Нам недолго осталось наслаждаться разоблачениями Эдварда Сноудена. Пояснив, что владеет материалами, способными
Так почему гас олимпийский факел и можно ли было этого избежать? [дополнено] Евгений Золотов
Так почему гас олимпийский факел и можно ли было этого избежать? [дополнено] Евгений Золотов Опубликовано 09 октября 2013 В науке производства есть замечательная находка под названием poka-yoke. В переводе с японского — а если верить легенде, концепцию
В полёт без ограничений: правда ли мобильник опасен для самолёта и можно ли это исправить? Евгений Золотов
В полёт без ограничений: правда ли мобильник опасен для самолёта и можно ли это исправить? Евгений Золотов Опубликовано 26 июня 2013 «Дамы и господа, в целях вашей безопасности просим убедиться, что на время взлёта все электронные приборы выключены».
Портреты из будущего: как быстро накинуть десяток лет и почему компьютер этого не умеет Евгений Золотов
Портреты из будущего: как быстро накинуть десяток лет и почему компьютер этого не умеет Евгений Золотов Опубликовано 31 июля 2013 Молодого человека, который смотрит на вас с фотографии ниже, не существует в действительности. Или, правильней сказать,
Почему Челябинский метеорит привёл к такому количеству пострадавших? И можно ли избежать повторения? Евгений Золотов
Почему Челябинский метеорит привёл к такому количеству пострадавших? И можно ли избежать повторения? Евгений Золотов Опубликовано 16 февраля 2013 Осенью 1988 года мне, тогда школьнику первых классов в тогда ещё Свердловске, довелось пережить знаменитый взрыв на пригородной
Батарейка тяжёлая! Как и можно ли вообще отключить главный тормоз высоких технологий? Евгений Золотов
Батарейка тяжёлая! Как и можно ли вообще отключить главный тормоз высоких технологий? Евгений Золотов Опубликовано 11 февраля 2013 Под конец прошлой недели на западных форумах и в прессе разгорелся самый настоящий скандал вокруг одного из ключевых элементов планшетки
Мрачные итоги Pwn2Own: почему браузеры так легко взломать и почему линуксоидам можно волноваться меньше? Евгений Золотов
Мрачные итоги Pwn2Own: почему браузеры так легко взломать и почему линуксоидам можно волноваться меньше? Евгений Золотов Опубликовано 11 марта 2013 В английском айтишном жаргоне есть словечко «pwned», перевести которое на русский можно таким же коротким «поимели». Грубо,
Балмер всё Евгений Золотов
Балмер всё Евгений Золотов Опубликовано 26 августа 2013 Стив Балмер уходит из Microsoft. Честно, думали ли вы дожить до этого дня? Стив оставит пост CEO и компанию в течение следующих двенадцати месяцев, как только для него будет подобран достойный