С днём килокубита, Хабр! Меня зовут Алексей, я исследователь Центра научных исследований и перспективных разработок компании «ИнфоТеКС», аспирант Центра квантовых технологий МГУ. Сегодня поговорим о недавнем анонсе килокубитного квантового компьютера и разберёмся, ознаменовал ли он начало новой эры квантовых вычислителей.

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)


  1. dprotopopov
    02.11.2023 12:28
    +1

    И это "официально", а сколько кубитов в машинах которые уже работают в АНБ - хз ...


  1. nckma
    02.11.2023 12:28

    А есть ли какие-то высокоуровневые языки программирования для этой штуки? Ну кроме python/qiskit, который похож скорее на ассемблер, чем на высокоуровневый язык.

    Сомневаюсь, что кто-то может написать программу типа взлома ключей на qiskit.


    1. dprotopopov
      02.11.2023 12:28
      +1

      q#

      https://habr.com/p/769148/

      https://habr.com/p/768666/

      https://habr.com/p/766512/

      https://habr.com/p/766512/

      Сомневаюсь, что кто-то может написать программу типа взлома ключей на qiskit.

      если взгляните на эти мои статьи - то увидите, что там по ходу вычислений, заодно, и ключик находится ...

      ну а программировать можно хоть на балалайке ... те же креи имели разную архитектуру ... ну а на ферритовых матрицах с операциями матричных трансформаций тоже народ писал - и даже диспетчерские авиаслужбы с этим работали чтобы разводить самолёты по эшелонам


      1. nckma
        02.11.2023 12:28
        +1

        Ну допустим, это q#.

        Но ведь все компьютеры разные, как потом скомпилированную программу (байт код?) запустить на всех этих разных по архитектуре компьютерах? Должен быть какой-то загрузчик (созданный производителем компьютера?), который инициализирует компьютер согласно байткоду q#? Как это вообще работает? Похоже ли это к примеру на ПЛИС? В ПЛИС загружается прошивка, которая устанавливает связи между логическими элементами схемы, фактически в статическую память ПЛИС загружается битовый образ прошивки, который управляет мультиплексорами, которые связывают логические элементы. В квантовом компьютере примерно так же или нет?


        1. dprotopopov
          02.11.2023 12:28
          +1

          Но ведь все компьютеры разные, как потом скомпилированную программу (байт код?) запустить на всех этих разных по архитектуре компьютерах?  ...


          1. nckma
            02.11.2023 12:28
            +1

            Ну извините, что я такой бестолковый и не понимаю чего-то. Но вы же написали статью, видимо предполагали, что будут вопросы?

            Попробую изложить свой вопрос по другому. Вот к примеру фрагмент программы для квантового компьютера:

            Здесь всего 7 кубитов. В программе используются следующие элементы: H (Адамара), X (NOT) и + (CNOT и CCNOT).

            Программа придуманная человеком определяет соединение этих элементов в последовательности и связи между кубитами. Существуют ли физически эти элементы H,X,CNOT,CCNOT по отдельности в виде деталей, и как они физически соединяются?

            К примеру в этой программе состояние кубита q0 передается на операцию Адамара, а состояние кубита q4 передается на NOT и потом Адамара. А кубиты q1 и q2 наоборот сперва Адамара а потом NOT.

            А в другой программе будет конечно не так - ведь это будет другая программа.

            Как обеспечивается загрузка / инициализация вот этих связей в квантовом компьютере?

            Причем, как вы в своей статье написали есть разные архитектуры: "на кубитах на основе сверхпроводников" и на "принципе электронных подуровней атома в магнито-оптической ловушке". Вот собственно мой вопрос, а как в момент запуска программы на квантовом компьютере образуются связи между элементами в компьютерах обоих архитектур?

            Вполне допускаю, что я по не знаю спрашиваю какую-то глупость. Но вы же видимо понимаете это все? Пожалуйста объясните.


            1. dprotopopov
              02.11.2023 12:28

              Ну наверно это надо будет спрашивать у производителей оборудования.

              Например, а могу допускать, что можно построить вычислитель где реализация схемы будет реально механическим устройством - то есть шаговые двигатели будут двигать поляризационные фильтры в область прохождения луча - приблизительно как это было с компьютером, который разработал тьюринг для энигмы - там реально диски механические крутились ...

              А программеру даётся набор базовых операций - и делай реализацию требуемой вычислительной модели ...

              ЗЫ. по поводу механики - если, допустим надо 1000 гейтов, а каждое механическое соединение требует 1 см, то этот регистр физически потребует 10 метров, как минимум. И лазер нужен, чтобы всё это пробить и не сжечь

              ЗЗЫ. Вы видимо не помните откуда пошёл термин "прошивка" - так там вообще ручками провод по ферритовой матрице протягивали


              1. nckma
                02.11.2023 12:28
                +2

                Хотелось бы понять, как это всё работает от компилятора до реализации в железе. К сожалению такой информации в понятном виде нигде не находил.

                Вот к примеру, как работает обычный процессор я представляю себе - его можно самому на верилоге написать и загрузить в ПЛИС, потом написать программу откомпилировать и она будет на этом процессоре работать.

                С квантовыми компьютерами все не так. Никто толком объяснить не может.


                1. 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)

                  https://habr.com/p/759352/

                  Могу только предполагать, что с использованием существующей электроники девайс будет управлять этим нечто, называемое "кубит/кудит/и тд". то есть будет некий набор сигналов управления и считывания, который вы так же сможете смоделировать через verilog и загнать в плис (то есть как и для станка с чпу)

                  ну а для программирования - также опишите микрокоманды, а дальше развернёте весь язык высокого уровня.

                  собственно набор действий нужен небольшой

                  • аллокирование ресурса

                  • инициализация

                  • применение гейта (контролируемого гейта) или просто трансформации, заданной тензором ... те создание конвейера обработки

                  • считывание состояния

                  • освобождение ресурса


                  1. nckma
                    02.11.2023 12:28
                    +1

                    С теорией вопроса как раз более или менее понятно.

                    Лично я прочитал квантовый ликбез "Алгоритм Гровера" вот здесь https://eslitak.livejournal.com/247410.html

                    (Хотя и тут в математических выкладках есть опечатки, на кои я указывал автору, но он не исправил). Это самая понятная статья из всех, что я видел. По этой же статье я писал свою первую программу на python / qiskit и она заработала. Но что дальше...

                    Во всей этой истории остается действительно непонятным

                    1) физическая реализация и вот эти все вопросы типа как инициализируется и стартует программа

                    2) практическая применимость. По ссылке которую я привел к примеру рассматривается задача "есть ли число 9 среди чисел от 0 до 15". Ну право слово смешно. Покажите мне лучше программу на q# для вычисления нонсе биткоина.


  1. Sarjin
    02.11.2023 12:28

    #В любом случае, 1000 кубитов – существенный шаг вперёд для индустрии.

    раз индустрия, значит можно купить? сколько стоит машина? Вы как специалист работающей в области уверен знаете


    1. 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


  1. dsoastro
    02.11.2023 12:28

    А что-то реально ценное с этими машинами уже посчитали? Иначе какой толк от них?


    1. micronull
      02.11.2023 12:28

      Решают задачу коммивояжёра.


    1. ssj100
      02.11.2023 12:28

      Что вы хотите от дитя - сказал Фарадей когда спросили что дает еле уловимый ток при перемещении магнита

      Никто не знает к чему это приведет, может это бесперспективное направление как экранопланы, а может и выльется во чтото полезное


      1. dsoastro
        02.11.2023 12:28

        я к тому что 1000 кубитов это реально много. Можно вроде ассиметричную криптографию ломать с таким количеством. Но ничего об этом не слышно, что наводит на мысли что эти 1000 кубитов какие-то не те кубиты..


        1. DimDimDimDimDim
          02.11.2023 12:28
          +2

          Здесь еще не стоит забывать, что факт взлома не всегда выгодно раскрывать. Например, как было с Энигмой, когда компрометация вскрылась только спустя продолжительное время. Так что есть небольшой шанс, что "ничего не слышно" по вполне закономерным причинам)


          1. XenRE
            02.11.2023 12:28

            В данном случае это секрет полишинеля - алгоритм известен, и как только появиться возможность на нем наверняка попытаются прогнать ту же факторизацию.

            На уровне идеи 1000-кубитный регистр даёт невероятные возможности ... атакой 256-битных симметричных шифров.

            А вот это вообще нереально, причем скорее всего никогда - для симметричных алгоритмов есть только алгоритм Гровера, а он бесполезен т.к. сложность остается экспоненциальной, только уполовинивается степень.


            1. dprotopopov
              02.11.2023 12:28

              так может есть и другие алгоритмы? как это было с алгоритмом известным впоследствии как rsa?


        1. Shkaff
          02.11.2023 12:28
          +1

          1000 кубитов это очень мало, т.к. для реализации любого реального алгоритма нужна коррекция ошибок. Каждый логический кубит требует десятков и сотен тысяч физических кубитов с учетом алгоритмов коррекции. Так что какой-то полезный взлом можно будет делать с КК с ~1млн кубитов.


  1. micronull
    02.11.2023 12:28

    сколько устойчивых к ошибкам логических кубитов мы можем получить?

    Как понял, эту проблему решили с помощью нескольких (сотен, тысяч, миллионов) прогонов.


    1. Shkaff
      02.11.2023 12:28
      +2

      Прогоны не решают проблемы ошибок. Прогоны нужны для получения правильного результата вычислений. За каждый прогон вы получаете случайный результат, правильный при этом только наиболее вероятен, но не гарантирован. Поэтому надо набрать большую статистику, чтобы быть уверенным в правильности результата.