Skip to content

kul-optec/cyqlone

Repository files navigation

Cyqlone

Fast, parallel and vectorized solver for linear systems with optimal control structure.

Also includes an implementation of the QPALM-OCP solver that uses the cyqlone linear solver as a backend, with parallel factorization update routines to handle active set changes.

Installation

Requirements: CMake, Conan 2, plenty of RAM for parallel builds.

# Prepare environment and dependencies
python3 -m pip install -U conan
export CONAN_HOME="$PWD/.conan2"
conan profile detect ||:
git clone https://github.com/tttapa/conan-recipes
conan remote add tttapa-conan-recipes "$PWD/conan-recipes"
git clone https://github.com/tttapa/batmat
conan export batmat
# Install dependencies (including GCC) and build from source
conan build . --build=missing -pr scripts/dev/profiles/laptop -o \&:with_benchmarks=True -c tools.build:jobs=4

Replace laptop by desktop if your hardware supports AVX-512.

Related projects

  • QPALM: general-purpose quadratic programming solver on which QPALM-OCP is based
  • batmat: high-performance batched linear algebra routines (used by cyqlone)
  • hyhound: low-rank Cholesky factorization up- and downdate routines based on hyperbolic Householder transformations (with applications to e.g. Riccati recursion)
  • alpaqa: matrix-free, nonlinear programming solver

About

Parallel quadratic programming solver for optimal control

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published