С днём килокубита, Хабр! Меня зовут Алексей, я исследователь Центра научных исследований и перспективных разработок компании «ИнфоТеКС», аспирант Центра квантовых технологий МГУ. Сегодня поговорим о недавнем анонсе килокубитного квантового компьютера и разберёмся, ознаменовал ли он начало новой эры квантовых вычислителей.
24 октября компанией Atom Computing был представлен пресс-релиз о создании первого в мире квантового компьютера с объёмом вычислительного регистра более 1000 кубитов. Конкретно, компания заявляет о вычислителе с 1225 атомными ловушками, из которых 1180 хранят кубиты.
Подобного рывка в развитии квантовых вычислений следовало ожидать. Компания IBM на протяжении четырёх лет следует своей дорожной карте по квантовым технологиям, и если обещание представить 400+ кубитов к 2023 году в 2019 выглядело крайне амбициозно, если не сказать самонадеянно, то сейчас не осталось никаких сомнений – темпы развития квантовых компьютеров соответствуют самым смелым прогнозам 2018-2020 годов.
Согласно дорожной карте IBM, квантовый вычислитель на 1000+ кубитов должен был появиться как раз до конца 2023 года. Однако, в развитии своих аппаратных разработок IBM сконцентрирована на одном архитектурном направлении – кубитах на основе сверхпроводников. Данная архитектура, безусловно, относится к наиболее развитым, но из-за малого времени жизни кубита с таким устройством задача масштабирования квантовых компьютеров со сверхпроводящей архитектурой сталкивается с большим количеством технических сложностей.
Другой перспективной архитектурой является использование в качестве кубита электронных подуровней атома в магнито-оптической ловушке. Кубиты данной архитектуры обладают большим временем жизни и меньше подвержены сторонним воздействиям, что потенциально упрощает масштабирование. Квантовый вычислитель на основе атомов в ловушках разрабатывается в Центре Квантовых Технологий МГУ. Именно данную архитектуру используют специалисты Atom Computing в новом вычислителе.
Обратной стороной атомной архитектуры является сложность взаимодействия кубитов. Подобно тому, как любая классическая программа может быть представлена с использованием простейших логических элементов: И, ИЛИ, НЕ, квантовая программа составляется из набора элементарных квантовых гейтов, реализованных в вычислителе аппаратно. Однако для того, чтобы называться универсальным программируемым квантовым компьютером, вычислитель в этом наборе обязательно должен иметь многокубитный запутывающий гейт. Реализация этого гейта представляет для квантовых вычислителей главную инженерную задачу. Двухкубитные гейты для атомов устроены гораздо сложнее однокубитных, выполняются существенно дольше, и именно их точность, так называемая величина фиделити, определяет эффективность квантового компьютера. Нетрудно в этом убедиться, ознакомившись со свежим выпуском Nature. Статьи «High-fidelity parallel entangling gates on a neutral atom quantum computer» и «High-fidelity gates and mid-circuit erasure conversion in an atomic qubit» заявляют о достижениях в этом направлении. Авторам первой удалось сконструировать 60-кубитный атомный массив, точность выполнения запутывающего гейта в котором достаточно низкая, чтобы потенциально можно было получить устойчивые к ошибкам вычисления при использовании поверхностных кодов. Вторая же предлагает реализацию атомной архитектуры, позволяющую эффективно детектировать возникающие ошибки.
Специалисты Atomic Computing при описании своей работы тоже предоставляют ссылку на работу в Nature, где заявляют о рекордном времени когерентности кубита. В статье можно подробнее ознакомиться с деталями реализации кубитной архитектуры. Результаты действительно впечатляют – время декогеренции в 40 секунд существенно превосходит предыдущие показатели и потенциально позволяет производить очень объёмные вычисления. Конечно, при условии, что информация в кубитах не будет потеряна вследствие неточности применяемых к ним гейтов, особенно двухкубитных. И вот тут информации о характеристиках нового устройства достаточно мало. По какой-то причине авторы не выносят точных значений фиделити двухкубитного гейта в своей системе в первые строки пресс-релиза. Нет этих данных и в упомянутой статье, а документ с общим описанием оригинальной технологии, на который ссылается пресс-релиз, содержит лишь концептуальное объяснение работы двухкубитного гейта для атомов на основе эффекта Ридберговской блокады – давно известного и широко используемого подхода, в оттачивании которого и состоит одна из главных задач на пути масштабирования атомных вычислителей. Вместо этого Atom Computing предоставляет в основном информацию о технологиях создания атомных регистров, точности сохранения в них информации и её дальнейшего считывания.
Таким образом, преждевременно говорить, что мы подошли к окончанию эпохи NISQ – Noisy Intermediate-Scale Quantum computers, шумных квантовых вычислителей среднего масштаба. Для полноценного осознания величины совершенного прорыва необходимо дождаться исчерпывающих данных о точности работы нового компьютера в реальных квантовых алгоритмах.
В любом случае, 1000 кубитов – существенный шаг вперёд для индустрии. На уровне идеи 1000-кубитный регистр даёт невероятные возможности, начиная от моделирования квантовой химии, заканчивая эффективным финансовым прогнозированием и атакой 256-битных симметричных шифров. В связи с этим очень полезно ознакомиться с очерком «Что нам делать с 1000 кубитов?» от 2018 года. Также это позволяет лучше осознать, насколько стремительно развивается индустрия квантовых вычислений. И хотя безусловно, число кубитов является главным сдерживающим фактором развития квантовых алгоритмов, получив достаточное число кубитов, мы, как и прежде, возвращаемся к вопросу точности – сколько устойчивых к ошибкам логических кубитов мы можем получить? И на этом этапе каждый инженер должен открыто и чётко характеризовать разработку, которую ему удалось создать. Этот вопрос ведёт нас к большим результатам, но требует большой работы и исследований.
Комментарии (22)
nckma
02.11.2023 12:28А есть ли какие-то высокоуровневые языки программирования для этой штуки? Ну кроме python/qiskit, который похож скорее на ассемблер, чем на высокоуровневый язык.
Сомневаюсь, что кто-то может написать программу типа взлома ключей на qiskit.
dprotopopov
02.11.2023 12:28+1q#
Сомневаюсь, что кто-то может написать программу типа взлома ключей на qiskit.
если взгляните на эти мои статьи - то увидите, что там по ходу вычислений, заодно, и ключик находится ...
ну а программировать можно хоть на балалайке ... те же креи имели разную архитектуру ... ну а на ферритовых матрицах с операциями матричных трансформаций тоже народ писал - и даже диспетчерские авиаслужбы с этим работали чтобы разводить самолёты по эшелонам
nckma
02.11.2023 12:28+1Ну допустим, это q#.
Но ведь все компьютеры разные, как потом скомпилированную программу (байт код?) запустить на всех этих разных по архитектуре компьютерах? Должен быть какой-то загрузчик (созданный производителем компьютера?), который инициализирует компьютер согласно байткоду q#? Как это вообще работает? Похоже ли это к примеру на ПЛИС? В ПЛИС загружается прошивка, которая устанавливает связи между логическими элементами схемы, фактически в статическую память ПЛИС загружается битовый образ прошивки, который управляет мультиплексорами, которые связывают логические элементы. В квантовом компьютере примерно так же или нет?
dprotopopov
02.11.2023 12:28+1Но ведь все компьютеры разные, как потом скомпилированную программу (байт код?) запустить на всех этих разных по архитектуре компьютерах? ...
nckma
02.11.2023 12:28+1Ну извините, что я такой бестолковый и не понимаю чего-то. Но вы же написали статью, видимо предполагали, что будут вопросы?
Попробую изложить свой вопрос по другому. Вот к примеру фрагмент программы для квантового компьютера:
Здесь всего 7 кубитов. В программе используются следующие элементы: H (Адамара), X (NOT) и + (CNOT и CCNOT).
Программа придуманная человеком определяет соединение этих элементов в последовательности и связи между кубитами. Существуют ли физически эти элементы H,X,CNOT,CCNOT по отдельности в виде деталей, и как они физически соединяются?
К примеру в этой программе состояние кубита q0 передается на операцию Адамара, а состояние кубита q4 передается на NOT и потом Адамара. А кубиты q1 и q2 наоборот сперва Адамара а потом NOT.
А в другой программе будет конечно не так - ведь это будет другая программа.
Как обеспечивается загрузка / инициализация вот этих связей в квантовом компьютере?
Причем, как вы в своей статье написали есть разные архитектуры: "на кубитах на основе сверхпроводников" и на "принципе электронных подуровней атома в магнито-оптической ловушке". Вот собственно мой вопрос, а как в момент запуска программы на квантовом компьютере образуются связи между элементами в компьютерах обоих архитектур?
Вполне допускаю, что я по не знаю спрашиваю какую-то глупость. Но вы же видимо понимаете это все? Пожалуйста объясните.
dprotopopov
02.11.2023 12:28Ну наверно это надо будет спрашивать у производителей оборудования.
Например, а могу допускать, что можно построить вычислитель где реализация схемы будет реально механическим устройством - то есть шаговые двигатели будут двигать поляризационные фильтры в область прохождения луча - приблизительно как это было с компьютером, который разработал тьюринг для энигмы - там реально диски механические крутились ...
А программеру даётся набор базовых операций - и делай реализацию требуемой вычислительной модели ...
ЗЫ. по поводу механики - если, допустим надо 1000 гейтов, а каждое механическое соединение требует 1 см, то этот регистр физически потребует 10 метров, как минимум. И лазер нужен, чтобы всё это пробить и не сжечь
ЗЗЫ. Вы видимо не помните откуда пошёл термин "прошивка" - так там вообще ручками провод по ферритовой матрице протягивали
nckma
02.11.2023 12:28+2Хотелось бы понять, как это всё работает от компилятора до реализации в железе. К сожалению такой информации в понятном виде нигде не находил.
Вот к примеру, как работает обычный процессор я представляю себе - его можно самому на верилоге написать и загрузить в ПЛИС, потом написать программу откомпилировать и она будет на этом процессоре работать.
С квантовыми компьютерами все не так. Никто толком объяснить не может.
dprotopopov
02.11.2023 12:28Для тех кого волнует теория вопроса
Лично я послушал лекции на openedu.ru https://openedu.ru/course/spbu/QUANTUMCOMP/?session=spring_2021
и почитал на ИНТУИТ https://intuit.ru/studies/courses/3633/875/info (https://intuit.ru/verifydiplomas/101614264)
Могу только предполагать, что с использованием существующей электроники девайс будет управлять этим нечто, называемое "кубит/кудит/и тд". то есть будет некий набор сигналов управления и считывания, который вы так же сможете смоделировать через verilog и загнать в плис (то есть как и для станка с чпу)
ну а для программирования - также опишите микрокоманды, а дальше развернёте весь язык высокого уровня.
собственно набор действий нужен небольшой
аллокирование ресурса
инициализация
применение гейта (контролируемого гейта) или просто трансформации, заданной тензором ... те создание конвейера обработки
считывание состояния
освобождение ресурса
nckma
02.11.2023 12:28+1С теорией вопроса как раз более или менее понятно.
Лично я прочитал квантовый ликбез "Алгоритм Гровера" вот здесь https://eslitak.livejournal.com/247410.html
(Хотя и тут в математических выкладках есть опечатки, на кои я указывал автору, но он не исправил). Это самая понятная статья из всех, что я видел. По этой же статье я писал свою первую программу на python / qiskit и она заработала. Но что дальше...
Во всей этой истории остается действительно непонятным
1) физическая реализация и вот эти все вопросы типа как инициализируется и стартует программа
2) практическая применимость. По ссылке которую я привел к примеру рассматривается задача "есть ли число 9 среди чисел от 0 до 15". Ну право слово смешно. Покажите мне лучше программу на q# для вычисления нонсе биткоина.
Sarjin
02.11.2023 12:28#В любом случае, 1000 кубитов – существенный шаг вперёд для индустрии.
раз индустрия, значит можно купить? сколько стоит машина? Вы как специалист работающей в области уверен знаете
Matshishkapeu
02.11.2023 12:28+1Можно. Машины в десятках/сотнях кубит стоят несколько десятков миллионов баксов. Аннилеры D-wave на 2000 кубитов стоили миллионов 15 но это не универсальный компьютер это аннилер. Порядок величин примерно такой. Расценки на доступ через облака есть на AWS braket и Microsoft Azure. На нейтральных атомах продает, например, французский Pasqal.
P.S. двухкубитное на спинах у китайцев можно купить тысяч за пять https://www.spinquanta.com/products-solutions/gemini
dsoastro
02.11.2023 12:28А что-то реально ценное с этими машинами уже посчитали? Иначе какой толк от них?
ssj100
02.11.2023 12:28Что вы хотите от дитя - сказал Фарадей когда спросили что дает еле уловимый ток при перемещении магнита
Никто не знает к чему это приведет, может это бесперспективное направление как экранопланы, а может и выльется во чтото полезное
dsoastro
02.11.2023 12:28я к тому что 1000 кубитов это реально много. Можно вроде ассиметричную криптографию ломать с таким количеством. Но ничего об этом не слышно, что наводит на мысли что эти 1000 кубитов какие-то не те кубиты..
DimDimDimDimDim
02.11.2023 12:28+2Здесь еще не стоит забывать, что факт взлома не всегда выгодно раскрывать. Например, как было с Энигмой, когда компрометация вскрылась только спустя продолжительное время. Так что есть небольшой шанс, что "ничего не слышно" по вполне закономерным причинам)
XenRE
02.11.2023 12:28В данном случае это секрет полишинеля - алгоритм известен, и как только появиться возможность на нем наверняка попытаются прогнать ту же факторизацию.
На уровне идеи 1000-кубитный регистр даёт невероятные возможности ... атакой 256-битных симметричных шифров.
А вот это вообще нереально, причем скорее всего никогда - для симметричных алгоритмов есть только алгоритм Гровера, а он бесполезен т.к. сложность остается экспоненциальной, только уполовинивается степень.
dprotopopov
02.11.2023 12:28так может есть и другие алгоритмы? как это было с алгоритмом известным впоследствии как rsa?
Shkaff
02.11.2023 12:28+11000 кубитов это очень мало, т.к. для реализации любого реального алгоритма нужна коррекция ошибок. Каждый логический кубит требует десятков и сотен тысяч физических кубитов с учетом алгоритмов коррекции. Так что какой-то полезный взлом можно будет делать с КК с ~1млн кубитов.
micronull
02.11.2023 12:28сколько устойчивых к ошибкам логических кубитов мы можем получить?
Как понял, эту проблему решили с помощью нескольких (сотен, тысяч, миллионов) прогонов.
Shkaff
02.11.2023 12:28+2Прогоны не решают проблемы ошибок. Прогоны нужны для получения правильного результата вычислений. За каждый прогон вы получаете случайный результат, правильный при этом только наиболее вероятен, но не гарантирован. Поэтому надо набрать большую статистику, чтобы быть уверенным в правильности результата.
dprotopopov
И это "официально", а сколько кубитов в машинах которые уже работают в АНБ - хз ...