qiskit-serverless

A programming model for leveraging quantum and classical resources

https://github.com/qiskit/qiskit-serverless

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary

Keywords

cloud python qiskit qiskit-serverless quantum-computing
Last synced: 6 months ago · JSON representation ·

Repository

A programming model for leveraging quantum and classical resources

Basic Info
Statistics
  • Stars: 90
  • Watchers: 12
  • Forks: 40
  • Open Issues: 20
  • Releases: 63
Topics
cloud python qiskit qiskit-serverless quantum-computing
Created over 3 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Codeowners Security

README.md

Stability License Code style: Black Python Qiskit

Qiskit Serverless

Qiskit Serverless is a user-friendly tool that enables you to easily run complex quantum computing tasks. With this software, you can execute Qiskit Functions as long running jobs and distribute them across multiple CPUs, GPUs, and QPUs. This means you can take on more complex quantum-classical programs and run them with ease. You don't have to worry about configuration or scaling up computational resources, as Qiskit Serverless takes care of everything for you.

diagram

Table of Contents

  1. Quickstart
    1. Using Docker
    2. Using Kubernetes
  2. Modules
    1. Client
    2. Gateway
    3. Charts
  3. How to Give Feedback
  4. Contribution Guidelines
  5. Deprecation Policy
  6. References and Acknowledgements
  7. License

Quickstart

This Quickstart section guides users to easily deploy Qiskit Serverless infrastructure and run a simple example.

Docker

For user convenience, this section assumes that users will deploy the infrastructure in a local environment using Docker following the next steps.

  1. Prepare local Qiskit Serverless infrastructure

    1. Install Docker You can use any runtime that you prefer to run Docker on your machine: Docker Desktop, podman... If you are using a MacOS with ARM processors we highly recommend to use Colima as your container runtime to avoid problems with that architecture.

    This is a project that takes advantage of distributed computing, so it places a high demand on resources. We recommend increasing the assigned resources to these runtimes. In case of Colima for example we typically use: shell colima start --cpu 4 --memory 8 --disk 100 1. Install qiskit-serverless on your local system (we recommend using a virtual environment). shell pip install qiskit-serverless 1. Clone the Qiskit Serverless repository shell git clone https://github.com/Qiskit/qiskit-serverless.git 1. Run Qiskit Serverless infrastructure Execute Docker Compose using the following commands. shell cd qiskit-serverless/ sudo docker compose up

    The output should resemble the following. ~/qiskit-serverless$ sudo docker compose --profile jupyter up [+] Running 5/0 ✔ Network public-qiskit-serverless_safe-tier Created 0.0s ✔ Container ray-head Created 0.0s ✔ Container public-qiskit-serverless-postgres-1 Created 0.0s ✔ Container gateway Created 0.0s ✔ Container scheduler Created 0.0s Attaching to gateway, public-qiskit-serverless-postgres-1, ray-head, scheduler

  2. Write your first Qiskit Function following our hello-world example in the tutorial section.

That's all!

Kubernetes

For user convenience, this section assumes that users will deploy the infrastructure in a local environment using Kind following the next steps.

  1. Prepare local Qiskit Serverless infrastructure

    1. Install Docker You can use any runtime that you prefer to run Docker on your machine: Docker Desktop, podman... If you are using a MacOS with ARM processors we highly recommend to use Colima as your container runtime to avoid problems with that architecture.

    This is a project that takes advantage of distributed computing, so it places a high demand on resources. We recommend increasing the assigned resources to these runtimes. In case of Colima for example we typically use: shell colima start --cpu 4 --memory 8 --disk 100 1. Install Kind To simplify the process to deploy a k8s cluster locally we use Kind as the main tool to create a cluster. 1. Install qiskit-serverless on your local system (we recommend using a virtual environment). shell pip install qiskit-serverless 1. Clone the Qiskit Serverless repository shell git clone https://github.com/Qiskit/qiskit-serverless.git 1. Run Qiskit Serverless infrastructure Execute the script to setup the cluster shell tox -e cluster-deploy The creation process can take some minutes.

  2. Write your first Qiskit Function following our hello-world example in the tutorial section.

That's all!

For more detailed examples and explanations refer to the Guide:

  1. Getting Started
  2. Example Qiskit Functions
  3. Infrastructure
  4. Migrating from Qiskit Runtime programs

How to Give Feedback

We encourage your feedback! You can share your thoughts with us by: - Opening an issue in the repository


Contribution Guidelines

For information on how to contribute to this project, please take a look at our contribution guidelines.


Deprecation Policy

This project is meant to evolve rapidly and, as such, do not follow Qiskit's deprecation policy. We may occasionally make breaking changes in order to improve the user experience. When possible, we will keep old interfaces and mark them as deprecated, as long as they can co-exist with the new ones. Each substantial improvement, breaking change, or deprecation will be documented in release notes.


References and Acknowledgements

[1] Qiskit \ https://github.com/Qiskit/qiskit

[2] Client for IBM Qiskit Runtime \ https://github.com/Qiskit/qiskit-ibm-runtime


License

Apache License 2.0

Owner

  • Name: Qiskit
  • Login: Qiskit
  • Kind: organization
  • Email: qiskit@us.ibm.com

Qiskit is an open-source SDK for working with quantum computers at the level of extended quantum circuits, operators, and primitives.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Aragón Moreno"
  given-names: "Pablo"
- family-names: "García Valiñas"
  given-names: "David"
- family-names: "Iniesta Ovejero"
  given-names: "Gregorio"
- family-names: "Panda"
  given-names: "Sanket"
- family-names: "Peña Tapia"
  given-names: "Elena"
title: "Qiskit Serverless"
version: 0.25.4
date-released: 2023-02-14
url: "https://github.com/Qiskit/qiskit-serverless"

GitHub Events

Total
  • Create event: 127
  • Release event: 7
  • Issues event: 29
  • Watch event: 21
  • Delete event: 124
  • Member event: 1
  • Issue comment event: 102
  • Push event: 647
  • Pull request review comment event: 218
  • Pull request review event: 328
  • Pull request event: 255
  • Fork event: 15
Last Year
  • Create event: 127
  • Release event: 7
  • Issues event: 29
  • Watch event: 21
  • Delete event: 124
  • Member event: 1
  • Issue comment event: 102
  • Push event: 647
  • Pull request review comment event: 218
  • Pull request review event: 328
  • Pull request event: 255
  • Fork event: 15

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 14
  • Total pull requests: 212
  • Average time to close issues: 6 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 10
  • Total pull request authors: 8
  • Average comments per issue: 1.79
  • Average comments per pull request: 0.23
  • Merged pull requests: 160
  • Bot issues: 0
  • Bot pull requests: 17
Past Year
  • Issues: 11
  • Pull requests: 212
  • Average time to close issues: 2 months
  • Average time to close pull requests: 7 days
  • Issue authors: 8
  • Pull request authors: 8
  • Average comments per issue: 1.09
  • Average comments per pull request: 0.23
  • Merged pull requests: 160
  • Bot issues: 0
  • Bot pull requests: 17
Top Authors
Issue Authors
  • Tansito (18)
  • IceKhan13 (6)
  • akihikokuroda (6)
  • jyu00 (4)
  • psschwei (4)
  • johannesgreiner (3)
  • frankharkins (3)
  • korgan00 (2)
  • MeltemTolunay (1)
  • ElePT (1)
  • abbycross (1)
  • github-actions[bot] (1)
  • caleb-johnson (1)
  • blannix (1)
  • pandasa123 (1)
Pull Request Authors
  • Tansito (185)
  • akihikokuroda (52)
  • korgan00 (45)
  • paaragon (39)
  • psschwei (29)
  • github-actions[bot] (27)
  • ElePT (9)
  • IceKhan13 (6)
  • renovate[bot] (2)
  • garrison (2)
  • richrines1 (1)
  • ohtanim (1)
  • q-inho (1)
  • robertodr (1)
  • Anayverma (1)
Top Labels
Issue Labels
bug (19) project: gateway (15) enhancement (13) project: client (8) priority: medium (7) project: infrastructure (6) priority: high (6) priority: low (2) project: repository (1) question (1) epic (1)
Pull Request Labels
WIP (2) release (1) bug (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 7,279 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 29
  • Total maintainers: 1
pypi.org: qiskit-serverless

An open-source SDK for resource management in quantum computing workflows.

  • Versions: 29
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 7,279 Last month
Rankings
Dependent packages count: 9.4%
Average: 35.7%
Dependent repos count: 61.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

client/requirements-dev.txt pypi
  • black * development
  • coverage >=5.5 development
  • jupyter-sphinx >=0.3.2 development
  • mypy >=0.780 development
  • mypy-extensions >=0.4.3 development
  • nbqa >=1.1.1 development
  • nbsphinx >=0.8.8 development
  • pylint >=2.9.5 development
  • pytest >=6.2.5 development
  • pytest-randomly >=1.2.0 development
  • reno >=3.5.0 development
  • requests-mock >=1.9.3 development
  • sphinx-autodoc-typehints >=1.17.0 development
  • treon >=0.1.3 development
client/requirements.txt pypi
  • importlib-metadata >=4.12.0
  • qiskit-aer >=0.11.0
  • qiskit-ibm-runtime >=0.7.0
  • qiskit-ibmq-provider >=0.19.2
  • qiskit-nature >=0.4.4
  • qiskit-terra >=0.21.0
  • ray >=2.0.0,<3
  • requests >=2.28.0
.github/workflows/client-verify.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/docker-verify.yaml actions
  • ./.github/actions/docker-vscan * composite
  • actions/checkout v3 composite
.github/workflows/gateway-verify.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/publish-helm.yaml actions
  • actions/checkout v3 composite
  • actions/upload-artifact v3 composite
  • actions/upload-release-asset v1 composite
  • azure/setup-helm v3 composite
  • bruceadams/get-release v1.3.2 composite
.github/workflows/release-drafter.yml actions
  • release-drafter/release-drafter v5 composite
client/pyproject.toml pypi
client/setup.py pypi
.github/actions/docker-vscan/action.yaml actions
  • docker/build-push-action v3 composite
.github/actions/helm-lint/action.yaml actions
  • actions/setup-python v4 composite
  • azure/setup-helm v1 composite
  • helm/chart-testing-action v2.6.1 composite
.github/actions/icr-build-and-push-images/action.yaml actions
  • docker/build-push-action v3 composite
.github/workflows/build-containers-test.yaml actions
  • actions/checkout v4 composite
  • docker/build-push-action v5 composite
  • docker/setup-buildx-action v3 composite
.github/workflows/client-pypi-release.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/docker-build.yaml actions
  • actions/checkout v3 composite
.github/workflows/docs-verify.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
.github/workflows/helm-verify.yaml actions
  • ./.github/actions/helm-lint * composite
  • actions/checkout v3 composite
.github/workflows/icr-image-build-and-push.yaml actions
  • ./.github/actions/icr-build-and-push-images * composite
  • actions/checkout v3 composite
  • docker/login-action v2 composite
  • docker/setup-buildx-action v2 composite
  • docker/setup-qemu-action v2 composite
.github/workflows/publish-docs.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/release-pull-request.yaml actions
  • ./.github/actions/docker-vscan * composite
  • ./.github/actions/helm-lint * composite
  • actions/checkout v3 composite
.github/workflows/update-component-versions.yaml actions
  • actions/checkout v4 composite
  • peter-evans/create-pull-request v5 composite
gateway/Dockerfile docker
  • python 3.9.16-slim-buster build
docs/requirements-doc.txt pypi
  • Sphinx >=6.2.1,<7.2
  • black *
  • coverage >=5.5
  • jupyter-sphinx >=0.4.0
  • mypy >=0.991
  • mypy-extensions >=0.4.4
  • nbqa >=1.7.0
  • nbsphinx >=0.9.3
  • pylint >=2.17.7
  • pytest >=6.2.5
  • pytest-randomly >=1.2.3
  • qiskit-sphinx-theme *
  • reno >=3.5.0
  • sphinx-autodoc-typehints >=1.24.0
  • sphinx-copybutton >=0.5.2
  • tox >=4.0.0
  • treon >=0.1.4
gateway/requirements-dev.txt pypi
  • black * development
  • coverage >=5.5 development
  • pylint >=2.17.7 development
  • pylint-django >=2.5.5 development
  • pytest >=6.2.5 development
  • requests-mock >=1.11.0 development
  • responses >=0.23.3 development
  • tox >=4.0.0 development
gateway/requirements.txt pypi
  • Django >=4.2.7
  • Markdown >=3.5.1
  • dj-rest-auth >=5.0.2
  • django-allauth >=0.58.2
  • django-allow-cidr >=0.7.1
  • django-concurrency >=2.4
  • django-filter >=23.3
  • django_prometheus >=2.3.1
  • djangorestframework >=3.14.0
  • djangorestframework-simplejwt >=5.3.0
  • gunicorn >=20.1.0
  • kubernetes >=26.1.0
  • opentelemetry-distro >=0.40b0
  • opentelemetry-exporter-otlp >=1.19.0
  • psycopg2-binary >=2.9.9
  • ray >=2.8.1
  • requests >=2.31.0
.github/workflows/notebook-local-verify.yaml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
.github/workflows/kubernetes-deploy.yaml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
  • chainguard-dev/actions/kind-diag main composite
  • chainguard-dev/actions/setup-kind main composite