Skip to main content

Quobly QPU SDK.

Project description

Quobly forge emulator

The Quobly-alloy SDK adresses Quobly QPUs such as Alloy Pioneer and their emulators using the forge module.

Installation

You can install Quobly Alloy with

pip install quobly-alloy

Use

The minimal program to call an emulator such as the Pioneer emulator is

from qiskit import QuantumCircuit
from quobly_alloy.forge import PioneerEmulator
from quobly_alloy import QPU

circuit = QuantumCircuit(2)
circuit.rx(1, 1)
circuit.rz(1, 0)
circuit.rx(1, 0)
circuit.rzz(1, 0, 1)
circuit.measure_all()

emulator = PioneerEmulator(QPU.PIONEER_P10)
result = emulator.run_simulation(circuit,shots=1000)
print(result)

This code first create a circuit of 2 qubits, then simulate it on the PIONEER_P10 machine using run simulation. The methods PioneerEmualtor.run_simulation simulate a circuit for one ten shots. This return a dictionary[str,int] composed of key being the bitstring of the machine and values being the number of time the bitstring appears.

One can also use the function run, that return a QuoblyJob object (inheriting from Qiskit.Job) with the methods QuoblyJob.result that return the same result as run_simulation. This methods exist for adherence to qiskit framework.

Furthermore, one can fix a seed using

emulator = PioneerEmulator(QPU.PIONEER_P10,seed = 100)
result = emulator.run_simulation(circuit=circuit,shots=1000)

In addition one can select the number of core used for the emulation with (note that max_used_core is capped by the number of core of your hardware):

emulator = PioneerEmulator(QPU.PIONEER_P10,max_used_core=6)
result = emulator.run_simulation(circuit=circuit,shots=1000,noise=False)

You can also remove the injected noise using:

emulator = PioneerEmulator(QPU.PIONEER_P10)
result = emulator.run_simulation(circuit=circuit,shots=1000,noise=False)

Finally you can change the number of qubits using:

emulator = PioneerEmulator(QPU.PIONEER_P10,qubits = 5)
result = emulator.run_simulation(circuit=circuit)

[!CAUTION] The number of possible qubits is dependant of the computer memory size.

Transpilation

The transpilation is done internally by the backend.

Using qiskit-aer-gpu for cuda 12

As of no, qiskit 2.x does not support cuda 12, but conda does.

On your conda environment you can install the correct package using

conda install -c conda-forge "qiskit-aer=0.17.2=*cuda*" cuda-version=12

You can then check if the gpu is correctly found using:

python -c "from qiskit_aer import AerSimulator; print('GPU' in AerSimulator().available_devices())"

You can then use the backend as normal, the backend prioritize the GPU device if found. You can force the use of the CPU using:

emulator = PioneerEmulator(QPU.PIONEER_P10,always_use_cpu = True)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

quobly_alloy-1.1.3.tar.gz (15.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quobly_alloy-1.1.3-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file quobly_alloy-1.1.3.tar.gz.

File metadata

  • Download URL: quobly_alloy-1.1.3.tar.gz
  • Upload date:
  • Size: 15.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for quobly_alloy-1.1.3.tar.gz
Algorithm Hash digest
SHA256 58a55e53898e4dc5460ddd4f4bcb4ebc5644828403e98d5a6184da3115547544
MD5 37aec94d1352eb2dad12cef2c0f5418e
BLAKE2b-256 18e05bc60cc1c8eb184879a9b1668adb0a4f363f6502afa9b60747540d4d63e2

See more details on using hashes here.

File details

Details for the file quobly_alloy-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: quobly_alloy-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 11.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for quobly_alloy-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6950fc4d05a3aed4ca5735bf86a38605b210c6f39ebdbbe8b58eb874b9463805
MD5 50f896ab06667b7ae5eae76de799e4b0
BLAKE2b-256 74dddcebf44e53ed0afbd13c34bc218ff3fb0b8eacf371e7bfecb30d0d38405f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page