Giter VIP home page Giter VIP logo

shinmorino / sqaod Goto Github PK

View Code? Open in Web Editor NEW
77.0 11.0 22.0 65.27 MB

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

Home Page: https://github.com/shinmorino/sqaod/wiki

License: Other

Python 26.72% Shell 0.14% C++ 53.48% Makefile 1.06% M4 0.46% Cuda 18.03% C 0.02% Batchfile 0.09%
cuda accelearated monte-carlo-simulation linux windows cplusplus-11 quantum-computing python nvidia-gpu quantum-annealing gpu

sqaod's Introduction

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 !!!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.