Есть ли эмуляторы для квантовых компьютеров?


64

Есть ли способ эмулировать квантовый компьютер в моем обычном компьютере, чтобы я мог тестировать и пробовать языки квантового программирования (например, Q # )? Я имею в виду то, что я действительно могу проверить свою гипотезу и получить наиболее точные результаты.

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


Ответы:


39

Да, это возможно (но медленно). Существует несколько существующих (это только частичный список) эмуляторов:

  • QDD: библиотека квантовой компьютерной эмуляции

    QDD - это библиотека C ++, которая предоставляет относительно интуитивно понятный набор конструкций квантовых вычислений в контексте среды программирования C ++. QDD уникален тем, что его эмуляция квантовых вычислений основана на представлении квантового состояния в двоичной диаграмме решений (BDD).

  • jQuantum

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

  • QCE

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

(Кроме того, Q # работает только с QDK от MS , спасибо @Pavel)

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

Я процитирую статью на эту тему ( J. Allcock, 2010 ):

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

стр. 89, раздел 5.1

Поскольку наши реализации становятся более точными, они также становятся медленнее.

TL; DR: это возможно, и некоторые эмуляторы существуют, но ни один не очень эффективен для больших количеств кубитов.


Обратите внимание, что ни один из этих эмуляторов не может (в настоящее время) использоваться Q #, который работает только с Microsoft QDK.
Павел

3
В дополнение к тому, что вы сказали: Есть программные способы запуска кода в IBM Quantum Experience, который предоставляет реальные квантовые компьютеры - не код Q #, а QASM вместо этого. QISKit - это путь сюда. github.com/QISKit
blalasaadri

То, что вы сказали, имеет смысл, потому что симуляция выполняется на одном компьютере. Но возможно ли достичь одинаковой скорости, если бы использовалось несколько компьютеров?
Календарь iOS patchthecode.com

26

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

Размерность пространства состояний растет экспоненциально с количеством кубитов ( , где - количество кубитов), поэтому линейная алгебра, с которой вы будете иметь дело, не будет слишком легкой - вы столкнетесь с очень большими матрицами и алгоритм, который вы используете (независимо от того, насколько он эффективен), скорее всего, будет экспоненциально масштабироваться довольно быстро. Тем не менее, эмуляция контроля качества на обычной машине определенно возможна.2NN


Ресурсы

Вы можете быть заинтересованы в Q #, как и другие ответы. Еще несколько эмуляторов:

  • Квантовая вычислительная площадка

    Quantum Computing Playground - это браузерный эксперимент WebGL Chrome. Он оснащен квантовым компьютером с ускорением на графическом процессоре с простым интерфейсом IDE и собственным языком сценариев с функциями отладки и трехмерной визуализации квантового состояния. Quantum Computing Playground может эффективно моделировать квантовые регистры до 22 кубитов, запускать алгоритмы Гровера и Шора и имеет множество квантовых элементов, встроенных в сам язык сценариев.

  • QX Simulator

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

  • Quantum ++

    Quantum ++ - это современная библиотека C ++ 11 общего назначения для квантовых вычислений, состоящая исключительно из заголовочных файлов шаблонов. Quantum ++ написан на стандартном C ++ 11 и имеет очень низкие внешние зависимости, используя только библиотеку шаблонов только для заголовков линейной алгебры Eigen 3 и, если доступно, библиотеку многопроцессорной обработки OpenMP.

  • Квантовый компьютерный язык

    Несмотря на многие общие понятия с классической информатикой, квантовые вычисления все еще широко рассматриваются как особая дисциплина в широкой области теоретической физики. [...] QCL (Язык квантовых вычислений) пытается заполнить этот пробел: QCL - это высокоуровневый, независимый от архитектуры язык программирования для квантовых компьютеров, с синтаксисом, полученным из классических процедурных языков, таких как C или Pascal. Это позволяет полностью реализовать и моделировать квантовые алгоритмы (включая классические компоненты) в одном непротиворечивом формализме.

  • Более актуальные эмуляторы можно найти на Quantiki


21

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

Для быстрой проверки идей мой симулятор Quirk отлично подходит. Это симулятор квантового контура с открытым исходным кодом , работающий в вашем веб-браузере. Вы можете получить доступ к живой версии на algassert.com/quirk .

Вот снимок экрана примера схемы Гровера Quirk, которая оснащена промежуточными состояниями для отслеживания того, как «скрытое» состояние становится более вероятным:

Скриншот Quirk


16

Если вы специально смотрите на Q #, то использовать эмулятор очень просто - на самом деле, Q # невозможно, но не иметь эмулятора, они связаны друг с другом.

Для начала вам необходимо скачать .NET Core с веб-сайта Microsoft .

Когда вы загружаете Microsoft Quantum Development Kit через dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"веб-сайт Microsoft или его веб-сайт, он загружает вместе и язык, и собственный эмулятор Microsoft.

Создание нового проекта Q # ( dotnet new console -lang Q#) автоматически настроит его для использования эмулятора, поэтому, когда вы набираете какой-то Q # и запускаете проект, он «просто работает».


3

Да. Если вы создадите его самостоятельно, найдите сторонний компьютер с теми же характеристиками, что и серии BullSequana M9600, или придумали € 100K + и купите систему у Atos.

Обратите внимание на сходство между сериями BullSequana M9600 и Atos QLM . Atis QLM vs. M9600

Та же коробка (и, вероятно, внутренние компоненты) с другим программным обеспечением (но вы хотели использовать свое собственное, Q #). Атос утверждает: «Самый высокоэффективный квантовый симулятор в мире». Я не уверен в этом, но спецификации для 30-кубитовой версии достижимы, всего два процессора Intel и 1 ТБ памяти.

Брошюра Atos QLM .PDF .

Есть ли способ эмулировать квантовый компьютер в моем обычном компьютере, чтобы я мог тестировать и пробовать языки квантового программирования (например, Q #)?

Если вы используете только 256 ГБ памяти и 1-24 ТБ на жестком диске, это будет медленно, но будет работать.

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

Цитата из брошюры:

«Квантовая обучающая машина Atos вычисляет точное выполнение квантовой программы с точностью до двух цифр. Она имитирует законы физики , которые лежат в основе квантовых вычислений. Это очень отличается от существующих квантовых процессоров, которые страдают от квантовой шум, квантовая декогеренция и производственные погрешности, а также узкие места в производительности. Моделирование на Atos Quantum Learning Machine позволяет разработчикам сосредоточиться на своих приложениях и алгоритмах, не дожидаясь появления квантовых машин ».

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


3

Я думаю, что хороший "обзор" по этому вопросу можно найти по адресу: Quantiki

У них есть список квантовых компьютерных симуляторов на нескольких языках, некоторые из них уже упоминались здесь. Тем не менее, они хранят список, который они обновляют, чтобы сообщить (или попытаться сообщить) о статусе проекта. Есть несколько «библиотек», таких как:

Haskell

qchas (qchas: библиотека для реализации квантовых алгоритмов) - библиотека, полезная для реализации квантовых алгоритмов. Содержит определения квантовых врат, кубитов.

питон

qubiter : проект Qubiter направлен на предоставление в конечном итоге полного набора инструментов, написанных в основном на Python, для проектирования и моделирования квантовых цепей на классических компьютерах.

Javascript

jsqis : jsqis, по своей сути, является квантовым компьютерным симулятором, написанным на Javascript. Это позволяет инициализировать квантовые регистры и управлять ими с помощью квантовых вентилей.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.