Tw-city.info

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Квантовые языки программирования

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

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

Честь создания первого квантового языка программирования высокого уровня Quipper принадлежит Петеру Зелингеру (Peter Selinger) и его команде из университета Дэлхоузи в Галифаксе, Канада. Язык Quipper разработан для того, чтобы программисты имели возможность выразить общие понятия, действия и концепции, не вникая в низкоуровневые инструкции и операции. Это позволит без особых затруднений создавать библиотеки квантовых программ, объединять различные алгоритмы в единое целое модульным способом. Самым ближайшим аналогом языка Quipper, работающим на обычных компьютерах, является язык программирования Java, который берет на себя выполнение всех низкоуровневых операций.

Основой языка Quipper является классический язык программирования Haskell, который как нельзя лучше подходит для создания алгоритмов математических моделей и расчетов из области прикладной и теоретической физики. Те изменения, которым команда Зелингер подвергла оригинальный язык программирования, должны оптимизировать набор получаемых конечных низкоуровневых инструкций для обработки их квантовыми битами.

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

Команда Зелингера предоставила всеобщему вниманию структуру языка Quipper вместе с разработанными библиотеками на Конференции по разработке и реализации языков программирования (the Programming Language Design and Implementation conference), которая проходила в Сиэтле в прошлом месяце. Создание языка Quipper производилось в рамках программы, финансируемой IARPA (US Intelligence Advanced Research Projects Agency), Управления перспективных исследований разведки США, специалисты которого поставили перед собой цель определить минимальное количество кубитов, которыми должен обладать квантовый компьютер для эффективного решения определенного круга задач.

К сожалению, разработанный язык программирования Quipper не может использоваться для написания программ к единственному виду квантовых компьютеров, существующих в настоящее время, компьютеров компании D-Wave, которые используют метод, называемый адиабатными квантовыми вычислениями, делающий его несовместимым с квантовыми вычислительными системами в их традиционном понимании.

Квантовое программирование — Quantum programming

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

содержание

наборы команд Quantum

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

cQASM

cQASM, также известный как общий QASM, представляет собой аппаратно-агностик QASM , который гарантирует взаимодействие между всем квантовой компиляцией и инструментами моделирования. Он был введен в QCA лаборатории в TUDelft .

Квил представляет собой набор архитектура инструкции для квантовых вычислений , что сначала введена общей квантовой / классической модель памяти. Он был введен Робертом Смитом, Майкл Кертис и Уильям Цзэн в Практическом Кванте Instruction Set Architecture . Многие квантовые алгоритмы ( в том числе квантовой телепортации , квантовой коррекции ошибок , моделирования и оптимизации алгоритмов) требуют общей архитектуры памяти.

OpenQASM

OpenQASM это промежуточное представление введено IBM для использования с Qiskit и IBM Q Experience .

дрозд черный

Blackbird представляет собой набор квантового обучения и промежуточное представление используется Ксанадой и Strawberry Fields. Он предназначен для представления непрерывных переменных квантовых программ , которые могут работать на фотонном квантовом оборудовании.

Квантовые комплекты разработки программного обеспечения

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

SDKs с доступом к квантовым процессорам

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

Open Source набор инструментов, разработанных D-Wave. Написанный в основном на языке программирования Python, что позволяет пользователям формулировать проблемы в модели Изинга и форматах Квадратное Безусловная Binary Optimization (Qubo). Результаты могут быть получены путем представления онлайн квантового компьютера в Leap, D-Wave в реальном времени Quantum Application Environment, давальческой машины, или классические пробников.

ProjectQ

Open Source проект , разработанный в Институте теоретической физики в ETH , которая использует программирование Python языка для создания и управления квантовых схем. Результаты получены либо с помощью имитатора, или путем отправки задания на квантовых устройства IBM.

Qiskit

Open Source проект , разработанный IBM . Квантовые схемы создаются и управляются с помощью Python , Swift или Java . Результаты получены либо с помощью имитаторов , которые работают на собственном устройстве пользователя, симуляторы , предоставляемые IBM или прототип квантовых устройств , предоставляемые IBM. А также возможность создания программ с использованием основных квантовых операций, алгоритмы более высокого уровня доступны в пакете Qiskit аква. Qiskit основан на OpenQASM стандарта для представления квантовых цепей, и будет поддерживать импульсный контроль уровня квантовых систем , как определено стандартом OpenPulse.

Open Source проект , разработанный Rigetti , который использует программирование Python языка для создания и управления квантовых схем. Результаты получены либо с помощью тренажеров или прототипом квантовых устройств , предусмотренных Rigetti. А также возможность создания программ с использованием основных квантовых операций, алгоритмы более высокого уровня доступны в пакете Grove. Лес на основе Квила набор команд.

«>т | кет>

Квантовая среда программирования и оптимизирующий компилятор , разработанный Cambridge Quantum Computing , что целевые имитаторы и несколько кванта аппаратных бэкендов, выпущенные в декабре 2018 года.

SDKs на основе имитаторов

Открытый доступ к квантовым приборам в настоящее время планируется на следующих SDKs, но еще не реализован.

Комплект для разработки Quantum

Проект , разработанный Microsoft в рамках .NET Framework . Квантовые программы могут быть написаны и работать в Visual Studio и VSCode .

Читать еще:  Программирование в visual studio 2020 книга

Open Source проект , разработанный Google , который использует программирование Python языка для создания и управления квантовых схем. Результаты получены с помощью имитаторов , которые работают на собственном устройстве пользователя.

Strawberry Fields

С открытым исходным кодом Python библиотека , разработанная Ксанаду для проектирования, моделирования и оптимизации непрерывной переменной (CV) оптических квантовых схем. Три имитаторов обеспечены — один в основе Фоки , один с помощью Gaussian формулировки квантовой оптики, и один с использованием TensorFlow библиотеки машинного обучения.

Квантовые языки программирования

Есть две основных групп квантовых языков программирования: императивные языки программирования кванта и функциональные языки программирования кванта.

Императивные языки

Наиболее видные представители императивных языков ККЛ, LanQ и Q | SI>.

Квантовые вычисления Язык (ККЛО) является одним из первых реализованных квантовых языков программирования . Наиболее важной особенностью ККЛ является поддержка пользовательских операторов и функций. Его синтаксис напоминает синтаксис языка программирования Си и его классические типы данных похожи на примитивные типы данных в C. Можно сочетающем классический код и квантовый код в той же программе.

Quantum псевдокод

Квантовый псевдокод , предложенный Е. Книлл является первым формализованным языком для описания квантовых алгоритмов . Она была введена и, кроме того, была тесно связана с моделью квантовой машины под названием Quantum Random Access Machine (КОР).

Язык , разработанный Microsoft для использования с комплектом развития Quantum .

«>Q | SI>

Q | SI> является платформой встроенной в .Net языке программирования с поддержкой квантового в квантовых расширениях While-языке. Эта платформа включает в себя компилятор квантового While-языке и цепочку инструментов для моделирования квантовых вычислений, оптимизация квантовых схем, анализ терминации квантовых программ и верификацию квантовых программ.

Вопрос языка

Q Язык является вторым реализованом императивного языка программирования кванта. Q Язык был реализован как расширение языка программирования C ++. Она обеспечивает классы для основных квантовых операций, таких как QHadamard, QFourier, QNot и QSwap, которые являются производными от базового класса QOP. Новые операторы могут быть определены с помощью C ++ механизма классов.

Квантовая память представлена ​​класс Qreg.

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

Quantum Guarded Command Language (qGCL) была определена П. Zuliani в его докторской диссертации. Он основан на Хранимой Command Language , созданный Эдсгер Дейкстры .

Она может быть описана как язык описания квантовых программ.

QMASM

Квантовый макроассемблер (QMASM) представляет собой конкретный язык низкого уровня с квантовым annealers, такими как D-Wave.

Функциональные языки

Предпринимаются усилия по разработке функциональных языков программирования для квантовых вычислений . Функциональные языки программирования хорошо подходит для рассуждений о программах. Примеры включают QPL Селинджер, и на Haskell-подобного языка QML по Altenkirch и соскабливание грануляции. Высшего порядка языков программирования квант, на основе лямбда — исчисления , были предложены ван Tonder, Selinger Валирона и Арриги и Dowek.

QFC и QPL

QFC и QPL два близкородственных языков программирования квантовое определенные Питером Selinger. Они отличаются только в их синтаксис: QFC использует синтаксис — схема последовательности операций, в то время как QPL использует текстовый синтаксис. Эти языки имеют классический поток управления , но может работать на квантовых или классических данных. Селинджер даст денотационную семантику для этих языков в категории супероператор .

QML является Haskell -как языка квантового программирования Altenkirch и соскабливанием грануляции. В отличие от QPL Селинджер, этот язык требует дублирования, а не отбрасывание, квантовой информации в качестве примитивной операции. Дублирование в этом контексте понимается операция , которая отображает до , и не следует путать с невозможной операции клонирования ; авторы утверждают , что это сродни тому , как совместное использование моделируется на классических языках. QML также вводит как классические , так и квантовые оператор управления, в то время как большинство других языков полагаются на классическом контроле. | φ ⟩ < Displaystyle | Phi rangle> | φ ⟩ ⊗ | φ ⟩ < Displaystyle | Phi rangle otimes | Phi rangle>

An семантика для QML дается в терминах квантовых схем , в то время как денотационная семантика представлена в терминах супероператоров , и они показаны согласиться. Обе операционные и денотационная семантика были реализованы (классически) в Haskell.

«>Liqui |>

Liqui |> (произносится жидкостью ) является расширением квантового моделирования на # F языке программирования. В настоящее время разрабатывается Quantum Архитектуры и Исчисление Group (QuArC) часть усилий StationQ в Microsoft Research. Liqui |> стремится , чтобы теоретики экспериментировать с конструкцией квантового алгоритма , прежде чем физические квантовые компьютеры доступны для использования.

Она включает в себя язык программирования, алгоритмы оптимизации и планирования, а также квантовые симуляторы. Liqui |> может быть использован для перевода квантового алгоритма, написанный в виде программы высокого уровня в инструкцию низкого уровня машины для квантового устройства.

Квантовая лямбда-исчисления

Квантовая лямбда — исчисления являются расширениями классического лямбда — исчисления , введенного Алонзо церковью и Клини в 1930 — х годах. Цель квантовой лямбда — исчислений является расширение квантовых языков программирования с теорией функций высшего порядка .

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

В 2003 году Андре ван Теннер определил расширение лямбда — исчисления подходящего для доказательства правильности квантовых программ. Он также представил реализацию в схеме языка программирования.

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

Quipper

Quipper был опубликован в 2013 году реализована в виде встроенного языка, используя Haskell в качестве основного языка. По этой причине, квантовые программы , написанные на Quipper написаны в Haskell , используя предоставляемые библиотеки. Например, следующий код реализует подготовку суперпозиции

Как устроен и зачем нужен квантовый компьютер

Это прорыв в технологиях или очередной биткоин?

Сейчас много говорят о новых технологиях вычисления — в частности, то и дело звучат слова «квантовые вычисления», «квантовый интернет» и даже «квантовая криптография». Посмотрим, что это такое и нужно ли оно нам. Начнём с квантового компьютера.

Биты и кубиты

В обычном компьютере все вычисления основаны на понятии «бит». Это такой элемент, который может принимать значения 0 или 1. Физически это реализовано так:

1. В компьютере есть деталь под названием транзистор. Представьте, что это кран на трубе: если его включить, вода польётся, если выключить — остановится.

2. В транзисторе вода — это электричество, и включение-выключение крана тоже зависит от электричества. Представьте, что краны соединены между собой так, что вода из одного крана включает или выключает другой кран, — и так каскадом по цепочке.

Читать еще:  Игры без программирования

3. Транзисторы соединены таким хитрым образом, что когда они включаются и выключаются, на них можно производить математические вычисления.

4. Из-за того, что транзисторов очень много (миллиарды), а работают они очень быстро (близко к скорости света), транзисторные компьютеры могут очень быстро совершать математические вычисления.

5. Всё, что вы видите в компьютере, — это производные от вычислений. Вы видите окно, буквы, картинки, а где-то в самой-самой глубине это просто сложение и вычитание, а ещё глубже — включение-выключение кранов с электричеством на скорости света.

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

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

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

Все решения уже известны

Ещё одна особенность кубитов — зависимость значения от измерения. Это значит, что программист не узнает значение кубита до тех пор, пока его не измерит, а сам факт измерения тоже влияет на значение кубита. Звучит странно, но это особенность квантовых частиц.

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

Вся сложность в том, что результат работы квантового компьютера — это правильный ответ с какой-то долей вероятности. И нужно строить алгоритмы таким образом, чтобы максимально приблизить вероятность правильного ответа к единице.

Как делают кубиты и в чём сложность

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

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

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

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

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

Зачем нужны квантовые компьютеры

Одно из самых важных применений квантового компьютера сейчас — разложение на простые числа. Дело в том, что вся современная криптография основана на том, что никто не сможет быстро разложить число из 30–40 знаков (или больше) на простые множители. На обычном компьютере на это уйдёт миллиарды лет. Квантовый компьютер сможет это сделать примерно за 18 секунд.

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

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

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

Подписывайтесь на наш канал , чтобы квантовый мир не был для вас загадкой!

Что такое квантовые компьютеры и квантовое программирование

  • Оглавление
  • Что такое квантовое программирование?
  • Почему квантовое программирование пока не популярно?

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

Что такое квантовое программирование?

Квантовое программирование представляет собой набор языков программирования, которые выражают квантовые алгоритмы с использованием высокоуровневых конструкций. Обычный компьютер основан на бите – двоичной переменной, которая имеет только два возможных значения (0 или 1, истина или ложь). Квантовый компьютер основан на кубите. Кубит подразумевает, что между 0 и 1 существует множество других переменных, которые принято называть суперпозицией. Обычные компьютеры уступают квантовым в том, что они не способны обрабатывать настолько сложные алгоритмы. Есть мнение, что квантовое программирование – чрезвычайно сложный процесс, доступный лишь узкому кругу ученых. Это не совсем верно: поскольку IBM и Google уже построили рабочие квантовые вычислительные машины, настало время приступать к изучению квантового программирования уже сегодня.

Хорошо то, что для изучения квантового программирования наличие квантового компьютера совсем не обязательно. Простые программы можно легко смоделировать на обычном ПК. Пакет QISKit от IBM дает возможность всем заинтересованным разработчикам получить свой первый квантовый опыт. В него входят эмулятор для запуска программ на ПК и инструмент для доступа к 20-кубитному квантовому компьютеру, находящемуся в облаке IBM. Писать программы предстоит на языке Q# (произносится «кью шарп» по аналогии с C#).

Почему квантовое программирование пока не популярно?

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

Читать еще:  Что такое прикладное программирование

IBM и Google прекрасно осведомлены об этих проблемах. Квантовое программирование, как и любая передовая технология – это лишь ступень на пути к новой революции. Приближение к этой революции и непосредственное в ней участие и есть основные стимулы для привлечения новых специалистов. Даже если первые массовые квантовые компьютеры окажутся чуть быстрее обычных, у большинства компаний уже будет достаточно причин перейти на них. Однако если верить прогнозам, первый потребительский квантовый компьютер будет в разы мощнее современных вычислительных машин.

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

В данной статье я расскажу, как с помощью Powershell скомпилировать код, написанный в Notepad++.

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

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

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

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

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

Quil — Архитектура набора инструкций для квантовых вычислений, которая впервые представила модель общей квантовой / классической памяти. Смотрите также PyQuil .

OpenQASM — промежуточное представление, представленное IBM для использования с их Quantum Experience .

Императивные языки

QCL — один из первых реализованных квантовых языков программирования.

Квантовый псевдокод — [На самом деле не язык, а хороший способ представления квантовых алгоритмов и операций.] Э. Х. Нилл. «Соглашения о квантовом псевдокоде», неопубликованные, отчет LANL LAUR-96-2724 (PDF, источник 1 , 2 ), Поиск в arXiv всех работ, ссылающихся на статью Книлла.

Q | SI> — Оригинальная статья на китайском с аннотацией на английском языке. Английская версия на arXiv: « Q | SI>: Квантовая среда программирования ».

QMASM — Специально для систем D-Wave. Документация QMASM . Автор Скотт Пэйкин edif2qmasm и веб-страницы QMASM в LANL.

Функциональные языки

QFC и QPL — Авторский сайт .

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 г.).

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, Томаш Бабей и Питер Виттек.

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

Ссылка на основную публикацию
Adblock
detector