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