Из этого вопроса я понял, что основными языками программирования для квантовых вычислений являются Q # и QISKit .
Какие еще языки программирования доступны для программирования квантовых компьютеров? Есть ли определенные преимущества при выборе конкретных?
РЕДАКТИРОВАТЬ: Я ищу языки программирования, а не эмуляторы. Эмуляторы имитируют вещи. Языки программирования - это метод написания инструкций (для реальных объектов или для эмуляторов). Может быть один язык, который работает для нескольких эмуляторов и наоборот.
programming
Pro Q
источник
источник
Ответы:
Википедия список языков программирования Quantum
(Этот ответ не является копией этой веб-страницы, он более обновлен и содержит проверенные ссылки. В некоторых случаях добавляется авторская статья или ссылка на веб-сайт.)
Квантовые наборы команд
Quil - Архитектура набора инструкций для квантовых вычислений, которая впервые представила модель общей квантовой / классической памяти. Смотрите также PyQuil .
OpenQASM - промежуточное представление, представленное IBM для использования с их Quantum Experience .
Квантовые языки программирования
Императивные языки
QCL - один из первых реализованных квантовых языков программирования.
Квантовый псевдокод - [На самом деле не язык, а хороший способ представления квантовых алгоритмов и операций.] Э. Х. Нилл. «Соглашения о квантовом псевдокоде», неопубликованные, отчет LANL LAUR-96-2724 (PDF, источник 1 , 2 ), Поиск в arXiv всех работ, ссылающихся на статью Книлла.
Q | SI> - Оригинальная статья на китайском с аннотацией на английском языке. Английская версия на arXiv: « Q | SI>: Квантовая среда программирования ».
Вопрос языка - Программное обеспечение для языка Q .
qGCL - « Чередование в квантовом программировании: от суперпозиции данных к суперпозиции программ ».
QMASM - Специально для систем D-Wave. Документация QMASM . Автор Скотт Пэйкин edif2qmasm и веб-страницы QMASM в LANL.
Функциональные языки
QFC и QPL - Авторский сайт .
QML - Главный сайт: http://sneezy.cs.nott.ac.uk/QML/ (не отвечает, месяц спустя), Archive.Org копия sneezy.cs.nott.ac.uk , кандидатская диссертация автора: " Функциональный квантовый язык программирования "(PDF).
LIQUi |> - Расширение до F # (F Sharp).
Квантовое лямбда-исчисление - Википедия перечисляет несколько версий .
Quipper - основанный на Haskell масштабируемый функциональный язык программирования для квантовых вычислений. Смотрите также Proto-Quipper . В докладе Питера Селинджера (FSCD 2018) под названием « Проблемы в области языков квантового программирования » ( .PDF ) обсуждаются эти языки.
Мультипарадигмальные языки
Q # (Q Sharp) - предметно-ориентированный язык программирования, используемый для выражения квантовых алгоритмов. Первоначально он был выпущен для публики Microsoft как часть Quantum Development Kit. Также доступны Microsoft Quantum Katas , серия учебных курсов для самостоятельного изучения , направленных на одновременное обучение элементам квантовых вычислений и программирования на Q #.
Strawberry Fields (от XanduAI ) - это полноценная библиотека Python для проектирования, моделирования и оптимизации квантовых оптических цепей с непрерывной переменной переменной.
На веб-сайте 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, Томаш Бабей и Питер Виттек.
Я буду возвращаться к этому ответу время от времени, чтобы делать обновления, без чрезмерных ударов .
источник
Производители аппаратного обеспечения Gate разработали свои собственные языки низкого уровня:
Они имеют более высокий уровень Python SDK доступны:
Rigetti также включает свой язык в библиотеку более высокого уровня для вызова готовых приложений под названием Grove .
Microsoft разработала Q # для работы с существующим симулятором и, в конечном итоге, с их физическим оборудованием.
Поскольку языки выше зависят от производителя, основное преимущество заключается в том, что вы можете запускать квантовые программы на своих компьютерах.
Вне специфичных для поставщика языков - Scaffold, который разрабатывается исследователями из Принстона. Этот язык интересен тем, что содержит набор инструментов для анализа программ с целью определения затрат, потенциала производительности и потенциала масштабируемости.
Редактировать: Project Q - это еще один фреймворк, который позволяет вам разрабатывать программы с использованием Python, которые могут работать на включенном симуляторе.
Oak Ridge National Labs приступила к работе над проектом под названием XACC, который предназначен для абстрагирования кода конкретного поставщика, чтобы предоставить пользователям доступ к различным аппаратным платформам без дублирования кода на языке конкретного поставщика.
источник
Или даже посмотрите на Quipper , функциональный язык программирования Quantum. С монадической семантикой, встроенной функциональностью для обратимых квантовых вычислений, поддержкой иерархических схем и многим другим! Используется и на практике - для алгоритма вычисления решения уравнения Дирака по Лафламму.
источник
Я бы включил Композитор IBM. Это не похоже на программирование, потому что вы не получаете всех ошибок, ошибок и функциональности, но оно явно преобразует ваши инструкции на воротах в QASM и запускает их на реальном симуляторе IBM или реальном квантовом компьютере IBM (выбор - пользователь).
источник
К сожалению, список на Quantiki довольно старый и не в хорошем состоянии. Даже перечисление всех квантовых языков программирования в одном ответе на этот вопрос не является устойчивым, поскольку квантовый ландшафт постоянно развивается. Например, Google только что выпустил Cirq , новую платформу квантового программирования для компьютеров Noisy Intermediate Scale Quantum (NISQ), которая не упоминается ни в одном из вышеуказанных ответов, поскольку она была анонсирована всего пару дней назад.
Чтобы решить эту проблему и в качестве ответа на другой вопрос о QC StackExchange, я начал курировать список программных проектов с открытым исходным кодом на GitHub, который также включает в себя всесторонний обзор активно разрабатываемых квантовых языков программирования и сред. Список активно поддерживается сообществом, и мы постоянно добавляем новые проекты.
источник