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:
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.
- 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.
- Version 1.1 planning is undergoing. Please file your requests to Version 1.1 planning [#55].
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.
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
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
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
To install sqaod python package, use pip as shown below.
pip install -U sqaod
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 for Ubuntu-16.04 with CUDA-9.2, contribution from Kato-san.
I welcome your feedback and requests.
Please file your feedback and/or requests to Issues.
- Eigen (MPL2)
- CUB (BSD 3-Clause "New" or "Revised" License)
- libblas (Modified BSD License)
- From Beta1, aptly is used to manage sqaod repository.