Skip to content

Greifswald Cluster Installation

Alan Goodman edited this page Dec 4, 2024 · 3 revisions

IPP Greifswald Cluster installation instructions

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.

Simsopt installation

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

  1. Create a conda virtual environment from this file:
conda env create --name simsopt_venv --file=simsopt_venv.yml
  1. Load the appropriate modules:
module add gcc/latest openmpi mkl netcdf fftw
  1. Install mpi4py:
env CC=mpicc CXX=mpic++ MPICC=mpicc MPICXX=mpic++ pip install --user --no-cache-dir -v mpi4py
  1. 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]"
  1. Clone the vmec2000 repository:
git clone https://github.com/hiddensymmetries/vmec2000
cd vmec2000
  1. 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"]
}
  1. Install VMEC2000:
python -m pip install .