Привет Пикабу! Квантовые компьютеры. Непонятные штуковины, работающие при лютом минусе и нарушающие привычную нам логику. Как на самом деле они работают? Почему их так сложно создать? На связи МК, давайте поговорим о том, как устроены самые необычные компьютеры в мире.
И начнем мы… с кубика Рубика. Да, с детской на первый взгляд игрушки, которая на самом деле устроена сложнее, чем кажется. Классический кубик Рубика имеет более 43 триллионов состояний.
В этом числе 18 нулей, это миллиард миллиардов. Ух! Между прочим, прокаченные азиаты легко собирают его за несколько секунд, вслепую. Как им это удается? Секрет в том, что восстановить кубик из любого состояния можно всего за 20 ходов или даже меньше по четким алгоритмам. Азиаты просто делают эти ходы чертовски быстро!
Стоп, это все увлекательно, но какое отношение кубик Рубика имеет к квантовым компьютерам? Да самое прямое. Управление квантовым компьютером во многом похоже на сборку кубика Рубика с завязанными глазами: начальное состояние хорошо известно, и существует ограниченный набор базовых элементов, которыми можно манипулировать с помощью определенного набора правил.
Но если это так просто - почему квантовые компьютеры не стали массовыми? А вот тут на арену выходит новая физика: дело в том, что наблюдение за квантовой системой во время ее работы приведет к тому, что она станет классической, и результат вычислений будет неверен. Да, все как с котом Шредингера, который жив и мертв одновременно лишь до того момента, пока вы не заглянете в коробку с ним.
Именно поэтому управление квантовым компьютером - крайне сложная задача. Нужно отслеживать все возможные факторы ошибок, при этом не следя за системой. Это сродни попытке доехать на машине из пункта А в пункт Б с повязкой на глазах, а снять ее можно только строго в пункте Б.
И это - не единственная необычная особенность квантовых вычислений, различия с классическими компьютерами лежат в самой основе. Вся привычная нам вычислительная логика базируется на битах, которые могут принимать строго одно из двух значений - 0 или 1. Квантовые компьютеры же манипулируют кубитами.
А теперь пристегните ремни - начинается веселье. Кубиты имеют абсолютно не интуитивный квантово-механический эффект под названием суперпозиция. Она позволяет им находиться в состоянии, в котором они имеют определенное количество нулей и определенное количество единиц. Коэффициенты, которые описывают, сколько единиц и сколько нулей имеет кубит, являются комплексными числами, что означает, что они имеют как действительную, так и мнимую части.
Но это еще не все. Ученые научились создавать кубиты совершенно особым образом, так что состояние одного кубита не может быть описано независимо от состояния других. Это явление называется запутанностью. Думаю, многие с ним сталкивались, надевая носки. Пока они не на ногах - это просто два носка. Но стоит один из них надеть на левую ногу, как второй автоматически становится правым.
Ладно, давайте разберем эту квантовую логику на простом примере. Возьмем два бита. Они вместе могут принимать 4 значения - 00, 01, 10 и 11. Теперь возьмем два кубита. Спасибо суперпозиции, они могут принимать несколько состояний 00, 01, 10 или 11. Одновременно. Лучше всего это визуализирует вот такая анимация, где один бит - это две точки, 0 или 1. Кубит же по сути является сферой возможных состояний между 0 и 1.
Что же это дает? А то, что n кубитов работают с информацией так же, как 2^n битов. Иными словами, всего 10 кубитов заменят 1024 бита. А для замены лишь 100 кубитов потребуется число с 30 нулями обычных битов. Для сравнения, всё человечество за год генерирует лишь несколько десятков зеттабайт информации - в этом числе на 8 нулей меньше.
Именно такая нереальная эффективность квантовых вычислений и сподвигает крупнейшие компании и университеты заниматься разработкой этого нового типа компьютеров.
Но вернемся к сложности вычислений - и да, снова поговорим про кубик Рубика. Дело в том, что проводимые над кубитами операции очень похожи на вращения кубика Рубика. И даже ошибки схожие, правда в случае с кубиком они проявляются сразу же: не довернули часть кубика до конца? Следующий поворот будет невозможен. С квантовыми вычислениями проблемы схожи - они тоже не идеальны. Из-за определенных ограничений управляющих сигналов и чувствительности кубитов операция, предназначенная для условного поворота кубита на 90 градусов, может в конечном итоге повернуть его на 90,1 градус, а может и на 89,9 градуса.
Казалось бы, такие ошибки могут показаться незначительными, но они быстро накапливаются, что в итоге приводит к совершенно неправильному результату вычислений.
Есть и другие источники ошибок - например, такое явление как декогеренция. Олды помнят дискеты и их способность со временем терять информацию из-за размагничивания. У кубитов схожая проблема - хотя их стараются делать максимально изолированными от окружающей среды, взаимодействия с ней все равно происходят. А они разумеется разрушают квантовую запутанность и приводят к потере данных. Конечно, ученые придумали квантовую коррекцию ошибок - да вот только она требует еще больше кубитов для реализации, что заводит нас в порочный круг.
Но, если все эти проблемы и сложности вас не отпугнули - пора рисовать чертеж ключа… в смысле квантового компьютера. Инженеры и ученые здраво рассудили, что такую сложную штуковину имеет смысл разделить на 5 уровней.
Первые два нам уже знакомы: на прикладном уровне находится по сути операционная система, которая позволяет человеку взаимодействовать с квантовым компьютером. На более низком слое классической обработки происходит перевод понятных человеку инструкций в машинный код, чтобы с ними мог работать квантовый компьютер, а также обратный перевод посчитанного результата в прикладной слой. По сути тут большой разницы с классическим ПК нет, так что спускаемся глубже в кроличью нору.
Вот тут уже начинается новое и неизведанное, а именно блок квантовой обработки данных, или QPU. Первые два слоя в нем отвечают за цифровую и аналоговую обработку, их цель - преобразовать машинный код в специальные сигналы, которые превратят кубиты в квантовые логические элементы. Также цифровой слой отвечает за сбор результатов и отправку их в слой классической обработки.
И вот на этом моменте происходит важная точка отсечения: сейчас со всеми сказанными ранее задачами теоретически могут справиться мощные суперкомпьютеры. Но когда в квантовые компьютеры будет добавлена коррекция ошибок, уровень цифровой обработки данных станет намного сложнее, и его уже не получится эмулировать на классических машинах.
Но вернемся к нашему рисунку квантового компьютера. Итак, слой аналоговой обработки данных работает с самым низким квантовым слоем, где и находятся непосредственно кубиты. Но как с ними взаимодействовать? Вот тут уже начинается жесткий матан и физика: для создания эффекта запутанности на кубиты посылают микроволновые импульсы, которые модулируются по фазе и амплитуде с пикосекундной точностью.
Для лучшего понимания этого промежутка времени - летящий на скорости в 1000 км/ч самолет успеет сдвинуться лишь на миллионную долю миллиметра.
И это - лишь одна из сложностей. В системах с десятками кубитов нужно заставить их производить различные действия, для чего их настраивают каждый на свою частоту. В таком случае каждый кубит можно представить как радиоприемник. Хотите передать ему данные? Настройтись на его частоту и сделайте это.
Эта стратегия на самом деле работает, пока кубитов мало. Но давайте представим гипотетический квантовый компьютер с миллионом кубитов. Каждый из них настроен на свою частоту, и чтобы отсечь шум и передать достаточно данных выделим каждому из них полосу пропускания, допустим, в 10 МГц. Тогда для всех кубитов потребуется полоса в 10 терагерц - далеко за гранью наших радиовозможностей, которые едва дошли до сотен гигагерц.
Хотя, надо сказать, возможное решение тут лежит на поверхности - спасибо мобильной связи, которая уже давно столкнулась с огромным числом абонентов в одной точке, каждый из которых жаждет выйти в интернет. Речь идет о сочетании частотного и пространственного мультиплексирования, то есть об уплотнении канала. Идея состоит в том, что можно использовать одну частоту для нескольких кубитов или групп кубитов одновременно, передавая данные для каждого из них в определенные промежутки времени.
Ну и последняя проблема - температурная. Для работы квантового компьютера нужны температуры вблизи абсолютного нуля, чтобы сохранялся эффект сверхпроводимости, когда сопротивление проводников равно нулю.
И проблема в том, что по мере развития квантовых компьютеров возникает желание запихнуть все три слоя блока QPU в один криогенный чип, на что современная полупроводниковая электроника пока что говорит категорическое "нет". Но на текущий момент в компьютерах с десятком кубитов достаточно, чтобы при сверхнизких температурах был только слой квантовой обработки, где находятся непосредственно кубиты.
Так что поздравляю - мы только что завершили чертеж простейшего квантового компьютера. Именно по этим принципам они сейчас и работают. Что они могут?
Запутать десяток-другой кубитов на 50 микросекунд, после чего расчеты утонут в ошибках. Для создания полноценного компьютера этого мало, и даже если продолжить масштабировать текущие принципы, то пределом будет где-то сотня кубитов. Этого хватит для создания своеобразного ускорителя вычислений для обычного компьютера - как видеокарта, которая обучает нейросетки или рендерит видео ощутимо быстрее обычных CPU. Только в данном случае такой квантовый ускоритель будет как орешки щелкать задачи по криптографии.
Но мы же не хотим просто ускоритель, верно? Что же требуется, чтобы создать полноценный самостоятельный квантовый компьютер с сотнями тысяч или даже миллионами кубитов?
Разумеется, нужна коррекция ошибок. Все дело в том, что каждый кубит - это личность со своим характером. Они имеют неоднородности, которые получается корректировать вручную, пока кубитов пара десятков. Но что делать, если их на несколько порядков больше?
Перейти от физических кубитов к логическим. Берем несколько сотен и даже тысяч кубитов, обзываем часть из них коррекционными и все вместе называем логическим 2-37) кубитом. Это убивает сразу двух зайцев: во-первых, состояние коррекционных кубитов позволяет отслеживать и исправлять возникающие ошибки. Во-вторых, такое объединение кубитов ощутимо снизит необходимое количество цифровых соединений в QPU, так как теперь управление будет происходить на более высоком логическом уровне.
Но все еще речь идет о гигантских объемах информации. Нужно будет тысячи раз в секунду мониторить состояние миллионов кубитов без нарушения квантового состояния системы, попутно исправляя ошибки. Это потребует общей шины данных с пропускной способность в петабайты в секунду - в десятки раз больше, чем текущие рекорды скорости передачи данных в интернете.
И это - фундаментальные проблемы расширения возможностей квантовых компьютеров, которые сдерживают нас на уровне десятков кубитов. Но с учетом того, что множество ученых по всей Земле борются с этими проблемами - рано или поздно прорыв случится, и полноценные квантовые компьютеры с миллионами кубитов станут реальностью.
МК в Telegram - https://t.me/mknewsru
МК вконтакте - https://vk.com/mknews