Выбрать главу

Тем не менее и сегодня ещё стопроцентная надёжность остаётся недостижимой. Даже дата-центры таких гигантов бизнеса, как Amazon, Facebook, Google, Microsoft, обеспечивают аптайм лишь с одной девяткой после запятой (онлайн 99,9 процента времени). Вправе ли мы надеяться, что однажды научимся строить вычислительные машины, сохраняющие работоспособность вне зависимости от качества кода, решаемых задач, любых других обстоятельств? Учёные — пожалуй, единственные, кто ещё не растерял оптимизма. На днях группа британских компьютерщиков (University College, London) обнародовала результаты эксперимента, в рамках которого была создан действующий прототип именно такой — абсолютно надёжной! — машины.

Британцы оттолкнулись от простого рассуждения. Мы строим компьютеры и разрабатываем программы, равняясь на последовательное исполнение команд. Суперскалярные фокусы в микропроцессорах (уже Intel Pentium умел исполнять несколько команд одновременно) и суперкомпьютеры с их тысячами параллельно работающих узлов лишь маскируют это препятствие. Взгляните на картину в целом: весь компьютерный мир всё ещё крутится вокруг идеи последовательного исполнения. Если одна команда в потоке приводит к непредвиденному результату, выполнение прекращается — и вся задача остаётся нерешённой.

Представьте, как смешно выглядел бы, скажем, человек, надели нас природа таким вычислителем. Мы застывали бы на месте, если под ногой вдруг обнаруживалась бы лужа, теряли дар речи, если «синтезатор голоса» вместо слов вдруг выдавал бы хрипы и кашель. Слава богу (или эволюции), живые системы строятся по иному принципу. В живой природе балом правит децентрализованный, вероятностный, массивно-параллельный подход. Выполняя свои повседневные функции, тело получает информацию из нескольких источников, обрабатывает их независимо и не в унисон, а в случае непредвиденных ситуаций адаптируется, оценивая и корректируя состояние вышедших из строя узлов за счёт узлов, сохранивших работоспособность.

Это и попытались воспроизвести в виде компьютерной архитектуры британцы. Идея, несколько упрощая, следующая: каждая большая задача разбивается на множество независимых кусков, которые — и это важный момент — вместе с необходимыми исходными данными передаются на исполнение разным микропроцессорам. Авторы назвали это «системными вычислениями», потому что каждый микропроцессор с порученной ему частью задачи здесь фактически является самодостаточной системой (архитектура HAoS — Hardware Architecture of Systemic computation). Работают они одновременно, асинхронно, словно пчелиный рой или части человеческого тела. Вышла из строя одна система? Не беда! Можно добавить избыточности, сделав резервные системы, ждущие повода вступить в игру, а можно заставить некоторые из систем следить за соседями, скажем, перезагружая их в случае необходимости. Результатом станет машина, не просто чрезвычайно устойчивая к сбоям, но и обладающая необычной для компьютеров способностью «лечить» себя на ходу.

Строго говоря, авторы HAoS Америки не открыли, но научная пресса комментирует их работу тепло: британцы спроектировали и построили (с помощью имеющихся на рынке FPGA и графических процессоров) действующий, практически применимый образчик сверхнадёжного компьютера с архитектурой, отличной от доминирующей фон-неймановской, а попутно ещё и доказали, что такая машина может быть производительней, нежели предполагалось ранее.

HAoS — больше, чем просто эксперимент: уже есть конкретные планы её практического применения. К сожалению, пока не дома и не в офисе, где цена компьютерного сбоя не настолько велика, чтобы оправдать смену вычислительной архитектуры. HAoS планируется применить в науке — для эффективной симуляции живых систем (вроде очень сложных генетических алгоритмов или нейросетей). А следующим кандидатом считаются военные и представители космических отраслей. Так управление дроном кажется задачей, хорошо укладывающейся в идею и возможности HAoS. Равно и частные космические извозчики вроде SpaceX могут заимствовать такую архитектуру для своих бортовых компьютеров.