Что такое Q# и Azure Quantum Development Kit?

Azure Quantum Development Kit (современный QDK) — это пакет SDK, необходимый для взаимодействия со службой Azure Quantum. Quantum Development KitС помощью можно создавать квантовые программы, которые выполняются на квантовом оборудовании в Azure Quantum.

Примечание

Microsoft Quantum Development Kit (классический QDK) больше не будет поддерживаться после 30 июня 2024 г. Если вы уже являетесь разработчиком QDK, мы рекомендуем перейти на новую версию Azure Quantum Development Kit (современный QDK), чтобы продолжить разработку квантовых решений. Дополнительные сведения см. в статье Перенос Q# кода в современный QDK.

Современный QDK — это единственный пакет средств разработки, готовый для Fault-Tolerant квантовых вычислений (FTQC). С помощью современного QDK вы можете:

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

  • Выберите платформу: Современный QDK работает в веб-браузере без необходимости установки и с расширением VS Code на компьютере с КОМПЬЮТЕРом, Mac или Linux.

  • Напишите код быстрее: Выделение синтаксиса и интеллектуальное завершение кода с помощью IntelliSense и написание целых блоков кода с помощью Copilot.

  • Запустите на выбранном оборудовании: QDK легко интегрируется с Azure Quantum для запуска алгоритмов на широком спектре квантовых компьютеров и симуляторов.

  • Проектирование для FTQC: В сочетании с новейшим оценщиком ресурсов Azure Quantum он предоставляет язык, разработанный специально для квантовых вычислений, Q#что освобождает вас от размышлений об архитектуре кубитов, абстрагирует оборудование и позволяет сочетать классические и квантовые вычисления, выполняемые квантовым компьютером target.

Совет

Если вы хотите ускорить путь квантовых вычислений, проверка код с помощью Azure Quantum, уникальной функции веб-сайта Azure Quantum. Здесь можно запускать встроенные Q# примеры или собственные Q# программы, создавать новый Q# код на основе запросов, открывать и запускать код в VS Code для Интернета одним щелчком мыши и задавать Copilot любые вопросы о квантовых вычислениях.

Язык квантового программирования Q#

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

Q# — это высокоуровневый язык программирования с открытым кодом для разработки и выполнения квантовых алгоритмов. Он является частью Quantum Development Kit (QDK) и предназначен для аппаратного обеспечения, масштабирования для всего спектра квантовых приложений и оптимизации выполнения.

В Q# используются знакомые вам элементы Python, C# и F#. Язык поддерживает базовую процедурную модель для написания программ с циклами, операторами if/then и общими типами данных. В ней также представлены новые квантовые структуры данных и операции, такие как повторение до успешного выполнения, которые позволяют интегрировать квантовые и классические вычисления. Например, можно управлять потоком выполнения классической программы в зависимости от результатов квантовых измерений.

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

  • Абстрактные кубиты. Квантовые алгоритмы используют кубиты, которые не привязаны к определенному оборудованию или макету. Компилятор и среда выполнения обрабатывают сопоставление между программными кубитами и физическими кубитами.
  • Квантовые и классические вычисления. Возможность выполнять классические и квантовые вычисления имеет важное значение в универсальном квантовом компьютере.
  • Соблюдайте законы физики. Квантовые алгоритмы следуют правилам квантовой физики. Например, они не могут копировать или получать доступ к состоянию кубита напрямую.

Дополнительные сведения см. в руководстве пользователя по языку квантового Q# программирования.

Начало работы с Azure Quantum Development Kit

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

Совет

Первые пользователи автоматически получают бесплатные кредиты Azure Quantum в размере 500 долл. США для использования с каждым участвующим поставщиком квантового оборудования. Если вы используете все кредиты и вам потребуются дополнительные, вы можете подать заявку на участие в программе кредитов Azure Quantum.

Веб-сайт Azure Quantum

Веб-сайт Azure Quantum — это самый простой способ начать работу с квантовым программированием. С помощью интерактивного редактора кода на веб-сайте Azure Quantum можно выполнять Q# код в браузере без необходимости настройки и обращаться за помощью к Copilot. Одним щелчком мыши в интерактивном редакторе кода можно открыть код в VS Code в Интернете и бесплатно продолжить работу в предварительно настроенной квантовой среде.

Примечание

Веб-сайт Azure Quantum является бесплатным и не требует учетной записи Azure.

Примеры на портале Azure Quantum

Если вы хотите приступить к изучению и написанию программ Q# без установки дополнительного ПО, вы можете использовать размещенные записные книжки Jupyter Notebook, доступные в рабочем пространстве Azure Quantum на портале Azure. Коллекция примеров содержит коллекцию примеров записных книжек с заметками. Выберите пример, который вы хотите изучить, и запустите его в облачных симуляторах или на реальных квантовых компьютерах.

Примечание

Чтобы использовать размещенные записные книжки Jupyter Notebook, вам потребуется учетная запись Azure. Если у вас нет учетной записи Azure, ее можно создать бесплатно.

Локальная среда разработки

Если вы предпочитаете локальную среду разработки, вы можете установить расширение Modern QDK для Visual Studio Code. Современное расширение QDK предоставляет полнофункционалную среду разработки для Q#, включая выделение синтаксиса, обратную связь о коде в режиме реального времени и отладку.

Чтобы приступить к работе с расширением Modern QDK, ознакомьтесь со следующим руководством.

Совет

Современный QDK содержит набор встроенных Q# примеров, которые можно использовать для получения дополнительных сведений о Q# квантовых вычислениях. Чтобы просмотреть примеры, откройте новый Q# файл и введите sample, а затем выберите пример, который нужно просмотреть, в списке параметров.

Рабочий процесс разработки quantum

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

Схема рабочего процесса разработки квантового программирования.

Выбор среды разработки

Запустите квантовые программы в предпочитаемой среде разработки. Вы можете использовать редактор кода в Интернете на веб-сайте Azure Quantum, размещенные записные книжки Jupyter Notebook, доступные в рабочей области Azure Quantum в портал Azure, или собственную локальную среду разработки.

Написание квантовой программы

QDK обеспечивает поддержку для Q#, а также для языков Qiskit и Cirq для квантовых вычислений.

Чтобы приступить к работе, следуйте руководствам Q# и изучите такие квантовые понятия, как суперпозиция, запутанность, квантовый алгоритм Гровера и другие квантовые явления.

Интеграция с Python

QDK позволяет интегрировать Q# программы с Python. Для вызова Q# операций можно использовать программу Python.

Оценка ресурсов

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

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

Дополнительные сведения см. в статье Выполнение первой оценки ресурсов.

Примечание

Оценщик ресурсов Azure Quantum предоставляется бесплатно и не требует учетной записи Azure.

Запуск программы в симуляторе

При компиляции и запуске квантовой программы QDK создает экземпляр квантового симулятора Q# и передает ему код. Симулятор использует код Q# для создания кубитов (имитирующих квантовые частицы) и выполняет операции по изменению их состояния. Результаты квантовых операций в симуляторе затем возвращаются в программу. Изоляция кода Q# в симуляторе гарантирует, что алгоритмы следуют законам квантовой физики и могут правильно работать на квантовых компьютерах.

Отправка заданий в службу Azure Quantum

Вы можете отправлять свои Q# программы (также называемые заданиями) в Azure Quantum через предпочитаемую среду разработки как локально, так и в интернете. См. дополнительные сведения о том, как отправлять задания Q#. Вы также можете запускать и отправлять квантовые цепи, написанные на языках Qiskit и Cirq.

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

Примечание

Облачный эмулятор targetQuantinuum серии H доступен без учетной записи Azure. Чтобы отправить задание остальным поставщикам Azure Quantum, вам потребуется учетная запись Azure и квантовая рабочая область. Если у вас нет квантовой рабочей области, см. статью Создание рабочей области Azure Quantum.

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

Схема, показывающая рабочий процесс после отправки задания в Azure Quantum.

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