thereminq-classiq

ThereminQ CLassiQ - QuantOPS : Orchestrate Qrack, Bonsai, Qimcifa and Tipsy in OpenCL, VCL and CUDA with an X WebUI

https://github.com/twobombs/thereminq-classiq

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 (9.6%) to scientific vocabulary

Keywords

cuda docker opencl tipsy
Last synced: 6 months ago · JSON representation ·

Repository

ThereminQ CLassiQ - QuantOPS : Orchestrate Qrack, Bonsai, Qimcifa and Tipsy in OpenCL, VCL and CUDA with an X WebUI

Basic Info
  • Host: GitHub
  • Owner: twobombs
  • License: gpl-3.0
  • Language: Shell
  • Default Branch: master
  • Homepage:
  • Size: 36.9 MB
Statistics
  • Stars: 12
  • Watchers: 1
  • Forks: 2
  • Open Issues: 0
  • Releases: 0
Topics
cuda docker opencl tipsy
Created about 7 years ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

ThereminQ - CLassiQ

Orchestrating Qrack derivatives on OpenCL and CUDA

thereminq-resize

ThereminQ data demo #1


ThereminQ orchestrates a suite of best-of-class tools designed to control, extend and visualize data emanating to and from Quantum circuits using Qrack, Tipsy and Jupyter on CUDA and OpenCL accelerators.

Look also at the following Python enabled images - VDI with a collection of QC Jupiter notebooks - Factoring with Shors' and Qimcifa

Other tags contain - QUDA - cuQuantum with QSVM

bash docker run --gpus all \ --privileged \ -p 6080:6080 \ --device=/dev/dri:/dev/dri \ -d twobombs/thereminq[:tag]

Images can be run independant but are also made to work with the vQbit infrastructure K8s HELM repo

Installation setup and usage scenarios can be glanced at here


Build on deploy-nvidia-docker and CUDA-CLuster

  • WebVNC, CUDA 12+ & OpenCL 1.2+ with NV, AMD & Intel HW support

Screenshot 2021-05-04 at 15 10 27

Initial vnc password is 00000000 - noVNC website is avaliable at port 6080 - xRDP running at port 3389 to vnc 127.0.0.1:5900


Docker: deploy an instance of ThereminQ's WebUI controller container

bash docker run --gpus all \ --privileged \ -p 6080:6080 \ --device=/dev/dri:/dev/dri \ --mount type=bind,source=/var/log/qrack,target=/var/log/qrack \ -d twobombs/thereminq:controller bash docker run -ti \ --mount type=bind,source=/var/log/qrack,target=/var/log/qrack \ twobombs/thereminq bash /root/run-supreme-cpu bash docker run --gpus all \ --device=/dev/dri:/dev/dri \ -ti \ --mount type=bind,source=/var/log/qrack,target=/var/log/qrack twobombs/thereminq bash /root/run-cosmos-gpu1

  • use --gpus all for NVidia-Docker hosts, in addition --privileged and --device=/dev/dri:/dev/dri will expose all GPUs in the system, eg: AMD/Intel iGPUs

All specialized workloads are listed here

Screenshot from 2021-10-24 17-23-18


Experimental bqp=bpp stabilizer_t_nn 30+ qbit workloads

bash docker run --gpus all \ --device=/dev/dri:/dev/dri \ -ti \ --mount type=bind,source=/var/log/qrack,target=/var/log/qrack twobombs/thereminq bash /root/run-tnn-gpu1

Quantum Inspired Qimcifa high qbit workloads - Qrackmin

bash docker run --gpus all \ --device=/dev/dri:/dev/dri \ -d twobombs/thereminq:qimcifa Screenshot from 2024-03-03 12-51-11


Tips for Managing high-Qubit and/or high-Node statevector workloads

  • Workloads with full entanglement and/or Quantum simulations that are at or exceed 30+ Qubits
  • Mixed workloads based on longer/larger/deeper circuits with partial entanglement that exceed 36+ Qubits

To prevent these workload from taking up all resources of the system it is good to take the following measures

  • System memory should be at least the amount of RAM where the statevector will fit into
  • From 30 qubits ( eg: QFT ) count 8GB RAM Memory (and 4 cores with POCL) doubling every additional qubit
  • Start an instance with a limit for memory and/or swap. eg docker: -m 16g --memory-swap 32g
  • Disable OOM killers in the kernel and/or the container orchestrator ( --oom-kill-disable )
  • OOM host change: add vm.overcommit_memory = 1 and vm.oom-kill = 0 in /etc/sysctl.conf
  • Swap should be a dedicated and fast drive where possible NVMe RAID, random IO equal to the bandwith of the GPU/PCIe


Sycamore, QFT & T_NN(-d) Results on an AMD Threadripper 1920X@4.2Ghz

  • 24 Threads with 32GB RAM, 2.5TB NVMe Swap on a 11x RAID NVME drive - Tesla K80 24GB - Tesla M40 24GB results

  • M40 + K80 run script

If you want to reproduce these results here are some gists to help you along

Note: it is wise to run the benchmarks program inside a main memory limited container with outflow to fast swap so that the system remains stable at intensive runs and high memory peaks - with fast swap we mean FAST NVME RAID0 swap


To run ThereminQ as a VirtualCL controller

note: create the underlying directory structure as mentioned in the VCL readme of Qrackmin

eg: ```bash docker run \ --gpus all \ --device=/dev/dri:/dev/dri \ -d \ --mount type=bind,source=/var/log/vcl,target=/var/log/vcl \ --mount type=bind,source=/var/log/qrack,target=/var/log/qrack twobombs/thereminq:vcl-controller

```

Questions / Remarks / Ideas / Experiences - In Discord

Code from the following companies and initiatives are in this container

All rights and kudos belong to their respective owners.
If (your) code resides in this container image and you don't want that please let me know.

Code of conduct : Contributor Covenant

Owner

  • Name: Aryan Blaauw
  • Login: twobombs
  • Kind: user
  • Location: Hengelo (NL)

🧭 Teleporting 🌊 Hilbert Space 🌌 QuantOPS ⚒️ Bladerunner 🤖

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: ThereminQ
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Aryan Jacques
    family-names: Blaauw
    email: ablaauw@gmx.net
    orcid: 'https://orcid.org/0000-0002-5657-7824'
identifiers:
  - type: url
    value: 'https://arxiv.org/abs/2304.14969'
repository-code: 'https://github.com/twobombs/thereminq'
url: 'https://github.com/twobombs'
repository-artifact: 'https://hub.docker.com/r/twobombs/thereminq'
abstract: >-
  ThereminQ orchestrates a suite of best-of-class tools
  designed to control extend and visualize data emanating
  for Quantum circuits using Qrack ELK Tipsy Jupyter CUDA
  and OpenCL accelerators
keywords:
  - docker
  - cuda
  - quantum computing
  - opencl
license: GPL-3.0+
version: 4.x
date-released: '2023-05-23'

GitHub Events

Total
  • Watch event: 2
  • Push event: 3
Last Year
  • Watch event: 2
  • Push event: 3

Dependencies

Dockerfiles/Dockerfile docker
  • twobombs/cudacluster latest build