Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft Quantum Development Kit (QDK) включает набор квантовых симуляторов, которые позволяют запускать квантовые программы на локальном компьютере. Используйте локальные симуляторы для итерации программ перед отправкой их для запуска в целевых объектах Azure Quantum.
В ней QDK есть четыре симулятора:
- Разреженный симулятор
- Симулятор Clifford
- Симулятор GPU
- Симулятор CPU
Разреженный симулятор
Разреженный симулятор — это симулятор по умолчанию в QDK. Этот симулятор представляет состояния кубита как разреженные векторы, чтобы воспользоваться преимуществами разреженной матричной алгебры для быстрого симулирования, особенно для программ, которые не генерируют много состояний суперпозиции. Используйте разреженный симулятор, если требуется быстрое моделирование Q#, OpenQASMили Qiskit программы, или когда вы хотите отобразить квантовое состояние программы во время моделирования.
Симулятор разреженных вычислений доступен как в расширении QDKдля Visual Studio Code (VS Code), так и в пакете QDKPython. Этот симулятор является единственным доступным симулятором в QDK расширении, поэтому компилятор автоматически вызывает разреженный симулятор при запуске Q# и OpenQASM программах в VS Code. С помощью разреженного симулятора в VS Code можно использовать Q#DumpMachine функцию или отладчик для отображения векторов состояния кубитов в разных точках моделирования.
Расширение VS Code и Python пакет поддерживают модели шума для разреженных имитаций Q# и OpenQASM программ. Только пакет Python поддерживает разрежённое моделирование для программ Qiskit, но без поддержки модели шума.
Дополнительные сведения о разреженной симуляторе см. в разделе " Разреженный симулятор".
Симулятор Clifford
Симулятор Clifford является быстрым и эффективным для программ с тысячами кубитов, но может имитировать только программы, содержащие только Clifford шлюзы. Clifford шлюзы являются общими компонентами каналов исправления ошибок. Набор Clifford ворот состоит из ворот H, S и CX, и всех ворот, которые можно построить из этих трех ворот. Следующие Clifford шлюзы являются общими компонентами квантовых каналов:
- $X$, $Y$и $Z$
- $S$ и $S^\dagger$
- $H$, или Hadamard
- $CX$, $CY$и $CZ$
- SWAP и iSWAP
Симулятор Clifford доступен в пакете PythonQDK для программ Q#, OpenQASM, Qiskit и QIR, но недоступен в расширении QDK для VS Code.
Симулятор GPU
Симулятор GPU — это симулятор полного состояния, который использует компьютер GPU для параллельного выполнения множества снимков квантовой программы. Этот симулятор может запускать программы, содержащие любой тип ворот, но дорогостоящие для запуска. Симулятор может моделировать до 27 кубитов. Мощность GPU вашего компьютера определяет производительность, но оптимальная производительность достигается для программ с около 20 кубитами и большим количеством запусков.
Симулятор GPU принимает в качестве входных данных Qiskit или QIR и доступен через определённые API пакетов QDKPython, но не через расширение VS Code. Существует также расширенная поддержка моделей шума для любого типа квантовых ворот или операций.
Симулятор CPU
Как и симулятор GPU, симулятор CPU — это симулятор полного состояния, который может запускать программы, содержащие любой тип квантовых вентилей. Тем не менее, симулятор CPU медленнее, так как он не может выполнять несколько запусков параллельно. Этот симулятор масштабируется до 25 кубитов, но экспоненциально замедляется с увеличением числа кубитов вследствие ограничений памяти. Используйте симулятор, когда на вашем компьютере нет CPU, или когда в вашей программе мало кубитов и вы не выполняете много запусков.
Симулятор CPU принимает в качестве входных данных Qiskit или QIR и доступен через определённые API пакетов QDKPython, но не через расширение VS Code. Существует также богатая поддержка моделей шума для любого типа квантовых ворот или операций.
Какой симулятор следует использовать?
Лучший симулятор зависит от нескольких факторов, таких как:
- Среда разработки (VS Code или Python)
- Платформа квантового программирования, которую вы в настоящее время разрабатываете
- Сложность вашей программы и количество кадров
- Возможности оборудования локального компьютера
- Целевые объекты Azure Quantum или другое квантовое оборудование, на которое вы хотите запустить программы
- Модели шума, которые требуется создать
В следующей таблице перечислены QDK параметры и платформы квантового программирования, которые можно использовать для каждого симулятора:
| Симулятор | Доступность | Поддерживаемые платформы |
|---|---|---|
| Разреженный | Расширение VS Code и пакет Python | Q# OpenQASM Qiskit |
| Clifford | Python пакет | Q#, OpenQASM, Qiskit, QIR |
| GPU | Python пакет | Qiskit, QIR |
| CPU | Python пакет | Qiskit, QIR |
Симуляции в QDK расширении VS Code
Разреженный симулятор является единственным доступным симулятором в расширении VS Code QDK. Чтобы использовать разреженный симулятор, запустите файл Q# или OpenQASM в VS Code. Вы можете добавить ограниченные модели шума в разреженный симулятор для Q# программ в VS Code, но не для OpenQASM программ.
Моделирование в пакете QDKPython
Среда разработки QDKPython поддерживает несколько квантовых платформ и все четыре симулятора QDK, но не все симуляторы совместимы со всеми платформами и API.
В этой таблице показаны симуляторы, которые можно использовать для каждого Python API, который вызывает QDK симулятор, и платформу программирования, которую поддерживает каждый API:
| Python API-интерфейс | Разреженный | Clifford | GPU | CPU | Платформа программирования |
|---|---|---|---|---|---|
qsharp.run |
✅ | ✅ | Q# | ||
openqasm.run |
✅ | ✅ | OpenQASM | ||
qiskit.QSharpBackend |
✅ | Qiskit | |||
simulation.NeutralAtomDevice |
✅ | ✅ | ✅ | QIR | |
simulation.NeutralAtomBackend |
✅ | ✅ | ✅ | Qiskit | |
simulation.run_qir |
✅ | ✅ | ✅ | QIR |