Совсем недавно на Хабр пришла через песочницу уважаемая Елизавета @Antiquesikнаписавшая статью «Quirk: квантовый симулятор для начинающих». Елизавета, сразу уловившая, что статьи на Хабре нужно щедро и красиво иллюстрировать, рассказывает о некоторых опытах из области квантовой физики, которые этот симулятор позволяет смоделировать прямо в браузере.

Эта статья вернула меня к идее разобрать виртуализацию квантовых компьютеров и рассказать о том, какие наработки такого рода сейчас существуют и развиваются. Около трёх лет назад уважаемый @Albert_Wesker разместил на Хабре в корпоративном блоге компании «Timeweb Cloud» перевод «Уделываем классические компьютеры при помощи Borealis», где рассказал, по-видимому, о первом общедоступном квантовом компьютере на 216 кубитов, развёрнутом в облаке (также в этой статье упоминается аналогичная 8-кубитная машина X8, в которой запутаны 8 фотонов).

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

Почему так сложно конструировать квантовые компьютеры

Подробную техническую статью, раскрывающую эту проблему, я нашёл в блоге Дэна Элтона на сайте «More is different». В ней не только объяснены инженерные сложности конструирования таких машин, но и рассказано о двух ключевых препятствиях на пути к созданию серийного квантового компьютера — это накопление ошибок и декогеренция кубитов. Кроме того, Элтон вкратце характеризует основные компании, стремящиеся к созданию универсального компьютера и описывает, какие физико-инженерные технологии они тестируют. На Хабре вашего пристального внимания заслуживает статья уважаемого Михаила Анатольевича Ремнева @maremnev «Что может квантовый компьютер уже сегодня. По фактам», опубликованная в конце 2024 года в корпоративном блоге компании Cloud.ru и победившая в конкурсе «Технотекст-7». В этой статье рассказано, в каких областях квантовые вычисления уже сегодня (ещё вчера) были востребованы в практической плоскости; в частности, автор упоминает факторизацию чисел и дизайн молекул.     

Многообещающие перспективы квантовых вычислений стали превращаться из фантастики в обозримую реальность в период с 1980 по 1985 год, когда Юрий Иванович Манин и Пол Бениофф предложили концепцию квантового компьютера, и вскоре после этого были сформулированы алгоритм Гровера и алгоритм Шора, продемонстрировавшие безграничные возможности квантовых компьютеров в области (противодействия) криптографии. Тем не менее, уже тогда стало понятно, насколько сложно будет проектировать, конструировать и программировать квантовые компьютеры. Мало того, что квантовые компьютеры работают только до тех пор, пока удаётся удерживать в суперпозиции входящие в их состав кубиты (элементарные частицы или атомы, в том числе, нейтральные). Вдобавок к этому, работа квантового компьютера требует постоянной коррекции ошибок, возникающих из-за шума (помех), отказов отдельных кубитов и декогеренции.  

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

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

Как видите (refrigerated enclosure), квантовый компьютер работает только при температуре близкой к абсолютному нулю. По состоянию на 2020 год твердотельный квантовый компьютер работал при 1,5 кельвинах, а для промышленного использования квантовых компьютеров эту температуру требуется довести хотя бы до 3,7 кельвина.

Наконец, вернусь к ошибкам и шуму, возникающим при квантовых вычислениях. Ошибки одних кубитов в принципе корректируются другими кубитами, но в нынешнем состоянии абсолютное большинство кубитов в квантовом компьютере занято именно исправлением ошибок. Относительно современные (на конец 2024 года) соотношения количества кубитов, необходимых для полезных вычислений и для исправления ошибок, разобраны в статье уважаемого Василия Панюшкина «Квантовый корректор. Приближает ли новый процессор Google безошибочные квантовые вычисления». Здесь я проиллюстрирую лишь, как именно возникает и корректируется ошибка при квантовых вычислениях.

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

Что такое квантовая виртуализация

Квантовая виртуализация подобна обычному использованию гипервизора, но с интеграцией квантовых вычислительных ресурсов в обычную серверную инфраструктуру. В данном случае между квантовыми вычислителями и классическим компьютером настраивается гипервизор — программный слой, расположенный между железом и операционной системой. Гипервизор отвечает за создание виртуальных машин или контейнеров — разницу между двумя этими вариантами виртуализации рассмотрела на Хабре компания «Cdnnow» в статье «Хватит называть контейнеризацию виртуализацией». Авторы статьи указывают, что все гипервизоры бывают двух типов, поэтому просто позаимствую у них иллюстрацию:

Таким образом, гипервизор первого типа (для голого металла) работает прямо на базовом оборудовании. Программы такого рода — VMware ESXi, Microsoft Hyper-V, Xen.

Гипервизоры второго типа работают на базе операционной системы, установленной на хосте: таковы, например, VirtualBox или VMware Workstation.

Аналогия с квантовыми вычислениями довольно условна, так как в классическом компьютере гипервизор абстрагирует физические ресурсы, превращая их в логические. В логическом виде их можно динамически выделять виртуальным машинам или контейнерам. В настоящее время Google, Microsoft и исследовательские институты (в частности, Колумбийский) пробуют адаптировать эту парадигму для логической виртуализации кубитов. Если эти опыты увенчаются успехом, то квантовые процессоры (QPU) станут сосуществовать с графическими (GPU) и классическими (CPU). В таком случае получатся гибридные системы, в которых, вероятно, могут работать три слоя — квантовый вычислительный, классическая виртуальная машина, а в ней — обычный софт.   

В такой среде, которую можно условно назвать квантовой виртуальной машиной (QVM) виртуализуются квантовые ресурсы, а именно — кубиты, квантовые гейты (вентили) и квантовые регистры. Управлять этой системой будет квантовый гипервизор, в распоряжении которого могут быть несколько квантовых виртуальных машин, каждая из которых занята обработкой своих алгоритмов и рабочих нагрузок. Квантовую виртуальную машину можно скомпоновать и выделить по запросу, подобрав для неё нужное количество кубитов и ресурсов.

Обсудим, как можно виртуализовать кубиты, сымитировав их в виде логических сущностей. На логических кубитах проще тестировать вычисления, снижая количество ошибок и, самое главное — шума.

Кубиты и квантовые гейты как структуры данных, операторы и регистры

При квантовых вычислениях каждая программа представляет собой квантовую схему. Квантовая схема представляет собой контур из запутанных кубитов, полезный результат из которых извлекается путём измерения кубитов и последующей декогеренции (выхода из суперпозиции). 

Кубит — элементарная составляющая квантовой схемы, он аналогичен регистру классического компьютера. Тем не менее, тогда как значение регистра может быть только 0 или 1, кубит (до измерения) остаётся в суперпозиции, которая представляет собой любое сочетание состояний, обозначенных через 0 и 1. Элементарная операция квантового компьютера, аналогичная инструкции классического процессора, называется «квантовый гейт». Современный квантовый гейт обычно оперирует одним или двумя кубитами. Соответственно, в квантовом компьютере два однокубитных гейта могут одновременно обрабатывать два кубита, а два двухкубитных гейта могут одновременно обрабатывать две не связанные друг с другом пары кубитов. Квантовые гейты вызывают интерференцию кубитов, в результате чего некоторые состояния кубитов могут сочетаться, а другие состояния гарантированно исключаются. Кроме того, между разными кубитами при вычислениях возникает квантовая запутанность, в результате чего их состояния коррелируют.

В результате измерения кубитов получается информация в виде классических битов. При измерении квантовая функция схлопывается, и результат такого измерения равен 0 или 1, но при этом имеет вероятностную природу. После измерения квантовая программа (схема) завершает работу и выдаёт столько битов информации, сколько кубитов участвовало в её работе. Квантовый гейт подобен логическому вентилю и регулирует операции в квантовой схеме так:

Логические кубиты

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

  1. Как можно серьёзнее сократить количество ошибок на логических кубитах по сравнению с физическими.

  2. Исправить все найденные ошибки в квантовых схемах.

  3. Запутать друг с другом, как минимум, два логических кубита.

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

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

В середине 2025 года технология Quantinuum была добавлена в состав облачной платформы «Azure Quantum Elements» от Microsoft, которая позиционируется как в перспективе общедоступное виртуальное пространство для квантовых вычислений и полигон для обкатки языка программирования Q#.

В исполнении Microsoft ионные ловушки серии H от Quantinuum, выступающие в качестве логических кубитов, объединённые в архитектуру Quantum Charged Coupled Device позволили довести показатель успешности двухкубитных гейтов до 99,8%.

На машине Quantinuum, которой пользовались в Microsoft, имеется 32 физических кубита, 30 из которых удалось пустить на создание виртуальных кубитов. В запутанном виде процент ошибок в этих квантовых схемах составил 10-5 или 0,00001. То есть, одна ошибка на 100 000 прогонов, по сравнению с 8×10-3 или 0,008 на запутанных физических кубитах. Такого результата удалось добиться, задействовав два кубита на диагностику и исправление ошибок. Подробнее об этом опыте рассказано здесь.

HyperQ

HyperQ — это аналогичная разработка, многопользовательский квантовый компьютер, введённый в эксплуатацию инженерами Колумбийского университета летом 2025 года. По принципу работы эта машина похожа на облачный квантовый компьютер Azure, но состоит из изолированных квантовых виртуальных машин (qVMs) и работает на университетском оборудовании через гипервизор. В отличие от обычной «классической» виртуализации, в квантовой системе требуется минимизировать «шум» (помехи). Решая эту задачу, HyperQ изолирует каждую квантовую виртуальную машину при помощи «буфера» неактивных кубитов, задача которых — гасить интерференцию. Общая архитектура HyperQ выглядит так:

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

Таким образом, HyperQ пытается мультиплексировать квантовые операции, но от более ранних проектов такого рода отличается не только более высокой эффективностью, но и полной совместимостью с платформой IBM. Планировщик управляет непосредственно виртуальными машинами qVMs, точнее, их расположением в пространстве. Таким образом, получается топологический квантовый компьютер, конфигурация которого постоянно меняется — за что в одной статье его сравнивают с квантовым тетрисом. Как рассказано в этой обзорной работе, такая динамика позволяет не только обходить зашумленные области, но и при необходимости увеличивать виртуальную машину, вовлекая в неё новые кубиты, обходить зоны отказов, а также дробить каждую qVM  на более мелкие функциональные единицы.

Все эти ухищрения не только позволяют увеличивать время до декогеренции, но и выполнять на HyperQ многоступенчатые алгоритмы, что практически не удавалось делать в более ранних архитектурах. Компоновка кубитов в составе HyperQ может меняться примерно так (рамками показано, какие кубиты запутаны друг с другом):

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

Зачем всё это нужно

Я рассказал вам эту историю, чтобы продемонстрировать, как сильно программная составляющая квантовых вычислений обгоняет аппаратную. Виртуализация такого рода помогает разрабатывать и тестировать квантовые алгоритмы, проверять корректность программ перед выполнением их на реальном квантовом оборудовании, писать библиотеки и, что наиболее важно — встраивать квантовые вычисления в существующие программные экосистемы. Повышение точности квантовых вычислений давно превратилось в такую проблему, которая практически сводит на нет выигрыш от молниеносной скорости квантовых компьютеров, и требует первоочередного решения. Когда станет понятнее, к каким топологиям квантовых чипов стоит стремиться, можно будет эффективнее подбирать и конкретные носители (атомы, фотоны), выступающие в качестве кубитов, а также дорабатывать перенос информации, полученной в квантовых гейтах (регистрах) на классический носитель.