Core Concepts
Omnisolver provides a unified and extensible framework for implementing and benchmarking various algorithms and solvers for Ising spin-glass and QUBO problems, significantly reducing the effort required for developing and testing new quantum software.
Abstract
The Omnisolver framework is designed to address the fragmentation and compatibility issues that often hinder the development of quantum software. It provides a unified API for Ising spin-glass solvers and the D-Wave annealer, allowing developers to focus on designing and implementing their algorithms without having to deal with the varied input/output APIs of different solvers.
The core Omnisolver package handles input/output operations, including parsing command line arguments, reading input problem files, and outputting solutions computed by the solvers. It can be extended through a plugin system, where each plugin implements an algorithm for solving instances of Ising spin-glass or QUBO models. The plugin definition includes the name of the plugin, a function for constructing new sampler instances, and callbacks for defining command line arguments.
Omnisolver also includes several plugins, such as the parallel-tempering algorithm and a brute-force solver that can be accelerated using CUDA-enabled GPUs. The framework's dynamically generated command line interface allows users to easily select and configure the available solvers.
Compared to similar libraries like pyQUBO and QUBO.jl, Omnisolver provides a more comprehensive and flexible solution, with its unified API for handling a broader set of tasks, including both problem formulation and solver integration. The use of Python allows for seamless integration with external solvers accessed via public APIs, such as the D-Wave quantum annealer.
The Omnisolver project aims to accelerate the development of quantum software by providing a consistent and extensible framework, which should benefit both researchers and groups utilizing discrete optimization as part of their daily work.
Stats
The Hamiltonian of the presented problem reads H(s0, s1, s2) = −1s0s1 −3s0s2 + 1.5s1s2.
Quotes
"The core motivation of Omnisolver lies in addressing the fragmentation and compatibility issues that can often stymie the development of quantum software."
"By providing a unified API for Ising spin-glass solvers and the D-Wave annealer, our solution presents a uniform interface to the users, allowing the development of algorithms to be performed in a more simplified, streamlined manner."
"Compared to other similarly looking libraries like pyQUBO or QUBOTools.jl, our package provides a significant new feature. Omnisolver's unified API allows it to handle a broader set of tasks."