Updates on CMake, Spack and ADIOS2�
Apr 1st, 2024
Chang Liu
Motivations
Introduce CMake and Spack for a new build system for M3D-C1
Develop a new I/O interface based on ADIOS2
2
Introduction to the new tools
CMake
Spack
ADIOS2
3
Building M3D-C1 with CMake
mkdir build && cd build
cmake .. -DCMAKE_C_COMPILER=cc -DCMAKE_CXX_COMPILER=CC -DCMAKE_Fortran_COMPILER=ftn -DCMAKE_PREFIX_PATH="/ccs/home/cliu1/project/spack/var/spack/environments/m3dc1/.spack-env/view;/ccs/home/cliu1/project/spack/var/spack/environments/m3dc1/.spack-env/view/petsc-real" -DENABLE_PETSC=ON -DENABLE_ZOLTAN=ON -DENABLE_3D=ON -DENABLE_COMPLEX=OFF
make -j8 VERBOSE=1 or cmake --build . --verbose --parallel 8
4
Building M3D-C1 with Spack
git clone -c feature.manyFiles=true https://github.com/spack/spack.git spack
. spack/share/spack/setup-env.sh
cp ~/M3DC1/unstructured/spack/m3dc1/package.py spack/var/spack/repos/builtin/packages/m3dc1/
spack install m3dc1+3d~complex
spack cd -i m3dc1
5
Developing ADIOS2 I/O interface
6
Performance test of ADIOS2
7