Skip to main content

Quantum Launcher is modular tool, for solving many problems on many algorithms using many quantum computing backends

Project description

Quantum Launcher

About Project

Quantum Launcher is a high-level Python library that simplifies the process of running quantum algorithms. The library aims to make it easier to run, test, benchmark, and optimize quantum algorithms by providing tools that work across diverse configurations.

The library contains a rich collection of preset problems and algorithms, eliminating the need to repeatedly implement foundational components such as problem-specific QUBO formulations or Hamiltonians. This approach significantly reduces the overhead when benchmarking different quantum approaches.

Quantum Launcher introduces an intuitive architectural framework by dividing the quantum computation pipeline into three distinct components: Problem, Algorithm, and Backend. This separation creates a universal interface that allows researchers and developers to focus on specific aspects of quantum computation while maintaining compatibility across the entire ecosystem.

Quantum Launcher

Supported features

Additionally to ability of quickly changing tested problem, algorithm or backend Quantum Launcher comes with a bunch of useful features such as:

  • Random problem instances generator.
  • Automatic translation between problem formulations (e.g. QUBO -> Hamiltonian).
  • QASM-based translation to match different frameworks (such as running qiskit's algorithm on cirq's computer).
  • Asynchronous architecture to execute problems either standalone or in a grid.
  • Access to more advanced workflows with qcg-pilotjob.
  • Interface for simple profiling of algorithms.
  • Creation of more complex workflows using WorkflowManager enabling splitting algorithms across multiple devices.

Installation

To install the following library use the following script:

pip install git+https://github.com/psnc-qcg/QCG-QuantumLauncher@QL-2.0

Optional Installs

Quantum Launcher aims to work for many different architectures. Therefore in order to remain compatible with all of them Quantum Launcher by default installs only necessary requirements allowing user to decide what frameworks does one want to use. To make installation easier, there is a bunch of downloads that can be done with optional dependencies, for example:

pip install "git+https://github.com/psnc-qcg/QCG-QuantumLauncher@QL-2.0[qiskit]"

to install all requirements necessary to run qiskit algorithms.

  • qiskit: support for IBM's qiskit algorithms and backends.
  • orca: support for Orca Computing algorithms and backends NOTE library ptseries is not public therefore one needs to install it on it's own.
  • dwave: support for D-Wave Systems algorithms and backends.
  • cirq: support for Google's cirq backends.
  • pilotjob: support for advanced job scheduling using Quantum Launcher and QCG PilotJob for more complex algorithm.

Supported problems, algorithms and backends

Quantum Launcher was made to simplify using of multiple different problems, algorithms and backends, therefore adding new things is relatively easy.

Supported problems:

  • MaxCut
  • Exact Cover
  • Job Shop Shedueling
  • Air Traffic Management
  • Traveling Salesman Problem
  • Graph Coloring

For now supported backends are:

  • Qiskit
  • Orca Computing
  • D-wave
  • AQT
  • Cirq

Usage examples

Main idea of the project was to give a user quick and high level access to many different problems, algorithms and backends keeping interface simple. For example to solve MaxCut problem with QAOA on qiskit simulator all you need to type is:

# Necessary imports
from quantum_launcher import QuantumLauncher
from quantum_launcher.problems import MaxCut
from quantum_launcher.routines.qiskit_routines import QiskitBackend, QAOA

# Selecting problem, algorithm and backend
problem = MaxCut.from_preset('default')
algorithm = QAOA(p=3)
backend = QiskitBackend('local_simulator')

# Selecting launcher (Quantum Launcher by default, but other can be used for profiling/parallel processing)
launcher = QuantumLauncher(problem, algorithm, backend)

# Running the algorithm
result = launcher.run()

A key advantage of our library is that changing algorithms (such as switching to Quantum Annealing from Dwave) doesn't require manually specifying that MaxCut needs to provide QUBO representation - this translation happens automatically behind the scenes.

# Necessary imports
from quantum_launcher import QuantumLauncher
from quantum_launcher.problems import MaxCut
from quantum_launcher.routines.dwave_routines import SimulatedAnnealingBackend, DwaveSolver

# Selecting problem, algorithm and backend
problem = MaxCut.from_preset('default')
algorithm = DwaveSolver()
backend = SimulatedAnnealingBackend('local_simulator')

# Selecting launcher (Quantum Launcher by default, but other can be used for profiling/parallel processing)
launcher = QuantumLauncher(problem, algorithm, backend)

# Running the algorithm
result = launcher.run()

License

This project uses the To Be determined License.

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

quantum_launcher-2.0.tar.gz (48.6 kB view details)

Uploaded Source

Built Distribution

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

quantum_launcher-2.0-py3-none-any.whl (66.9 kB view details)

Uploaded Python 3

File details

Details for the file quantum_launcher-2.0.tar.gz.

File metadata

  • Download URL: quantum_launcher-2.0.tar.gz
  • Upload date:
  • Size: 48.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for quantum_launcher-2.0.tar.gz
Algorithm Hash digest
SHA256 ce2d733d5a46371a16c56592d046b71b2344ab92bbfabf76a4ad4334c4235742
MD5 6d654c7149bcfe5a536f0089a767b49f
BLAKE2b-256 5ac7b1bf34a2029cda8272e23eceb12a53a8af06b4e8e21216c55a5df6967026

See more details on using hashes here.

File details

Details for the file quantum_launcher-2.0-py3-none-any.whl.

File metadata

  • Download URL: quantum_launcher-2.0-py3-none-any.whl
  • Upload date:
  • Size: 66.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for quantum_launcher-2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c77bccc86b7b043a494f9ca6011c70b500c306ec6b4ff5f6a6353d016d477252
MD5 e18b0ec1d7758569046361bd430a8937
BLAKE2b-256 b2520599a3b84b54edae4fc5ae13605e970e2376a6b54a7abb7605fb69bdf079

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