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

53

Из этого вопроса я понял, что основными языками программирования для квантовых вычислений являются Q # и QISKit .

Какие еще языки программирования доступны для программирования квантовых компьютеров? Есть ли определенные преимущества при выборе конкретных?

РЕДАКТИРОВАТЬ: Я ищу языки программирования, а не эмуляторы. Эмуляторы имитируют вещи. Языки программирования - это метод написания инструкций (для реальных объектов или для эмуляторов). Может быть один язык, который работает для нескольких эмуляторов и наоборот.

Pro Q
источник
Я хотел бы отметить, что по сути ни один из языков, перечисленных в принятом здесь ответе, не может работать с существующим квантовым компьютером. Возможно, имеет смысл либо 1) отредактировать вопрос, чтобы понять, что вы запрашиваете языки, которые не могут быть скомпилированы для работы на существующем оборудовании, либо 2) принять другой ответ.
DanielSank
1
@DanielSank Я принял список из Википедии один, потому что предполагал, что этот список будет обновлен и теперь будет включать языки, которые на самом деле работают на оборудовании; это будет лучшим ответом, если предположить, что Википедия продолжает иметь эту страницу.
Pro Q
1
@ProQ - В моем ответе есть небольшое обновление. Кроме того, я уточнил, что мой ответ не вырезан / вставлен, но подтвердил ссылки. Я исправил неработающую ссылку. Я добавил сайт важного участника. - Я буду время от времени возвращаться, чтобы убедиться, что этот ответ "приблизительно великолепен". Подробности об ответе и ведении были рассмотрены. Некоторые из языков в моем ответе работают на оборудовании, доступном для покупки, и используются регулярно. Спасибо за вашу веру ProQ.
Роб
Существует также « Яо» («Расширяемый, эффективный дизайн квантовых алгоритмов для людей»), написанный Джулией, github.com/QuantumBFS/Yao.jl . И здесь и здесь вы найдете сравнение.
Скан

Ответы:

35

Википедия список языков программирования Quantum

(Этот ответ не является копией этой веб-страницы, он более обновлен и содержит проверенные ссылки. В некоторых случаях добавляется авторская статья или ссылка на веб-сайт.)

На веб-сайте Quantum Computing Report есть веб-страница Tools, содержащая более десятка ссылок, некоторые новые, а некоторые повторяют приведенный выше список.

См. Также веб-страницу QuanTiki: « Список симуляторов контроля качества », где представлен огромный список симуляторов и языков программирования на основе: C / C ++, CaML, OCaml, F #, а также на основе графического интерфейса пользователя, Java, JavaScript, Julia, Maple, Mathematica, Maxima. Matlab / Octave, .NET, Perl / PHP, Python, Scheme / Haskell / LISP / ML и другие онлайн-сервисы, предоставляющие калькуляторы, компиляторы, симуляторы, наборы инструментов и т. Д.

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

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

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

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

Ryan LaRose предлагает обзор четырех программных платформ: Forest (pyQuil), QISKit, ProjectQ и Quantum Developer Kit в разделе « Обзор и сравнение квантовых программных платформ Gate Gate » (6 июля 2018 г.).


Обновления:

Google Cirq и OpenFermion-Cirq: « Блог AI по искусству Google - Объявление Cirq: платформа с открытым исходным кодом для алгоритмов NISQ ».

D-Wave в Leap и Ocean SDK позволяет получить доступ к системе D-Wave 2000Q ™ в облачной среде с доступом к 2000+ кубитов квантового отжига машине для тестирования и запуска рабочих нагрузок бесплатно, при условии , основных алгоритмов , используемых идти в исходном пул открытого , Подайте заявку на вход на веб-странице D-Wave's Leap In .

Quantum Cloud Service (QCS) Rigetti Computing предлагает Quantum Machine Image, виртуализированную среду программирования и исполнения, предварительно настроенную на Forest 2.0, для доступа к 16 кубитам компьютера со 128 кубитами.

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

Хотя их кремниевый чип не является квантовым по своей природе, Fujitsu заключила партнерское соглашение с 1Qbit для разработки так называемой « облачной службы искусственного интеллекта Quantum », независимо от того, работает ли их цифровой отжига как утка (отжиги как D-Wave и использует совместимый код) остается увидеть. Посетите здесь, чтобы получить доступ к технической службе Fujitsu Digital Annealer .

QWIRE ( хор ) Пенсильванского университета - это инструмент для квантовой схемы и формальной проверки, он имеет веб-страницу GitHub .

Обзор: Cirq, Cliffords.jl, dimod, dwave-system, FermiLib, Forest (pyQuil & Grove), OpenFermion, ProjectQ, PyZX, QGL.jl, Qbsolv, Qiskit Terra и Aqua, Qiskit Tutorials и Qiskit.js, Qrack, Quantum Fog, Quantum ++, Qubiter, Quirk, reference-qvm, ScaffCC, Strawberry Fields, XACC и, наконец, XACC VQE предлагаются в статье: « Программное обеспечение с открытым исходным кодом в квантовых вычислениях » (21 декабря 2018 г.), автор Mark Fingerhuth, Томаш Бабей и Питер Виттек.

Я буду возвращаться к этому ответу время от времени, чтобы делать обновления, без чрезмерных ударов .

обкрадывать
источник
В некотором роде новости, связанные с «программированием»: IBM анонсирует 53 компьютера Qubit, которые будут доступны в следующем месяце для публичного использования.
Роб
28

Производители аппаратного обеспечения Gate разработали свои собственные языки низкого уровня:

Они имеют более высокий уровень Python SDK доступны:

Rigetti также включает свой язык в библиотеку более высокого уровня для вызова готовых приложений под названием Grove .

Microsoft разработала Q # для работы с существующим симулятором и, в конечном итоге, с их физическим оборудованием.

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

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

Редактировать: Project Q - это еще один фреймворк, который позволяет вам разрабатывать программы с использованием Python, которые могут работать на включенном симуляторе.

Oak Ridge National Labs приступила к работе над проектом под названием XACC, который предназначен для абстрагирования кода конкретного поставщика, чтобы предоставить пользователям доступ к различным аппаратным платформам без дублирования кода на языке конкретного поставщика.

j4ustin
источник
3
projectq.ch также заслуживает упоминания.
Джеймс Вуттон
1
Мне нравится этот ответ, потому что он объясняет, какие языки могут работать на существующем оборудовании .
DanielSank
5

Или даже посмотрите на Quipper , функциональный язык программирования Quantum. С монадической семантикой, встроенной функциональностью для обратимых квантовых вычислений, поддержкой иерархических схем и многим другим! Используется и на практике - для алгоритма вычисления решения уравнения Дирака по Лафламму.

user3483902
источник
3

Я бы включил Композитор IBM. Это не похоже на программирование, потому что вы не получаете всех ошибок, ошибок и функциональности, но оно явно преобразует ваши инструкции на воротах в QASM и запускает их на реальном симуляторе IBM или реальном квантовом компьютере IBM (выбор - пользователь).

Эйвери Лейдер
источник
1

К сожалению, список на Quantiki довольно старый и не в хорошем состоянии. Даже перечисление всех квантовых языков программирования в одном ответе на этот вопрос не является устойчивым, поскольку квантовый ландшафт постоянно развивается. Например, Google только что выпустил Cirq , новую платформу квантового программирования для компьютеров Noisy Intermediate Scale Quantum (NISQ), которая не упоминается ни в одном из вышеуказанных ответов, поскольку она была анонсирована всего пару дней назад.

Чтобы решить эту проблему и в качестве ответа на другой вопрос о QC StackExchange, я начал курировать список программных проектов с открытым исходным кодом на GitHub, который также включает в себя всесторонний обзор активно разрабатываемых квантовых языков программирования и сред. Список активно поддерживается сообществом, и мы постоянно добавляем новые проекты.

Марк Фингхут
источник
2
Это выглядит как замечательный ресурс. Спасибо! Интересно, есть ли другой подобный список проектов, которые не просто с открытым исходным кодом.
Pro Q
1
@ProQ Если честно, я думаю, что список с открытым исходным кодом покрывает> 95% пространства квантового программного обеспечения. Есть только какие-нибудь пакеты с закрытым исходным кодом с открытым доступом, и вы не будете беспокоиться о квантовом программном обеспечении, которое используется внутри какой-то компании без публичного доступа.
Марк Фингхут