Code for paper "Parameterizations for Large-Scale Variational System Identification Using Unconstrained Optimization"
DOI: 10.1016/j.automatica.2024.112086
The code has been tested on Ubuntu 22.04 but should work on any system with python 3.10+ and JAX/FLAX. The instructions below assume a Ubuntu 22.04 distro, possibly in WSL.
On Ubuntu 22.04, the following dependencies are needed.
sudo apt install python3.10 python3.10-venv git bcClone the repository and enter into it.
git clone https://github.com/dimasad/automatica-2024-code.git
cd automatica-2024-codeThe creation of a virtual environment is recommended.
python3.10 -m venv .venv
. .venv/bin/activate
pip install --upgrade pipInstall jax with GPU support for the benchmarks. And this package with the variational inference library.
pip install -U "jax[cuda12]==0.4.38"
pip install -e .[devextra]Each example is an executable bash script. If SLURM is installed it will run as in WVU Research Computing Thorny Flat cluster, otherwise it will just run all scripts in order (which takes a loooooooooong time). See the bash scripts for how to run each test separately.
There is a run script and a job submission script which calls the underlying run with all parameters tested. Please contact me if you need help running this. My e-mail is in the paper.
scripts/duffing-vsi-submit
python scripts/linsys-ssest-submit.py
scripts/linsys-timeit-submit
scripts/linsys-vsi-submit