RU2814936C1 - Управляющая система для квантовых вычислительных устройств - Google Patents
Управляющая система для квантовых вычислительных устройств Download PDFInfo
- Publication number
- RU2814936C1 RU2814936C1 RU2023108718A RU2023108718A RU2814936C1 RU 2814936 C1 RU2814936 C1 RU 2814936C1 RU 2023108718 A RU2023108718 A RU 2023108718A RU 2023108718 A RU2023108718 A RU 2023108718A RU 2814936 C1 RU2814936 C1 RU 2814936C1
- Authority
- RU
- Russia
- Prior art keywords
- control
- quantum
- computer
- server
- control board
- Prior art date
Links
- 230000007935 neutral effect Effects 0.000 claims abstract description 33
- 230000003287 optical effect Effects 0.000 claims description 31
- 230000006641 stabilisation Effects 0.000 claims description 12
- 238000011105 stabilization Methods 0.000 claims description 12
- 230000010365 information processing Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims 1
- 238000005259 measurement Methods 0.000 abstract description 14
- 238000009434 installation Methods 0.000 abstract description 4
- 230000000694 effects Effects 0.000 abstract description 3
- 239000000126 substance Substances 0.000 abstract 1
- 239000002096 quantum dot Substances 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000004044 response Effects 0.000 description 9
- 239000008186 active pharmaceutical agent Substances 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 150000002500 ions Chemical class 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- OYPRJOBELJOOCE-UHFFFAOYSA-N Calcium Chemical compound [Ca] OYPRJOBELJOOCE-UHFFFAOYSA-N 0.000 description 1
- 102100026816 DNA-dependent metalloprotease SPRTN Human genes 0.000 description 1
- 101710175461 DNA-dependent metalloprotease SPRTN Proteins 0.000 description 1
- 240000008042 Zea mays Species 0.000 description 1
- 235000005824 Zea mays ssp. parviglumis Nutrition 0.000 description 1
- 235000002017 Zea mays subsp mays Nutrition 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 229910052792 caesium Inorganic materials 0.000 description 1
- TVFDJXOCXUVLDH-UHFFFAOYSA-N caesium atom Chemical compound [Cs] TVFDJXOCXUVLDH-UHFFFAOYSA-N 0.000 description 1
- 229910052791 calcium Inorganic materials 0.000 description 1
- 239000011575 calcium Substances 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 235000005822 corn Nutrition 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005669 field effect Effects 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000005283 ground state Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000010584 magnetic trap Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 229910052701 rubidium Inorganic materials 0.000 description 1
- IGLNJRXAVVLDKE-UHFFFAOYSA-N rubidium atom Chemical compound [Rb] IGLNJRXAVVLDKE-UHFFFAOYSA-N 0.000 description 1
- 239000003381 stabilizer Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 229910052712 strontium Inorganic materials 0.000 description 1
- CIOAGBVUUVVLOB-UHFFFAOYSA-N strontium atom Chemical compound [Sr] CIOAGBVUUVVLOB-UHFFFAOYSA-N 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Abstract
Настоящее техническое решение относится к области квантовой вычислительной техники. Технический результат заключается в возможности обеспечения универсального доступа к квантовым вычислителям на основе нейтральных атомов и линейно-оптических вычислителей с использованием термооптического эффекта. Технический результат достигается за счёт того, что программно-аппаратный комплекс включает в себя выделенный сервер с подключенными к нему управляющими платами. Управляющие платы обеспечивают подключение сервера к экспериментальным установкам, которые непосредственно выполняют набор инструкций, содержащийся в бинарном файле инструкций. В пакет программного обеспечения входят: компилятор с языка высокоуровневых квантовых операций (инициализация, применение квантового логического вентиля, измерение) в набор специфических для выбранной физической архитектуры инструкций и специализированная операционная система, запущенная на выделенном сервере и ответственная за передачу инструкций на платы сопряжения. 5 з.п. ф-лы, 12 ил.
Description
Область техники, к которой относится изобретение
Изобретение относится к вычислительной технике и может быть использовано при управлении экспериментальными установками, осуществляющими квантовые вычисления.
Уровень техники
В отличие от классических вычислительных машин, работающих с битами информации, квантовый вычислитель оперирует квантовыми объектами, которые являются носителями кубитов - единицами квантовой информации. Так как состояние регистра из N кубитов может находиться в состоянии суперпозиции, которое является принципиально недоступным для регистра из N классических битов и описывается 2 м комплексными числами, использование квантовых вычислителей позволяет достичь превосходства над классическими электронными вычислительными машинами (ЭВМ) в ряде алгоритмов.
Кубит, как абстрактный носитель квантовой информации, может быть физически реализован разными способами. Например, возможно кодирование кубита в двух энергетических подуровнях сверхтонкого расщепления основного состояния водородоподобного атома (рубидий, цезий, кальций, стронций и др.). При этом для приготовления, изменения и итогового измерения состояний атомных кубитов применяются лазерные источники излучения. Другим примером физической платформы для реализации квантового вычислителя является линейно-оптический интегральный чип, который представляет собой систему связанных волноводов, образующих сложный интерферометр с возможностью управления фазовыми задержками в плечах. На входные порты такого чипа подается многофотонное состояние, которое затем подвергается преобразованию в чипе. Требуемое преобразование задается конкретными значениями фазовых задержек. В выходных каналах чипа установлены однофотонные детекторы, которые регистрируют наличие или отсутствие отдельных фотонов. В отличие от атомного вычислителя, где каждому атому сопоставляется один кубит, в линейно-оптическом чипе нет такого естественного соответствия и возможны различные кодировки. К широко используемым кодировкам относится так называемая dual-rail кодировка, где на один кубит приходится два порта чипа. Наличию фотона в первом порте и отсутствию во втором приписывается логическое состояние |0), в противоположном случае состояние считается равным
Квантовые вычисления считаются перспективной моделью вычислений, способной дать существенное превосходство по сравнению с классическими расчетами, в таких областях как материаловедение или квантовая химия. Поэтому со стороны научного сообщества возникает интерес к программированию квантовых алгоритмов с целью их запуска на реальных прототипах квантовых вычислителей, имеющих различную техническую реализацию. Таким образом, актуальным является создание универсальной системы, которая позволила бы, имея программу, содержащую инструкции на достаточно высокоуровневом языке, исполнить ее на различных архитектурах квантовых вычислителей.
Из существующего уровня техники известен ряд приборов и отладочных плат общего назначения, комбинация из которых позволяет получить функционал отдельных управляющих плат, входящих в состав предлагаемой системы. Например, устройства типа PCIe-7822 [https://www.ni.corn/pdf/manuals/376831a_02.pdf] имеют большое количество цифровых входов/выходов, высокую частоту обработки и генерации выходных временных импульсов, но малое напряжение логических выходов (до 3.3 В) не совместимое со многими устройствами стандарта TTL 5 В, а также малый выходной ток, не позволяющий подключать исполнительные устройства с сопротивлением входа 50 Ом. Существуют устройства, например, PCIe-6537B [https://www.ni.com/pdf/manuals/374373g.pdf], способные выдать требуемый ток на нагрузку и совместимые с управлением логическими уровнями 5 В, но такие устройства имеют малую частоту обработки информации, и как следствие, малое разрешение по времени при формировании требуемой экспериментальной последовательностью импульсов. Также, рассмотренные готовые устройства не позволяют детектировать короткие (менее 2 нc) импульсы, возникающие, например, при срабатывании лавинных фотодетекторов, для этого необходима дополнительная электрическая схема, которая бы производила обработку фронта поступающего импульса напряжения (или тока, в зависимости от типа фотодетектора), и позволяла бы программируемой логической интегральной схеме (ПЛИС) произвести захват входного сигнала на соответствующей тактовой частоте обработки.
Достаточно часто в качестве плат управления экспериментами используют схемотехнические решения на основе единственного микроконтроллера [Р.Т. Starkey, С.J. Billington, S.P. Johnstone, М. Jasperse, K. Helmerson, L.D. Turner, and R.P. Anderson. "A scripted control system for autonomous hardwaretimed experiments". In: Review of Scientific Instruments 84.8, 085111 (2013).]. Однако, даже при достаточно высокой частоте работы микроконтроллера (десятки или даже сотни мегагерц), из-за принципиально последовательной работы в силу конструкции микроконтроллера, такие системы управления не могут обеспечить синхронизацию работы множества ведомых устройств с точностью в десятки или даже сотни наносекунд.
Существуют более специализированные системы управления для квантовых вычислителей, так, например, известна разработка компании M-Labs [http://m-labs.hk/], включающая комплекс электроники и управляющих программ, реализованных на базе языка Python, позволяющий проводить эксперименты на квантовых вычислителях на базе ионов и нейтральных атомов. Набор электронных устройств данной фирмы основан на применении ПЛИС для осуществления управления периферийными устройствами с наносекундным временным разрешением. Также вышеобозначенная компания производит платы с установленными на них цифровыми генераторами частот, способные формировать синусоидальный сигнал с возможностью амплитудной, фазовой и частотной модуляций в диапазоне от 10 до 400 МГц. Данный сигнал может применяться для формирования лазерных импульсов заданной формы, необходимых для работы квантовых вычислителей на базе нейтральных атомов или ионов. Однако, рассмотренная система имеет узкую направленность, и по сути является лишь набором периферийных устройств с интерфейсом управления для проведения экспериментов на одном из типов квантовых вычислителей (за исключением сверхпроводящих и интегрально-оптических квантовых вычислителей).
Квантовый алгоритм может быть выражен в абстрактной форме в виде последовательности применения заданного набора квантовых вентилей и таким образом описан на высокоуровневом языке. Существование разнородных физических архитектур квантовых вычислителей ставит задачу разработки системы для запуска высокоуровневой квантовой программы на различных архитектурах.
Технической проблемой является создание единого программно-аппаратного комплекса (системы), который обеспечивал бы выполнение высокоуровневого программного кода на различных квантовых платформах, то есть обеспечение универсального доступа к вычислителям. Как было отмечено выше, существующие программно-аппаратные решения либо не представляют собой цельную систему, пригодную для запуска какого-то ни было высокоуровневого кода, либо являются специализированными системами, «заточенными» под одну архитектуру.
Раскрытие изобретения
Техническим результатом изобретения является создание единого программно-аппаратного комплекса (системы), обеспечивающего выполнение высокоуровневого программного кода на двух различных квантовых вычислительных системах (архитектурах): линейно оптической и основанной на нейтральных атомах.
Технический результат достигается с помощью управляющей системы для квантовых вычислительных устройств (квантовых вычислителей), включающей выделенный сервер и соединенные с ним управляющую плату (или плату сопряжения) вычислителя на нейтральных атомах и управляющую плату (или плату сопряжения) линейно-оптического вычислителя,
при этом сервер включает блок обработки информации, выполненный с возможностью загрузки квантовой программы (программы, реализующей квантовый алгоритм), содержащей команды для осуществления операций над кубитами; сервер выполнен с возможностью загрузки классической программы, обеспечивающей ввод данных в блок обработки информации и вывод данных из блока обработки информации, ее компиляции в последовательность инструкций для управляющих плат и запуска операционной системы OS, обеспечивающей передачу инструкций скомпилированной управляющей программы на управляющие платы и прием данных от управляющих плат;
при этом управляющая плата вычислителя на нейтральных атомах выполнена с возможностью подключения к вычислителю на нейтральных атомах и содержит формирователь импульсов и блок индикации состояния управляющих сигналов, блок компараторов, выполненный с возможностью приема данных из квантового вычислителя на нейтральных атомах, связанным с управляющим ядром, включающим ПЛИС, выполненную с возможностью подачи управляющих сигналов на вычислитель на нейтральных атомах, и связанный с ней микроконтроллер, выполненный с возможностью приема управляющих инструкций от выделенного сервера и передачи данных в выделенный сервер;
управляющая плата линейно-оптического вычислителя выполнена с возможностью подключения к линейно-оптическому вычислителю и содержит микроконтроллер, выполненный с возможностью передачи данных в выделенный сервер и приема управляющих инструкций от выделенного сервера, формирования и передачи цифровых управляющих сигналов на связанный с ним цифро-аналоговый преобразователь, выполненный с возможностью приема цифровых управляющих сигналов от микроконтроллера, формирования и передачи управляющих напряжений в связанный с ним многоканальный блок стабилизации токов, выполненный с возможностью приема управляющих напряжений от цифро-аналогового преобразователя, формирования и передачи управляющих токов в квантовый линейно-оптический вычислитель,, высоковольтный источник напряжения (импульсный повышающий преобразователь напряжения), выполненный с возможностью передачи питающего напряжения на многоканальный блок стабилизации токов.
Формирователь импульсов управляющего ядра управляющей платы вычислителя на нейтральных атомах выполнен с возможностью формирования сигналов формата TTL и/или LVDS. Функционал ПЛИС управляющего ядра управляющей платы вычислителя на нейтральных атомах может быть реализован посредством списка управляющих команд (коммуникационного протокола), описанного на фиг. 8. Многоканальный блок стабилизации токов управляющей платы линейно-оптического вычислителя, характеризуется числом каналов не менее 64. Многоканальный блок стабилизации токов управляющей платы линейно-оптического вычислителя характеризуется величиной управляющих токов от 0 до 32 мА для нагрузки от 500 до 1000 Ом. Высоковольтный источник напряжения управляющей платы линейно-оптического вычислителя выполнен с функцией защиты от короткого замыкания. Высоковольтный источник напряжения управляющей платы линейно-оптического вычислителя характеризуется величиной питающего напряжения от 12 до 48 В.
Изобретение представляет собой программно-аппаратный комплекс, включающий в себя выделенный сервер с подключенными к нему управляющими платами: платой управления вычислителем на нейтральных атомах и платой управления линейно-оптическим вычислителем. Платы управления обеспечивают подключение сервера к экспериментальным установкам, которые непосредственно выполняют набор инструкций, содержащийся в бинарном файле команд ВЕЧ. Для управления процессом загрузки, запуска, остановки и получения результатов работы квантовой программы выделенный сервер содержит специальное приложение, которое будем называть операционной системой OS. Операционная система OS предоставляет программный интерфейс API. Бинарный файл команд BIN генерируется компилятором QCC из исходного кода квантовой программы под целевой вычислитель.
Комбинация из компилятора QCC, единого программного интерфейса API и операционной системы OS, включенных в состав выделенного сервера с подключенными к нему через управляющие платы вычислителями, позволяет запускать квантовый алгоритм на различных физических архитектурах, то есть добиться универсальности управляющей системы. В качестве целевых архитектур рассматриваются архитектура на основе нейтральных атомов и архитектура линейно-оптических интегральных чипов (соответственно, вычислитель на нейтральных атомах и линейно-оптический вычислитель). Впрочем, в систему заложена модульность и возможность расширения под другие архитектуры. Также прозрачно для пользователя система может обращаться к эмулятору квантового вычислителя, запущенному на классической ЭВМ, (далее классический эмулятор SIM), например, с целью отладки квантовой программы перед запуском на реальном вычислителе.
Преобразование исходного кода квантовой программы выполняется компилятором QCC, который генерирует бинарный файл команд BIN под целевой квантовый вычислитель. Таким образом, наличие компилятора обеспечивает универсальность на программном уровне. Взаимодействие с операционной системой OS с точки зрения пользователя также унифицировано так как предоставляемый программный интерфейс API не зависит от вычислителя. Соответственно, операционная система OS с подключенными к ней платами управления выполняет функцию абстракции над используемым аппаратным обеспечением (т.е. квантовыми вычислителями).
Краткое описание чертежей
Изобретение поясняется чертежами и схемами.
На фиг. 1 представлена общая блок-схема управляющей системы, включающая блоки в составе выделенного сервера, и его подключение через платы управления к квантовым вычислителям. На фиг. 1 они обозначены как «Вычислитель на нейтральных атомах» и «Линейно-оптический вычислитель».
На фиг. 2 перечислены системные вызовы с их кодами, которые классическая программа посредством программного интерфейса API может направить операционной системе OS.
На фиг. 3 перечислены возможные статусы квантовых вычислителей до, во время и после выполнения квантовой программы. Классическая программа может запросить текущий статус с помощью запроса (системного вызова) status (второй столбец на фиг. 3 - Статус). В ответ на системный вызов операционная система OS посылает классической программе пакет данных, в котором содержится поле, указывающее на возникновение ошибки при обработке запроса или на успешную обработку системного вызова. Возможные значения этого поля перечислены на фиг. 4.
На фиг. 5 (фиг. 5 на 3 листах) представлены форматы бинарных пакетов данных, которые пересылаются между классической программой и операционной системой OS при выполнении системных вызовов. Приведен список полей для запроса и ответа в рамках того или иного системного вызова с указанием длины полей в байтах.
На фиг. 6 (фиг. 6 на 2 листах) представлен список команд, которые поддерживаются компилятором QCC и могут быть использованы при написании квантовой программы. Компилятор QCC переводит эти команды в набор инструкций для целевого квантового вычислителя и записывает полученные инструкции в бинарный файл команд BIN. Бинарный файл команд BIN затем может быть передан операционной системе OS для выполнения заложенной в нем программы на квантовом вычислителе.
На фиг. 7 (фиг. 7 на 6 листах) представлена принципиальная электрическая схема управляющей платы вычислителя на нейтральных атомах. Плата содержит микроконтроллер, отвечающий за коммуникацию между выделенным сервером и ПЛИС, установленной на плате. ПЛИС генерирует необходимые электрические импульсы для контроллеров лазеров и магнитных ловушек, входящих в установку квантового вычислителя на нейтральных атомах.
На прикладном уровне управляющая плата вычислителя на нейтральных атомах представляет собой устройство, имеющее адресное пространство с размеченными в нем переменными (полями). Посредством записи и чтения этих полей осуществляется взаимодействие с управляющей платой. Разметка адресного пространства с указанием смещений от начала представлена на фиг. 8 (фиг. 8 на 2 листах).
Управляющая плата линейно-оптического вычислителя представляет собой программируемый многоканальный источник тока, выводы которого подключены к линейно-оптическому вычислителю. На фиг. 9 (фиг. 9 на 2 листах) изображена часть принципиальной электрической схемы управляющей платы линейно-оптического вычислителя, содержащая цифро-аналоговый преобразователь, подключенный к микроконтроллеру (МК) посредством последовательного периферийного интерфейса SPI (на фиг. 9 МК не обозначен, вместо этого изображена цепь для подключения МК). На фиг. 10 (фиг. 10 на 4 листах) представлена другая часть принципиальной электрической схемы управляющей платы, представляющая собой многоканальный блок стабилизации токов. На фиг. 11 приведена часть принципиальной электрической схемы управляющей платы, представляющая собой импульсный повышающий преобразователь напряжения (высоковольтный источник напряжения), который обеспечивает питание многоканального блока стабилизации токов.
На фиг. 12 (фиг. 12 на 2 листах) изложен список команд, которые могут быть отправлены управляющей плате линейно-оптического вычислителя.
Позициями на фиг. 1, фиг. 7 и фиг. 9 (на фиг. 7 и фиг. 9 эти позиции указаны крупным шрифтом в левом верхнем углу соответствующего листа) обозначены: 1 - формирователь импульсов (в том числе на листе 1 и листе 2 продолжение на фиг. 7), 2 - блок индикации состояния управляющих сигналов (в том числе на листе 3 фиг. 7), 3 - блок компараторов (в том числе на листе 4 фиг. 7), 4 - управляющее ядро (в том числе на листе 5 фиг. 7), 5 - ПЛИС (в том числе на листе 5 фиг. 7 в центре листа в виде одной микросхемы), 6 - микроконтроллер (в том числе на последнем листе фиг. 7) в составе управляющей платы вычислителя на нейтральных атомах. 7 -микроконтроллер в составе управляющей платы линейно-оптического вычислителя (в том числе на листе 1 фиг. 9, включая цепь его подключения), 8 - цифро-аналоговый преобразователь (в том числе на последнем листе фиг. 9), 9 - многоканальный блок стабилизации токов (в качестве блока на схеме фиг. 1), 10 - высоковольтный источник напряжения (импульсный повышающий преобразователь напряжения, в качестве блока на схеме фиг. 1).
Осуществление изобретения
Общая блок-схема управляющей системы, взаимодействующей с квантовыми вычислителями, изображена на фиг. 1. Для запуска какого-либо вычислительного алгоритма используют квантовую программу с высокоуровневыми командами, например, инициализация регистра кубитов в начальном состоянии, применение логических вентилей над регистром, выполнение измерений состояния. Затем эта программа преобразуется (компилируется) в бинарный файл команд BIN посредством компилятора QCC для целевого вычислителя, то есть либо для вычислителя на нейтральных атомах, либо линейно-оптического вычислителя. Команды, содержащиеся в бинарном файле команд BIN, уже являются низкоуровневыми и привязаны к конкретной физической платформе. Классическая программа с помощью программного интерфейса API выполняет загрузку бинарного файла команд BIN в операционную систему OS. Также классическая программа управляет выполнением бинарного файла команд BIN, загруженного в операционную систему OS: например, запуск, остановка, получение результатов работы квантового алгоритма. Полезная нагрузка классической программы не ограничена только лишь контролем за выполнением бинарного файла команд BIN, загруженного в операционную систему OS. Классическая программа также может передать квантовому алгоритму различные параметры, и осуществлять классические расчеты, если это требуется алгоритмом решения задачи. Программный интерфейс API предоставляется операционной системой OS, которая отслеживает выполнение квантовой программы на подключенных к системе вычислителях. Исполнение операционной системы OS, классической программы и компиляция квантовой программы происходит на выделенном сервере, подключенном через управляющие платы к вычислителям.
Неотъемлемой частью управляющей системы является программный интерфейс API, предоставляемый операционной системой OS. Операционная система OS представляет собой серверное приложение, которое принимает и обрабатывает системные вызовы, а также высылает ответные сообщения клиенту, то есть классической программе, которая использует программный интерфейс API. Системные вызовы позволяют узнать статус вычислителя, загрузить скомпилированную квантовую программу (т.е. бинарный файл команд BIN) и данные в операционную систему OS, начать исполнение квантовой программы с произвольной точки, считать данные из классической памяти MEM.
Список возможных системных вызовов с их описанием представлен на фиг. 2. Вызовы write и read работают с участком классической памяти MEM, которая непосредственно доступна квантовой программе (то есть бинарному файлу команд, который загружен в операционную систему OS и выполняется ей). Размер классической памяти MEM может задаваться на этапе запуска операционной системы OS на выделенном сервере. Эта память служит для записи параметров квантового алгоритма или для хранения результатов измерения. В процессе работы квантовый вычислитель может находиться в одном из статусов, представленных на фиг. 3. Статус можно запросить системным вызовом status. После приема системного вызова операционная система OS формирует ответное сообщение. Каждый ответ содержит байт, сигнализирующий наличие или отсутствие ошибки. Возможные коды ошибок вместе с их описаниями представлены на фиг. 4.
Передача системных вызовов между классической программой и операционной системой OS осуществляется посредством сетевого протокола TCP. После получения и обработки вызова, операционная система OS высылает ответ, и TCP соединение закрывается.
Классическая программа и операционная система OS передают друг другу данные в бинарном формате. В передаваемых пакетах данных используется порядок следования байт от младшего к старшему (little endian). Все пакеты состоят из двух частей: заголовка и тела. Тело пакета содержит данные, необходимые для обработки системного вызова, и является специфичным для каждого вызова. У некоторых пакетов тело может отсутствовать. Формат заголовочной части, напротив, унифицирован. Формат заголовка и тела пакета для различных системных вызовов представлен на фиг. 5.
Квантовая программа компилируется в бинарный файл команд BIN, который можно загрузить в операционную систему OS. Используется стандартный формат ELF - Executable and Linkable Format. В заголовке файла должно быть отражено, что машина имеет размер машинного слова 32 бита, использует кодировку данных little endian, а тип файла должен быть указан как исполняемый. В файле используются четыре секции и один сегмент.
Сегмент должен быть отмечен как загрузочный и состоять из единственной секции.text, содержащей бинарные инструкции для вычислителя. Виртуальный и физический адрес отмечаются как 0x00, выставляются флаги 0x01 и 0x04 - загрузка и чтение, в байт информации о выравнивании данных записывается 0x00. Для секции выставляются флаги 0x02 и 0x04 -аллоцируемая и исполняемая. Тип секции - SHT PROGBITS=1. Выравнивание 0x00. Остальные секции должны содержать таблицу символов, которая в данном случае содержит информацию о метках, используемых в квантовой программе, таблицу строк, содержащую имена меток, и стандартную таблицу строк с именами секций. Имена, используемые для секций, соответственно.symtab, strtab, shstrtab. Выравнивание - 0x00.
С точки зрения пользователя квантовый вычислитель имеет участок классической памяти MEM, куда можно записывать, например, результаты измерений или параметры работы алгоритма. Доступ к этой памяти может выполняться из квантовой программы (квантовой программы в виде бинарного файла команд BIN, загруженного в операционную систему OS и исполняемого ею) или отправкой соответствующего системного вызова операционной системе OS. Классическая память MEM представлена массивом равноправных ячеек, вмещающих по одному машинному слову длиной в 4 байта. Всего доступно 640 КБ памяти. Адресация пословная.
При разработке языка программирования за основу был взят язык Quil [R. S. Smith, M. J. Curtis, W. J. Zeng "A Practical Quantum Instruction Set Architecture," arXiv: 1608.03355, (2017)]. Однако, полученный конечный язык программирования не является ни подмножеством, ни надмножеством языка Quil, хотя и имеет сходный синтаксис.Общая компоновка команды следующая:
За именем команды в круглых скобках следует опциональный набор параметров, разделенных запятыми. Далее без скобок следует набор аргументов, разделенных пробелами.
В исходном коде квантовой программы могут быть использованы константные численные значения и указатели на ячейки памяти. Константы записываются обычным образом, указатели записываются как номер ячейки памяти в квадратных скобках. Разделяются целочисленный тип данных и тип данных с плавающей запятой. Типы аргументов интерпретируются в соответствии с используемой командой.
Список поддерживаемых команд представлен на фиг. 6. Часть команд не исполняется непосредственно на вычислителе, а служит командами для компилятора. Например, INCLUDE включает файл с исходным кодом или LABEL создает метку в бинарном файле команд BIN, с которой можно затем начать исполнение программы с помощью системного вызова ExecLabel. Также имеется набор классических команд для ветвления по условию, перехода по заданному адресу, арифметических операций или работы с булевыми значениями. Наконец, присутствуют команды для квантового вычислителя, такие как: инициализация, применение вентилей, измерения.
Компилятор QCC переводит указанные выше команды в набор инструкций, специфических для данной физической архитектуры квантового вычислителя. После этого становится возможной передача инструкций на управляющую плату, которая управляет соответствующим вычислителем.
Для вычислителя на нейтральных атомах управляющая плата представляет собой комбинацию из ПЛИС и микроконтроллера, реализующего обмен информацией с выделенным сервером, где запущена операционная система OS. Помимо выполнения квантовых вычислительных операций управляющая плата вычислителя на нейтральных атомах позволяет проводить дополнительные калибровочные измерения для определения резонансов атомных оптических переходов; измерения параметров микроловушек, локализующих атомы в пространстве; измерения температуры локализованных атомов и др.
Предлагаемая управляющая плата вычислителя на нейтральных атомах реализована на базе ПЛИС фирмы Xilinx серии Spartan ЗЕ. Принципиальная электрическая схема управляющей системы представлена на фиг. 7. Данная схема разбита на несколько логических блоков включает:
• Управляющее ядро (поз. 4), выполненное в виде отдельной печатной платы, в том числе содержит Core3s500E фирмы Waveshare - ПЛИС (поз. 5), стабилизаторы напряжения для питания ПЛИС и энергонезависимую память для хранения управляющей программы (прошивки) для ПЛИС.
• Четыре (поз. 3) 50-омных входа (In1…In4), сигнал с которых подается на компараторы ADCMP604, данные входы могут служить входами внешней синхронизации, также применяются для оцифровки сигналов с лавинных фотодетекторов.
• Четырехканальную микросхему ЦАП для управления порогами срабатывания компараторов; микроконтроллер STM32F103C6T6 -осуществляет пакетный обмен по протоколу USB2.0, согласно фиг. 8, между выделенным сервером и ПЛИС, также задает пороги срабатывания компараторов, управляя ЦАП (все поз. 6).
• Восемь логических буферов SN74LVC1T45 (фиг. 7, лист 1), подключенных к выходным SMA разъемам (Out1…Out8). Сигналы с этих разъемов затем подаются для включения/отключения акустооптических модуляторов для формирования лазерных импульсов, на входы управления СВЧ генератором и на вход синхронизации ПЗС камеры (на поз. 1).
• Четыре формирователя дифференциальных сигналов ADM485, применяются для управления магнитными катушками, необходимыми для работы квантового вычислителя на базе нейтральных атомов (так же на поз. 1).
• Микросхему статической памяти AT45DB041D для хранения калибровочных переменных, используемых внутри ПЛИС (см. на поз. 4).
• Набор LED индикаторов для отображения текущего состояния всех входов и выходов (поз. 2).
• Набор кнопок для взаимодействия с микроконтроллером.
• Схему преобразователей напряжения на 3.3 и 5 В при входных напряжениях 9-15 В.
Управляющая плата вычислителя на нейтральных атомах обладает следующими техническими характеристиками:
• Количество выходных логических каналов (формат TTL) для управления внешними устройствами - 8 шт.
• Количество дифференциальных выходных каналов (формат RS-485) - 4 шт.
• Время переключения любого из логических каналов (формат TTL) по уровню (10-90)% - не более 5 нc
• Время переключения любого из дифференциальных выходных каналов по уровню (10-90)% - не более 15 нc
• Количество входов для регистрации импульсов лавинных фотодетекторов - 4 шт.
• Возможность установки порога дискриминации при регистрации входных импульсов - (0…5) В.
• Минимальная длительность входного сигнала для возможности регистрации в схеме - 1 не.
• Максимальная частота входных импульсов, разрешаемая схемой - 6 МГц.
Каждый эксперимент/вычисление, выполняемое квантовым вычислителем, состоит из циклически повторяемых экспериментальных последовательностей. Каждый цикл (новая экспериментальная последовательность) запускается после завершения предыдущего цикла и только при срабатывании триггерного события - например, достижение фиксированного числа импульсов срабатывания однофотонного детектора, либо приход электрического сигнала внешней синхронизации.
Каждая экспериментальная последовательность состоит из экспериментальных фаз (далее - просто фаз). Количество фаз от 1 до 13. При выполнении каждой фазы состояние выходов синхронизатора фиксировано.
Фаза 0 - задает начальное состояние управляющей системы до момента срабатывания триггера, длительность фазы 0 - не ограничена.
При обнаружении и подтверждении (см. смещение 0x5D, фиг. 8) триггерного события состояние выходов синхронизатора переводится в соответствие с маской для фазы 1. Длительность фаз 1…13 - фиксируется.
Управляющая плата линейно-оптического вычислителя представляет собой программируемый многоканальный источник тока. Управление фазовыми задержками в линейно-оптическом вычислителе происходит за счет термооптического эффекта: при локальном нагреве области вблизи оптического световода, находящегося внутри линейно-оптического чипа в составе линейно-оптического вычислителя, происходит изменение показателя преломления, и как следствие, меняется набег фазы в световоде. Изменение фазы приводит к изменению преобразования, выполняемого над входным квантовым состоянием.
На поверхности линейно-оптического чипа напылено множество металлических нагревателей с контактами к ним. Предлагаемая управляющая плата линейно-оптического вычислителя подключается к контактам для задания токов нагревателей и, соответственно, установки фаз в плечах интерферометра, «напечатанного» в линейно-оптическом чипе. Операционная система OS, запущенная на выделенном сервере, отправляет команды управляющей плате линейно-оптического вычислителя.
Для получения результатов измерений в состав линейно-оптического вычислителя входят счетные фотодетекторы (на фигурах не показаны), которые подключаются к коррелятору. Коррелятор регистрирует электрические импульсы, генерируемые фото детекторами. Коррелятор подключается к выделенному серверу посредством стандарта Ethernet. Операционная система OS выполнена с возможностью обработки данных, поступающих от коррелятора. В качестве коррелятора используются промышленно доступные устройства, например, модуль ТТМ8000 производства компании Roithner LaserTechnik.
Управляющая плата линейно-оптического вычислителя выполнена в виде набора отдельных печатных плат, задающих ток, подключенных к одному внешнему микроконтроллеру через последовательный интерфейс SPI. Каждая печатная плата является цифро-аналоговым устройством с восьмью выходными каналами. На плате установлены:
• 12 разрядный восьмиканальный цифро-аналоговый преобразователь серии AD5628, служит для установки значений стабилизируемого тока в каждом из восьми каналов (фиг.9).
• Аналоговая система стабилизации тока (8 шт.), состоящая из комбинации операционного усилителя серии AD8622, полевого транзистора серии IRF7103TR, токоизмерительного резистора, резисторов и конденсаторов обвязки (фиг. 10).
• Импульсный повышающий преобразователь напряжения с 12 В до 45 В для обеспечения питания подключаемой нагрузки (фиг. 11).
Каждый канал может выдавать ток от 0 до 32 мА на нагрузку от 500 до 1000 Ом, в зависимости от значения, установленного на требуемом канале цифро-аналогового преобразователя. Полное число каналов равно 64 при параллельном подключении восьми плат, задающих ток, к микроконтроллеру.
Управляющая плата линейно-оптического вычислителя подключается к выделенному серверу по интерфейсу USB. При правильном обнаружении устройства информационный светодиод на передней панели должен изменить цвет свечения с красного на зеленый. Взаимодействие с управляющей платой линейно-оптического вычислителя осуществляется при помощи текстовых команд, описание которых приведено на фиг. 12.
Примеры реализации изобретения
Для проверки работоспособности управляющей системы была использована квантовая программа с набором команд, описанных выше, работающая в связке с классической программой. Целью программ было определение точности операций, выполняемых квантовыми вычислителями на основе нейтральных атомов и линейно-оптического вычислителя. Классическая программа запускала квантовую как подпрограмму, а также производила вывод результатов измерений. Квантовая программа содержала инструкции, применяющие тот или иной логический квантовый вентиль к регистру кубитов и его измерение. Как и в случае с классической работой электронной вычислительной машины, где для реализации любого вычисления достаточно трех атомарных операций над битами (например И, НЕ, ИЛИ-НЕ), в случае квантового вычислителя - произвольная квантовая программа может быть представлена в базисе из нескольких квантовых операций (вентилей), например, операция «Паули - X» (X), операция «Паули - Y» (Y), операция «Адамар Н» (Н), контролируемое НЕТ (CNOT) и фазового вентиля Р. Соответствующие матричные формы представленных операций выглядят как:
На основе данных вентилей можно определить вентили более общего вида: поворот на угол θ вокруг оси X, Y или Z, соответственно, обозначаемые как RX(θ), RY(θ), RZ(θ):
Пример квантовой программы, которая в цикле 200 раз приготавливает кубит в состоянии |0>, применяет вентиль RX с программно задаваемым углом поворота и выполняет измерение кубита с записью суммарного результата в ячейку классической памяти с адресом 10:
LABEL @ROTATEX
COPY 0 [0] // Скопировать значение 0 в ячейку классической памяти с адресом [0] (счетчик цикла)
COPY 0 [10] // Инициализация ячейки [10] - суммарного результата измерения
LABEL @CYCLE_BEGIN // Установить метку начала тела цикла
INIT 1 // Инициализация одного кубита в состоянии |0>
RX([20]) 0 // Поворот состояния кубита 0 вокруг оси X на угол,
содержащийся в ячейке памяти с адресом 20
MEASURE 0 [1] // Измерение кубита 0 и запись результата в ячейку памяти [1]
ADD 1 [0] [0] // Прибавить к значению в ячейке памяти [0] единицу и записать результат обратно в ячейку [0] (увеличить счетчик цикла)
ADD [1] [10] [10] // Прибавить текущий результат измерения к суммарному
LT [0] 200 [1] // Проверка условия, что выполнено меньше 200 итераций и запись булевого результата сравнения в ячейку [1] JUMP-UNLESS @CYCLE_BEGIN [1] // Перейти в начало цикла, если
значение в ячейке [1]=ИСТИНА
HALT // Остановка программы
Пример ответной управляющей классической программы на языке С++ с использованием программного интерфейса API, которая передает в загруженную квантовую программу угол поворота для вентиля RX, запускает ее, получает результат измерений и отображает его:
Подобные программы могут быть написаны для проверки точности различных квантовых вентилей (в примере выше вентилем является RX). Повторение каждой квантовой операции 200 раз используется для накопления статистики и уменьшения отношения сигнал/шум. По результатам измерений составляется таблица истинности для каждой операции (X, Y, Н) и производится ее сравнение с таблицей истинности для идеального вентиля. Точность выполнения однокубитной операции рассчитывается по следующей формуле:
где уху - матричные элементы значения вероятностей для идеальной таблицы истинности, а - матричные элементы значений вероятностей, полученных в ходе эксперимента. Индексы изменяются в пределах от 1 до 2 с шагом 1, что соответствует размерности гильбертова пространства состояний для одного кубита. Индексы отвечают за нумерацию строк, j, n, k, y - за нумерацию столбцов подставляемых матриц. Так, например, вероятность р12 для идеальной таблицы истинности операции Паули-Y равна
В ходе функционирования управляющей системы были получены следующие результаты. Для вычислителя на нейтральных атомах точность выполнения однокубитовой операции применения операции Паули X (эквивалентна команде RX поворота состояния кубита вокруг оси X с углом поворота π) составила (99,98±6,6)%; точность выполнения однокубитовой операции Паули Y (RY с углом π) - (97,3±1,3)%. Для линейно-оптического вычислителя точность выполнения RX с задаваемым программно углом поворота составила 97%; для вращения состояния кубита вокруг оси Z - 99%. Точность двухкубитового вентиля CNOT (эквивалентен последовательному применению RY(π/2) ко второму кубиту, CZ между первым и вторым кубитами и снова RY(π/2) ко второму кубиту) составила 91%.
Таким образом, за счет описанной управляющей системы для квантовых вычислительных устройств, удалось достигнуть технический результат в виде создания единого программно-аппаратного комплекса, обеспечивающего выполнение высокоуровневого программного кода на двух различных квантовых вычислителях и решить проблему создания системы, обеспечивающей универсальный доступ к вычислителям.
Claims (9)
1. Управляющая система для квантовых вычислительных устройств, включающая выделенный сервер, содержащий блок обработки информации, и соединенные с сервером управляющие платы, отличающаяся тем, что она содержит управляющую плату вычислителя на нейтральных атомах и управляющую плату линейно-оптического вычислителя,
при этом блок обработки информации сервера выполнен с возможностью загрузки квантовой программы, содержащей команды для осуществления операций над кубитами; а сервер выполнен с возможностью загрузки управляющей программы, обеспечивающей ввод данных в блок обработки информации и вывод данных из блока обработки информации, ее компиляции в последовательность инструкций для управляющих плат и запуска операционной системы, обеспечивающей передачу инструкций скомпилированной управляющей программы на управляющие платы и прием данных от управляющих плат;
при этом управляющая плата для квантового вычислителя на нейтральных атомах выполнена с возможностью подключения к квантовому вычислителю на нейтральных атомах и содержит формирователь импульсов и блок индикации состояния управляющих сигналов, связанные с блоком компараторов, выполненным с возможностью приема данных из квантового вычислителя на нейтральных атомах, связанным с управляющим ядром, включающим программируемую логическую интегральную схему (ПЛИС), выполненную с возможностью подачи управляющих сигналов на квантовый вычислитель на нейтральных атомах, и связанный с ней микроконтроллер, выполненный с возможностью приема управляющих инструкций от сервера и передачи данных в сервер;
а управляющая плата квантового линейно-оптического вычислителя выполнена с возможностью подключения к квантовому линейно-оптическому вычислителю и содержит управляющий микроконтроллер, выполненный с возможностью передачи данных в сервер и приема управляющих инструкций от сервера, формирования и передачи цифровых управляющих сигналов на связанный с ним цифроаналоговый преобразователь, выполненный с возможностью приема цифровых управляющих сигналов от управляющего микроконтроллера, формирования и передачи управляющих напряжений в связанный с ним многоканальный блок стабилизации токов, выполненный с возможностью приема управляющих напряжений от цифроаналогового преобразователя, формирования и передачи управляющих токов в квантовый линейно-оптический вычислитель, высоковольтный источник напряжения, выполненный с возможностью передачи питающего напряжения на многоканальный блок стабилизации токов.
2. Управляющая система для квантовых вычислительных устройств по п. 1, отличающаяся тем, что формирователь импульсов управляющего ядра управляющей платы квантового вычислителя на нейтральных атомах выполнен с возможностью формирования импульсов TTL и/или LVDS.
3. Управляющая система для квантовых вычислительных устройств по п. 1, отличающаяся тем, что многоканальный блок стабилизации токов управляющей платы линейно-оптического вычислителя характеризуется числом каналов не менее 64.
4. Управляющая система для квантовых вычислительных устройств по п. 1, отличающаяся тем, что многоканальный блок стабилизации токов управляющей платы линейно-оптического квантового вычислителя характеризуется величиной управляющих токов от 0 до 32 мА для нагрузки 500 Ом.
5. Управляющая система для квантовых вычислительных устройств по п. 1, отличающаяся тем, что высоковольтный источник напряжения управляющей платы линейно-оптического вычислителя выполнен с функцией защиты от короткого замыкания.
6. Управляющая система для квантовых вычислительных устройств по п. 1, отличающаяся тем, что высоковольтный источник напряжения управляющей платы линейно-оптического квантового вычислителя характеризуется величиной питающего напряжения от 12 до 48 В.
Publications (1)
Publication Number | Publication Date |
---|---|
RU2814936C1 true RU2814936C1 (ru) | 2024-03-06 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858531B1 (en) * | 2013-08-02 | 2018-01-02 | University Of Maryland | Fault tolerant scalable modular quantum computer architecture with an enhanced control of multi-mode couplings between trapped ion qubits |
US10044638B2 (en) * | 2016-05-26 | 2018-08-07 | 1Qb Information Technologies Inc. | Methods and systems for quantum computing |
RU2742504C2 (ru) * | 2015-06-29 | 2021-02-08 | Пэрити Квантум Компьютинг ГмбХ | Способ и устройство квантовой обработки |
CN113688995A (zh) * | 2021-08-06 | 2021-11-23 | 北京量子信息科学研究院 | 一种量子系统控制方法和装置 |
US20220156628A1 (en) * | 2017-11-28 | 2022-05-19 | Duke University | Software-defined quantum computer |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9858531B1 (en) * | 2013-08-02 | 2018-01-02 | University Of Maryland | Fault tolerant scalable modular quantum computer architecture with an enhanced control of multi-mode couplings between trapped ion qubits |
RU2742504C2 (ru) * | 2015-06-29 | 2021-02-08 | Пэрити Квантум Компьютинг ГмбХ | Способ и устройство квантовой обработки |
US10044638B2 (en) * | 2016-05-26 | 2018-08-07 | 1Qb Information Technologies Inc. | Methods and systems for quantum computing |
US20220156628A1 (en) * | 2017-11-28 | 2022-05-19 | Duke University | Software-defined quantum computer |
CN113688995A (zh) * | 2021-08-06 | 2021-11-23 | 北京量子信息科学研究院 | 一种量子系统控制方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11507873B1 (en) | Highly scalable quantum control | |
EP4026068A1 (en) | Quantum controller architecture | |
Kobayashi et al. | OpenCL-ready high speed FPGA network for reconfigurable high performance computing | |
CA3012853A1 (en) | Techniques for control of quantum systems and related systems and methods | |
US20230244459A1 (en) | Hybrid compilation apparatus and method for quantum-classical code sequences | |
Ziegler et al. | A new pulse-pattern generator based on Labview FPGA | |
Negnevitsky | Feedback-stabilised quantum states in a mixed-species ion system | |
Bertoldi et al. | A control hardware based on a field programmable gate array for experiments in atomic physics | |
RU2814936C1 (ru) | Управляющая система для квантовых вычислительных устройств | |
US8972806B2 (en) | Self-test design for serializer / deserializer testing | |
EP1532534B1 (en) | Universal approach for simulating, emulating, and testing a variety of serial bus types | |
Aloisio et al. | uSOP: A microprocessor-based service-oriented platform for control and monitoring | |
Gebauer et al. | Accelerating complex control schemes on a heterogeneous MPSoC platform for quantum computing | |
CN114840462B (zh) | 一种基于Labview的3D控制驱动方法 | |
Manduchi et al. | MDSplus evolution continues | |
CN104345263A (zh) | 一种数模混合芯片的信号管理方法和装置 | |
Lee et al. | Design and implementation of a standard framework for KSTAR control system | |
Gebauer et al. | Taskrunner: A flexible framework optimized for low latency quantum computing experiments | |
Xiao et al. | An Architecture of FPGA-Based Controller on Automatic Control System for Test and Launch in Launch Site | |
Mehta et al. | Integration of MODBUS/TCP master monitoring and control system using python for high power RF system | |
Iannone et al. | Upgrade issues in FTU control, data acquisition and management | |
HUT66465A (en) | Interface system for coupling two computer environments | |
EP2595059A1 (en) | Test processor for asynchronous chip test | |
Plšičík et al. | Implementation C++/QT framework for CAN communication | |
Rajak et al. | Implementation of a Count Down Timer on RTOS Platform for Test Range Applications |