無料の量子シミュレーター
強力なシミュレーターで量子回路を実行しましょう — お使いのマシン上でローカルに、あるいはクラウドで。以下のオプションはすべて完全に無料です。
Qiskit Aer
無料ローカル最大30以上の量子ビットIBMの高性能量子回路シミュレーター。Aerは複数のシミュレーション手法(状態ベクトル、スタビライザー、密度行列、MPS、拡張スタビライザー)を備えています。AerCudaによるGPUアクセラレーションも利用可能です。
pip install qiskit-aer # CPU
pip install qiskit-aer-gpu # GPU (CUDA)from qiskit import QuantumCircuit
from qiskit_aer import AerSimulator
qc = QuantumCircuit(2, 2)
qc.h(0)
qc.cx(0, 1)
qc.measure([0, 1], [0, 1])
sim = AerSimulator()
job = sim.run(qc, shots=1000)
result = job.result()
print(result.get_counts()) # {'00': 501, '11': 499}IBM Quantum(クラウドシミュレーター)
無料クラウド最大5000量子ビットIBM Quantum Platformは無料のクラウドホスト型シミュレーターを提供します。ibmq_qasm_simulatorは最大32量子ビットをシミュレートでき、状態ベクトルシミュレーターは大規模回路を扱えます。無料のIBM Quantumアカウントに登録してください。
pip install qiskit
pip install qiskit-ibm-runtimefrom qiskit_ibm_runtime import QiskitRuntimeService
from qiskit_ibm_runtime import SamplerV2 as Sampler
# Free IBM Quantum account needed
service = QiskitRuntimeService(channel="ibm_quantum")
backend = service.least_busy(simulator=True)
sampler = Sampler(mode=backend)
job = sampler.run([qc])
result = job.result()Google Cirq(シミュレーター)
無料ローカル状態ベクトルCirqの組み込みSimulatorは、ローカルで厳密な状態ベクトルシミュレーションと密度行列シミュレーションを提供します。cirq.Simulatorとcirq.DensityMatrixSimulatorは使いやすく、cirq.CliffordSimulatorはスタビライザー回路を効率的に処理します。
pip install cirqimport cirq
q0, q1 = cirq.LineQubit.range(2)
circuit = cirq.Circuit(
cirq.H(q0),
cirq.CNOT(q0, q1),
cirq.measure(q0, q1, key='result')
)
sim = cirq.Simulator()
result = sim.run(circuit, repetitions=1000)
print(result.histogram(key='result'))PennyLane(default.qubit)
無料ローカルJAX/PyTorch微分可能PennyLaneのdefault.qubitは純粋なNumPyシミュレーターで、量子ML研究に最適です。C++アクセラレーションにはlightning.qubitを、NVIDIA GPUアクセラレーションにはlightning.gpuを使用します。いずれも無料、ローカル、そして微分可能です。
pip install pennylane # default.qubit
pip install pennylane-lightning # lightning.qubit (C++)
pip install pennylane-lightning-gpu # GPUimport pennylane as qml
import numpy as np
dev = qml.device("default.qubit", wires=2)
# For GPU: qml.device("lightning.gpu", wires=2)
@qml.qnode(dev)
def bell_state():
qml.Hadamard(wires=0)
qml.CNOT(wires=[0, 1])
return qml.probs(wires=[0, 1])
print(bell_state()) # [0.5, 0., 0., 0.5]NVIDIA CUDA-Q
無料GPUCPUマルチGPUNVIDIAのオープンソース量子コンピューティングプラットフォーム。CUDA-QはGPUアクセラレーションによるシミュレーションを提供し、30量子ビット以上の回路をCPUシミュレーターより桁違いに高速に処理できます。あらゆるNVIDIA GPU上でローカルに無料で実行できます。
pip install cudaq # Requires CUDA-capable GPU
# Or use Docker: nvcr.io/nvidia/nightly/cuda-quantumimport cudaq
@cudaq.kernel
def bell_state():
qvec = cudaq.qvector(2)
h(qvec[0])
cx(qvec[0], qvec[1])
mz(qvec)
counts = cudaq.sample(bell_state, shots_count=1000)
print(counts) # { 00:507 11:493 }Amazon Braket(クラウドシミュレーター)
無料クラウドSV1 / DM1 / TN1AWS Braketは3つのマネージドクラウドシミュレーターを提供します:SV1(状態ベクトル、最大34量子ビット)、DM1(密度行列、最大17量子ビット)、TN1(テンソルネットワーク、最大50量子ビット)。ローカルシミュレーターは完全に無料で、クラウドシミュレーターは約$0.075/タスク+コンピューティング料金がかかります。
pip install amazon-braket-sdkfrom braket.circuits import Circuit
from braket.devices import LocalSimulator
# Completely free local simulator
device = LocalSimulator()
circuit = Circuit().h(0).cnot(0, 1)
task = device.run(circuit, shots=1000)
result = task.result()
print(result.measurement_counts)HLQuantumを使ってあらゆるシミュレーターをターゲットに
各SDKのシミュレーターAPIを個別に学ぶ代わりに、HLQuantumを使えば回路を一度書くだけで、フラグ1つでQiskit Aer、Cirq、PennyLane、CUDA-Qなどを切り替えられます。
hlq.run(qc, backend="qiskit") # Qiskit Aer hlq.run(qc, backend="cirq") # Cirq simulator hlq.run(qc, backend="cudaq") # NVIDIA GPU sim hlq.run(qc, backend="pennylane") # Lightning.qubit