View the Project on GitHub rjkyng/SDDM2023
On this page, we briefly describe how to setup and experiment on
other solvers using SDDM1.git
. The solvers include CMG, HyPre, PETSc,
MATLAB’s ICC and LAMG.
Please download and install MATLAB. We used MATLAB r2020b for our experiments. If you are using a shared installation of MATLAB, you might need to save the path to CMG and LAMG yourself before each MATLAB session.
Set the following environment variables:
export PATH="$PATH:$HOME/julia-1.5.3/bin"
export PETSC_DIR="$HOME/petsc"
export PETSC_ARCH="arch-linux-c-debug"
export HYPRE_HOME="$HOME/hypre"
export MATLAB_HOME="$HOME/matlab_r2020b"
For the current version of CMG, please see here.
For reproducibility, we also provide the version of CMG used for our experiments. To access this version, download and unzip the cmg folder available here.
Open the matlab prompt
cd $MATLAB_HOME/bin
./matlab
At the matlab prompt, install cmg
cd ~/CMG
MakeCMG
We are using a slightly customized version of HyPre based on the HyPre master, forked in 2018. The customizations we implemented are only there to pipeline the benchmarking data. Below we describe how to install our customized HyPre. For the current version of HyPre, please see their GitHub repo.
Run the following commands:
git clone https://github.com/rjkyng/hypre1.git ${HYPRE_HOME}
cd $HYPRE_HOME/src
./configure
make install
cd $HYPRE_HOME/src/test
make ij_print
We are using a version of PETSc from the master branch of their Github repository in 2021. Below we describe how to install PETSc at the exact same state it was benchmarked in our experiment. For the current version of PETSc, please see their GitHub repo.
Run the following commands:
git clone -b release https://gitlab.com/petsc/petsc.git $PETSC_DIR
cd $PETSC_DIR
git checkout c2c1a5487541cc02bcf7e58ccdf632092835a51b
./configure --download-openmpi --download-hypre --download-hdf5 --download-f2cblaslapack --download-zlib
make all check
You can get LAMG either from their GitHub repo or their Google Code Archive. Their paper is also available here. We provide a version of LAMG with a slight issue fixed which prevented us from running the Google Code Archive version directly. This version which we tested is linked below.
Download and unzip the lamg package into ~/lamg-2, use this LAMG link
Open the matlab prompt
cd $MATLAB_HOME/bin
./matlab
At the matlab prompt, build lamg
cd ~/lamg-2
mex -setup C++
make('compile')
We provide scripts that repeat experiments on all solvers that we tested. We remark that, when tested on Chimera Laplacians with non-unit weights, PETSc crashed our server too often and its performances on these matrices are therefore omitted in the paper. When repeating our experiments, we suggest using the following script which tests all solvers except for PETSc:
cd SDDM2023/performance-experiments
./run_nopetsc.sh
To repeat our experiments on all solvers including PETSc, you can use the following script at your own risk:
cd SDDM2023/performance-experiments
./run_all.sh