跳转到主要内容

Aer - 高性能Qiskit模拟器

项目描述

Aer - 高性能量子电路模拟器,用于Qiskit

License Build Tests

Aer 是一个高性能的量子电路模拟器,用Qiskit编写,包括现实噪声模型。

安装

我们鼓励通过pip工具(一个Python包管理器)安装Aer。

pip install qiskit-aer

Pip将自动为我们处理所有依赖关系,并且您将始终安装最新(且经过良好测试)的版本。

要从源安装,请按照贡献指南中的说明操作。

安装GPU支持

为了在Linux上安装和运行支持GPU的模拟器,您需要先安装CUDA® 11.2或更高版本。CUDA®本身需要一套特定的GPU驱动程序。请按照NVIDIA® 网站 上的CUDA®安装程序进行操作。

如果您想安装我们支持的GPU模拟器,您必须安装此其他包

pip install qiskit-aer-gpu

上述包是为CUDA® 12设计的,因此如果您系统已安装CUDA® 11,请安装单独的包

pip install qiskit-aer-gpu-cu11

这将覆盖您当前的qiskit-aer包安装,为您提供与标准qiskit-aer包相同的功能,以及运行支持GPU的模拟器的功能:状态矢量、密度矩阵和幺正矩阵。

注意:此包仅在x86_64 Linux上可用。对于其他具有CUDA支持的平台,您必须从源代码构建。有关如何操作的说明,请参阅贡献指南

使用Aer模拟第一个Qiskit电路

现在您已经安装了Aer,您可以使用原语和噪声模型开始模拟量子电路。以下是一个基本示例

$ python
from qiskit import transpile
from qiskit.circuit.library import RealAmplitudes
from qiskit.quantum_info import SparsePauliOp
from qiskit_aer import AerSimulator

sim = AerSimulator()
# --------------------------
# Simulating using estimator
#---------------------------
from qiskit_aer.primitives import EstimatorV2

psi1 = transpile(RealAmplitudes(num_qubits=2, reps=2), sim, optimization_level=0)
psi2 = transpile(RealAmplitudes(num_qubits=2, reps=3), sim, optimization_level=0)

H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)])
H2 = SparsePauliOp.from_list([("IZ", 1)])
H3 = SparsePauliOp.from_list([("ZI", 1), ("ZZ", 1)])

theta1 = [0, 1, 1, 2, 3, 5]
theta2 = [0, 1, 1, 2, 3, 5, 8, 13]
theta3 = [1, 2, 3, 4, 5, 6]

estimator = EstimatorV2()

# calculate [ [<psi1(theta1)|H1|psi1(theta1)>,
#              <psi1(theta3)|H3|psi1(theta3)>],
#             [<psi2(theta2)|H2|psi2(theta2)>] ]
job = estimator.run(
    [
        (psi1, [H1, H3], [theta1, theta3]),
        (psi2, H2, theta2)
    ],
    precision=0.01
)
result = job.result()
print(f"expectation values : psi1 = {result[0].data.evs}, psi2 = {result[1].data.evs}")

# --------------------------
# Simulating using sampler
# --------------------------
from qiskit_aer.primitives import SamplerV2
from qiskit import QuantumCircuit

# create a Bell circuit
bell = QuantumCircuit(2)
bell.h(0)
bell.cx(0, 1)
bell.measure_all()

# create two parameterized circuits
pqc = RealAmplitudes(num_qubits=2, reps=2)
pqc.measure_all()
pqc = transpile(pqc, sim, optimization_level=0)
pqc2 = RealAmplitudes(num_qubits=2, reps=3)
pqc2.measure_all()
pqc2 = transpile(pqc2, sim, optimization_level=0)

theta1 = [0, 1, 1, 2, 3, 5]
theta2 = [0, 1, 2, 3, 4, 5, 6, 7]

# initialization of the sampler
sampler = SamplerV2()

# collect 128 shots from the Bell circuit
job = sampler.run([bell], shots=128)
job_result = job.result()
print(f"counts for Bell circuit : {job_result[0].data.meas.get_counts()}")
 
# run a sampler job on the parameterized circuits
job2 = sampler.run([(pqc, theta1), (pqc2, theta2)])
job_result = job2.result()
print(f"counts for parameterized circuit : {job_result[0].data.meas.get_counts()}")

# --------------------------------------------------
# Simulating with noise model from actual hardware
# --------------------------------------------------
from qiskit_ibm_runtime import QiskitRuntimeService
provider = QiskitRuntimeService(channel='ibm_quantum', token="set your own token here")
backend = provider.get_backend("ibm_kyoto")

# create sampler from the actual backend
sampler = SamplerV2.from_backend(backend)

# run a sampler job on the parameterized circuits with noise model of the actual hardware
bell_t = transpile(bell, AerSimulator(basis_gates=["ecr", "id", "rz", "sx"]), optimization_level=0)
job3 = sampler.run([bell_t], shots=128)
job_result = job3.result()
print(f"counts for Bell circuit w/noise: {job_result[0].data.meas.get_counts()}")

贡献指南

如果您想为Aer做出贡献,请查看我们的贡献指南。本项目遵循Qiskit的行为准则。通过参与,您应遵守此准则。

我们使用GitHub问题来跟踪请求和错误。请使用我们的Slack进行讨论和简单问题。要加入我们的Slack社区,请使用链接。对于更适合论坛的问题,我们使用Stack Exchange中的Qiskit标签。

下一步

现在您已设置好,可以查看Aer文档中的其他示例。

作者和引用

Aer是许多不同级别为项目做出贡献的人的工作。如果您使用Qiskit,请根据随附的BibTeX文件进行引用。

许可

Apache License 2.0

项目详情


下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

qiskit-aer-0.15.1.tar.gz (6.6 MB 查看哈希值)

上传时间 源代码

构建分发

qiskit_aer-0.15.1-cp312-cp312-win_amd64.whl (9.5 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

qiskit_aer-0.15.1-cp312-cp312-win32.whl (6.9 MB 查看哈希值)

上传时间 CPython 3.12 Windows x86

qiskit_aer-0.15.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.3 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64

qiskit_aer-0.15.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (7.9 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ppc64le

qiskit_aer-0.15.1-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (7.9 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ i686

qiskit_aer-0.15.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ ARM64

qiskit_aer-0.15.1-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB 查看哈希值)

上传时间 CPython 3.12 macOS 11.0+ ARM64

qiskit_aer-0.15.1-cp312-cp312-macosx_10_9_x86_64.whl (2.5 MB 查看哈希值)

上传时间 CPython 3.12 macOS 10.9+ x86-64

qiskit_aer-0.15.1-cp311-cp311-win_amd64.whl (9.5 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86-64

qiskit_aer-0.15.1-cp311-cp311-win32.whl (6.9 MB 查看哈希值)

上传时间 CPython 3.11 Windows x86

qiskit_aer-0.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.3 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ x86-64

qiskit_aer-0.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (7.9 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ppc64le

qiskit_aer-0.15.1-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (7.9 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ i686

qiskit_aer-0.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB 查看哈希值)

上传时间: CPython 3.11 manylinux: glibc 2.17+ ARM64

qiskit_aer-0.15.1-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB 查看哈希值)

上传时间: CPython 3.11 macOS 11.0+ ARM64

qiskit_aer-0.15.1-cp311-cp311-macosx_10_9_x86_64.whl (2.5 MB 查看哈希值)

上传时间: CPython 3.11 macOS 10.9+ x86-64

qiskit_aer-0.15.1-cp310-cp310-win_amd64.whl (9.5 MB 查看哈希值)

上传时间: CPython 3.10 Windows x86-64

qiskit_aer-0.15.1-cp310-cp310-win32.whl (6.9 MB 查看哈希值)

上传时间: CPython 3.10 Windows x86

qiskit_aer-0.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.3 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ x86-64

qiskit_aer-0.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (7.9 MB 查看哈希值)

上传时间: CPython 3.10 manylinux: glibc 2.17+ ppc64le

qiskit_aer-0.15.1-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (7.9 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686

qiskit_aer-0.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

qiskit_aer-0.15.1-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB 查看哈希值)

上传于 CPython 3.10 macOS 11.0+ ARM64

qiskit_aer-0.15.1-cp310-cp310-macosx_10_9_x86_64.whl (2.5 MB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

qiskit_aer-0.15.1-cp39-cp39-win_amd64.whl (9.5 MB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

qiskit_aer-0.15.1-cp39-cp39-win32.whl (6.9 MB 查看哈希值)

上传于 CPython 3.9 Windows x86

qiskit_aer-0.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.3 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

qiskit_aer-0.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (7.9 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ppc64le

qiskit_aer-0.15.1-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (7.9 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686

qiskit_aer-0.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ ARM64

qiskit_aer-0.15.1-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB 查看哈希值)

上传于 CPython 3.9 macOS 11.0+ ARM64

qiskit_aer-0.15.1-cp39-cp39-macosx_10_9_x86_64.whl (2.5 MB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

qiskit_aer-0.15.1-cp38-cp38-win_amd64.whl (9.5 MB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

qiskit_aer-0.15.1-cp38-cp38-win32.whl (6.9 MB 查看哈希值)

上传于 CPython 3.8 Windows x86

qiskit_aer-0.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.3 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64

qiskit_aer-0.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (7.9 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ppc64le

qiskit_aer-0.15.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (7.9 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686

qiskit_aer-0.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (6.4 MB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ ARM64

qiskit_aer-0.15.1-cp38-cp38-macosx_10_9_x86_64.whl (2.5 MB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面