.. _Using BinAC: Using BinAC =========== .. _BinAC login: Login ----- There is one gateway that redirects to any of the login nodes in a load-balanced way. To log into a specific login node, use ssh option ``-p `` and provide the `port number `__ that corresponds to the desired login node. ============================================ ================================================================ Hostname Node type ============================================ ================================================================ ``login.binac2.uni-tuebingen.de`` login to one of the three BinAC login nodes ============================================ ================================================================ Host key fingerprint: ========= ======================================================== Algorithm Fingerprint (SHA256) ========= ======================================================== RSA ``SHA256:xmhzbDswd1QhZT2kJcngaCXs9769TiOA/hl6Bk2mq0Y`` ECDSA ``SHA256:pkr7H3pyNTt2LJVqqCl+Ibgoa7iTCL1uF/X65rvkeaM`` ED25519 ``SHA256:ou2j+OL5pd+Tdb3PLBMmgBko0BO3Ywbs502biY9RVp0`` ========= ======================================================== Your username for the cluster will be your ICP ID with an ``st_`` prefix. For example, if your ID is ``ac123456``, then your BinAC username will be ``st_ac123456``. More details can be found in `BinAC2/Login `__. .. _BinAC building dependencies: Building dependencies --------------------- Python ^^^^^^ .. code-block:: bash # last update: September 2025 module load compiler/gnu/14.2 mkdir cpython-build cd cpython-build CLUSTER_PYTHON_VERSION=3.12.4 curl -L https://www.python.org/ftp/python/${CLUSTER_PYTHON_VERSION}/Python-${CLUSTER_PYTHON_VERSION}.tgz | tar xz cd Python-${CLUSTER_PYTHON_VERSION}/ ./configure --enable-optimizations --with-lto --prefix="${HOME}/bin/cpython-${CLUSTER_PYTHON_VERSION}" make -j 4 make install make clean cd "${HOME}" rm -rf cpython-build CUDA ^^^^ .. code-block:: bash # last update: September 2025 module load devel/cuda/12.8 mkdir -p "${HOME}/bin/cuda-12.8/lib" ln -s "${CUDA_HOME}/targets/x86_64-linux/lib/stubs/libcuda.so" "${HOME}/bin/cuda-12.8/lib/libcuda.so.1" .. _BinAC building software: Building software ----------------- ESPResSo ^^^^^^^^ Release 5.0-dev: .. code-block:: bash # last update: September 2025 module load compiler/gnu/14.2 \ mpi/openmpi/4.1-gnu-14.2 \ lib/boost/1.88.0-openmpi-4.1-gnu-14.2 \ lib/hdf5/1.12-gnu-14.2-openmpi-4.1 \ numlib/fftw/3.3.10-openmpi-4.1-gnu-14.2 module load devel/cuda/12.8 CLUSTER_PYTHON_VERSION=3.12.4 export LD_LIBRARY_PATH="${HOME}/bin/cuda-12.8/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" ${HOME}/bin/cpython-${CLUSTER_PYTHON_VERSION}/bin/python3.12 -m venv "${HOME}/venv" source "${HOME}/venv/bin/activate" git clone --recursive --branch python --origin upstream \ https://github.com/espressomd/espresso.git espresso-5.0-dev cd espresso-5.0-dev python -m pip install -c "requirements.txt" cython setuptools numpy scipy vtk "cmake>=4.1" mkdir build cd build cp ../maintainer/configs/maxset.hpp myconfig.hpp sed -i "/ADDITIONAL_CHECKS/d" myconfig.hpp CC="${GNU_BIN_DIR}/gcc" CXX="${GNU_BIN_DIR}/g++" cmake .. \ -D CUDAToolkit_ROOT="${CUDA_HOME}" -D CMAKE_PREFIX_PATH="${FFTW_MPI_HOME}" \ -D Boost_DIR="${BOOST_HOME}/lib/cmake/Boost-1.88.0" \ -D CMAKE_BUILD_TYPE=Release \ -D ESPRESSO_BUILD_WITH_CUDA=ON -D CMAKE_CUDA_ARCHITECTURES="80;90" \ -D ESPRESSO_BUILD_WITH_CCACHE=OFF -D ESPRESSO_BUILD_WITH_WALBERLA=ON \ -D ESPRESSO_BUILD_WITH_SCAFACOS=OFF -D ESPRESSO_BUILD_WITH_HDF5=ON \ -D ESPRESSO_BUILD_WITH_FFTW=OFF \ -D ESPRESSO_BUILD_WITH_SHARED_MEMORY_PARALLELISM=OFF make -j 4 .. _BinAC submitting jobs: Submitting jobs --------------- To show which nodes are idle: .. code-block:: bash sinfo_t_idle sinfo Batch command: .. code-block:: bash sbatch job.sh Job script: .. code-block:: bash #!/bin/bash #SBATCH --partition=compute #SBATCH --constraint=ib #SBATCH --job-name=test #SBATCH --ntasks=4 #SBATCH --ntasks-per-core=1 #SBATCH --time=00:10:00 #SBATCH --output %j.stdout #SBATCH --error %j.stderr # last update: December 2025 module load compiler/gnu/14.2 \ mpi/openmpi/4.1-gnu-14.2 \ lib/boost/1.88.0-openmpi-4.1-gnu-14.2 \ lib/hdf5/1.12-gnu-14.2-openmpi-4.1 \ numlib/fftw/3.3.10-openmpi-4.1-gnu-14.2 export PATH="${PYTHON_ROOT}/bin${PATH:+:$PATH}" source "${HOME}/venv/bin/activate" # using srun srun --mpi=pmix ./pypresso ../maintainer/benchmarks/lb.py # using OpenMPI directly mpiexec --bind-to core --map-by core --report-bindings ./pypresso ../maintainer/benchmarks/lb.py For communication-bound CPU jobs without GPU acceleration on partition ``compute``, use ``--constraint=ib`` to get nodes with fast interconnect, or ``--constraint=eth`` to get nodes with ethernet. The desired partition needs to be specified via ``#SBATCH --partition`` command, without which your job will not be allocated any resources. BinAC has following partitions available: =============== ======================================== ==================================================================================== Partition Default Configuration Limit =============== ======================================== ==================================================================================== ``compute`` ntasks=1, time=00:10:00, mem-per-cpu=1gb time=14-00:00:00 ``long`` ntasks=1, time=00:10:00, mem-per-cpu=1gb time=30-00:00:00, nodes=10 ``gpu`` ntasks=1, time=00:10:00, mem-per-cpu=1gb time=14-00:00:00, gres/gpu:a100=4, gres/gpu:a30=8, gres/gpu:h200=4, MaxJobsPerUser:8 =============== ======================================== ==================================================================================== Source: .. code-block:: bash scontrol show partition Refer to `BinAC2/Slurm `__ for more details on submitting job scripts on BinAC.