All Projects → shinmorino → sqaod

shinmorino / sqaod

Licence: other
Solvers/annealers for simulated quantum annealing on CPU and CUDA(NVIDIA GPU).

Programming Languages

C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
Cuda
1817 projects
Makefile
30231 projects
M4
1887 projects
shell
77523 projects

Projects that are alternatives of or similar to sqaod

OpenJij
OpenJij : Framework for the Ising model and QUBO.
Stars: ✭ 57 (-13.64%)
Mutual labels:  quantum-computing, quantum-annealing
qibo
A framework for quantum computing with hardware acceleration.
Stars: ✭ 120 (+81.82%)
Mutual labels:  quantum-computing, quantum-annealing
Solutionqcqinielsenchuang
Solution for Quantum Computation and Quantum Information by Nielsen and Chuang
Stars: ✭ 141 (+113.64%)
Mutual labels:  quantum-computing
Awesome Quantum Ml
Curated list of awesome papers and resources in quantum machine learning
Stars: ✭ 190 (+187.88%)
Mutual labels:  quantum-computing
Quantum Circuit
Quantum Circuit Simulator implemented in JavaScript
Stars: ✭ 157 (+137.88%)
Mutual labels:  quantum-computing
Learnquantum
Repo of resources to help learn about quantum computing.
Stars: ✭ 143 (+116.67%)
Mutual labels:  quantum-computing
Pytket
Python module for interfacing with the CQC t|ket> library of quantum software
Stars: ✭ 162 (+145.45%)
Mutual labels:  quantum-computing
Ssss
"Deep Learning and Quantum Programming" Spring School @ Song Shan Lake
Stars: ✭ 135 (+104.55%)
Mutual labels:  quantum-computing
Artiq
A leading-edge control system for quantum information experiments
Stars: ✭ 245 (+271.21%)
Mutual labels:  quantum-computing
Pyzx
Python library for quantum circuit rewriting and optimisation using the ZX-calculus
Stars: ✭ 154 (+133.33%)
Mutual labels:  quantum-computing
Qsim
Schrödinger and Schrödinger-Feynman simulators for quantum circuits.
Stars: ✭ 190 (+187.88%)
Mutual labels:  quantum-computing
Ibmq Device Information
Information about the different remote backends available for qiskit users with a IBMQ account
Stars: ✭ 153 (+131.82%)
Mutual labels:  quantum-computing
Discopy
a toolbox for computing with monoidal categories
Stars: ✭ 148 (+124.24%)
Mutual labels:  quantum-computing
Quimb
A python library for quantum information and many-body calculations including tensor networks.
Stars: ✭ 170 (+157.58%)
Mutual labels:  quantum-computing
Awesome Quantum Machine Learning
Here you can get all the Quantum Machine learning Basics, Algorithms ,Study Materials ,Projects and the descriptions of the projects around the web
Stars: ✭ 1,940 (+2839.39%)
Mutual labels:  quantum-computing
Qulacs
Variational Quantum Circuit Simulator for Quantum Computation Research
Stars: ✭ 192 (+190.91%)
Mutual labels:  quantum-computing
Monthly Challenges
Repository containing monthly challenges about quantum computing.
Stars: ✭ 126 (+90.91%)
Mutual labels:  quantum-computing
Qucumber
Neural Network Many-Body Wavefunction Reconstruction
Stars: ✭ 152 (+130.3%)
Mutual labels:  quantum-computing
Q.js
Quantum computing in your browser.
Stars: ✭ 158 (+139.39%)
Mutual labels:  quantum-computing
F1-demo
Real-time vehicle telematics analytics demo using OmniSci
Stars: ✭ 27 (-59.09%)
Mutual labels:  nvidia-gpu

Sqaod

Latest version : v1.0.3 (deb), 1.0.2 (python). (Nov. 11, 2018)

Collections of solvers/annealers for simulated quantum annealing on CPU and CUDA(NVIDIA GPU).
Please visit sqaod wiki for more details.

Here's a list of useful links for starters:

Project status

Version 1.0.3 Released (2018/11/17)

Version 1.0.3 includes one bug fix that was not fixed in 1.0.2. Please update to 1.0.3 if you're using older versions.

  • Fix: QUBO energy was not correctly calculated and in SA algorithms in CUDA-based solver.

Version 1.0.2 Released (2018/11/11)

  • getSystemE() is added to solvers to calculate system energy during annealing. [#60]
  • sqaod.algorithm.sa_default is added to select default SA algorithms in annealers. [#61]
  • calculate_E() and make_solutions() are not required to get QUBO energy and solutions. These functions are for caching energies and solutions. [#63]
  • Python solvers return copies of objects.[#62]
  • Fix: anneal_one_step() for SA algorithm did not work, since parameters are not correctly passed. [#65]
  • Fix: QUBO energy was not correctly calculated and beta was not correctly applied in SQA algorithms. [#64]
  • Fix: symmetrize() was not correctly handled. [#66]

Please visit the 'Release history' page for changes and updates.

Future plan

Installation

If you're using Ubuntu 16.04/18.04 or CentOS(RHEL) 7, please visit Installation page at sqaod wiki.

If you want to use other Linux distribution, you need to build from source. See wiki, Build from source. Please file a request to Issues if you need binary distribution for your linux distro. Windows version and/or docker images are possible as well.

Here's a quick instruction to install sqaod v1.0 to Ubuntu 16.04/18.04.

1. Cleaning environment.

If you installed sqaod from source, clean up native libraries at first.

find /usr/lib | grep libsqaodc
# if you find libraries, remove them.
find /usr/lib | grep libsqaodc | sudo xargs rm -f

If you installed alpha versions (alpha1, alpha2) of libsqaod, uninstall them first, and remove apt-repository setting.

# removing older packages if you instsalled.
sudo apt-get remove libsqaodc-cuda-9-0
sudo apt-get remove libsqaodc-avx2
sudo apt-get remove libsqaodc

# remove apt-repository setting.
sudo rm -f /etc/sources.list.d/sqaod.list

2. Installing native libraries

sudo apt-get update
sudo apt-get install apt-transport-https apt-utils

# adding apt repository setting.
 
. /etc/lsb-release
echo "deb [arch=amd64] https://shinmorino.github.io/sqaod/ubuntu ${DISTRIB_CODENAME} multiverse" | \
   sudo tee /etc/apt/sources.list.d/sqaod.list

# install repository key.
curl -s -L https://shinmorino.github.io/sqaod/gpgkey | sudo apt-key add -

# update and install sqaodc native library.
sudo apt-get update
sudo apt-get install libsqaodc

3. Installing CUDA driver/libraries (if you need CUDA-based solvers.)

distribution=$(. /etc/os-release;echo $ID${VERSION_ID//.})
echo "deb http://developer.download.nvidia.com/compute/cuda/repos/${distribution}/x86_64 /" | \
   sudo tee /etc/apt/sources.list.d/cuda.list
sudo apt-key adv --fetch-keys http://developer.download.nvidia.com/compute/cuda/repos/${distribution}/x86_64/7fa2af80.pub
sudo apt-get update
sudo apt-get install cuda-drivers

sudo apt-get install libsqaodc-cuda-10-0

# If you prefer CUDA 9.0, run following. (Packages with CUDA 9.0 is available on Ubuntu16.04.)
sudo apt-get install libsqaodc-cuda-9-0

4. Installing python package

Python 2.7/3.5/3.6/3.7.

To install sqaod python package, use pip as shown below.

pip install -U sqaod

5. Running examples

Python examples are in sqaod/sqaodpy/examples. The below is an example to run dense graph annealer.

curl -s -L -O https://raw.githubusercontent.com/shinmorino/sqaod/master/sqaodpy/example/dense_graph_annealer.py
python dense_graph_annealer.py

Dockerfile

Dockerfile for Ubuntu-16.04 with CUDA-9.2, contribution from Kato-san.

Feedback and requests

I welcome your feedback and requests.
Please file your feedback and/or requests to Issues.

Opensource software used in sqaod.

Enjoy !!!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].