-
Notifications
You must be signed in to change notification settings - Fork 56
Greifswald Cluster Installation
Alan Goodman edited this page Dec 4, 2024
·
3 revisions
Find below the simsopt
and VMEC
installation instructions from source on the IPP Greifswald cluster. These steps worked at of 4 December 2024. This procedure was figured out in collaboration with Annika Zettl, Philipp Jurašić, and Henry Leyh.
Warning
Installing simsopt
(as of of 4 December 2024) requires either using an old version of Python (3.10), or an old version of Numpy. In these instructions, the former is used.
- Create a file named
simsopt_venv.yml
containing the following text:
name: simsopt_venv
channels:
- conda-forge
- nodefaults
dependencies:
- _libgcc_mutex=0.1=conda_forge
- _openmp_mutex=4.5=2_gnu
- bzip2=1.0.8=h4bc722e_7
- ca-certificates=2024.8.30=hbcca054_0
- ld_impl_linux-64=2.43=h712a8e2_2
- libexpat=2.6.4=h5888daf_0
- libffi=3.4.2=h7f98852_5
- libgcc=14.2.0=h77fa898_1
- libgcc-ng=14.2.0=h69a702a_1
- libgomp=14.2.0=h77fa898_1
- libnsl=2.0.1=hd590300_0
- libsqlite=3.47.0=hadc24fc_1
- libuuid=2.38.1=h0b41bf4_0
- libxcrypt=4.4.36=hd590300_1
- libzlib=1.3.1=hb9d3cd8_2
- ncurses=6.5=he02047a_1
- openssl=3.4.0=hb9d3cd8_0
- pip=24.3.1=pyh8b19718_0
- python=3.10
- readline=8.2=h8228510_1
- setuptools=75.3.0=pyhd8ed1ab_0
- tk=8.6.13=noxft_h4845f30_101
- tzdata=2024b=hc8b5060_0
- wheel=0.45.0=pyhd8ed1ab_0
- xz=5.2.6=h166bdaf_0
- pip:
- cmake==3.31.0.1
- distro==1.9.0
- f90wrap==0.2.16
- ninja==1.11.1.1
- scikit-build==0.18.1
prefix: /net/s01/agood/envs/simsopt_venv
Here, you will need to modify the prefix
appropriately.
- Create a conda virtual environment from this file:
conda env create --name simsopt_venv --file=simsopt_venv.yml
- Load the appropriate modules:
module add gcc/latest openmpi mkl netcdf fftw
- Install
mpi4py
:
env CC=mpicc CXX=mpic++ MPICC=mpicc MPICXX=mpic++ pip install --user --no-cache-dir -v mpi4py
- Clone and install the
simsopt
repository:
git clone https://github.com/hiddenSymmetries/simsopt
cd simsopt
env CC=gcc CXX=g++ pip install --user -e ".[MPI]"
Note
If you intend to use the SPEC
code integrated into simsopt
, the following should be done instead of Step 5 above:
pip install git+https://github.com/zhisong/pyoculus@master
env CC=gcc CXX=g++ pip install --user -e ".[MPI,SPEC]"
- Clone the
vmec2000
repository:
git clone https://github.com/hiddensymmetries/vmec2000
cd vmec2000
- Change the
cmake_config_file.json
to the following text:
{
"cmake_args": [
"-DCMAKE_C_COMPILER=mpicc",
"-DCMAKE_Fortran_COMPILER=mpif90",
"-DNETCDF_INC_PATH=/opt/hgw/tools/netcdf/4.7.4/gcc_12_2_0-avx--openmpi_4_1_4-ib--hdf5_1_10_9/include",
"-DNETCDF_LIB_PATH=/opt/hgw/tools/netcdf/4.7.4/gcc_12_2_0-avx--openmpi_4_1_4-ib--hdf5_1_10_9/lib",
"-DSCALAPACK_LIB_DIR=/opt/hgw/compilers/intel/ics2020.4/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64",
"-DSCALAPACK_LIB_NAME=mkl_scalapack_lp64",
"-DBLACS_LIB_DIR=/opt/hgw/compilers/intel/ics2020.4/compilers_and_libraries_2020.4.304/linux/mkl/lib/intel64",
"-DBLACS_LIB_NAME=mkl_blacs_intelmpi_lp64",
"-DBLA_VENDOR=Intel10_64lp"]
}
- Install VMEC2000:
python -m pip install .