Skip to content
Snippets Groups Projects
init.sh 1.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • patmjen's avatar
    patmjen committed
    #!/bin/bash
    # Simple init script for Python on DTU HPC
    # Patrick M. Jensen, patmjen@dtu.dk, 2022
    
    # Configuration
    # This is what you should change for your setup
    PYVER=3.9.14  # Python version
    CUVER=11.6  # CUDA version
    VENVDIR=.  # Where to store your virtualenv
    VENVNAME=venv  # Name of your virtualenv
    
    # Load modules
    module load python3/$PYVER
    module load $(module avail -o modulepath -t -C "python-${PYVER}" | grep "numpy/")
    module load $(module avail -o modulepath -t -C "python-${PYVER}" | grep "scipy/")
    module load $(module avail -o modulepath -t -C "python-${PYVER}" | grep "matplotlib/")
    module load $(module avail -o modulepath -t -C "python-${PYVER}" | grep "pandas/")
    module load cuda/$CUVER
    CUDNN_MOD=$(module avail -o modulepath -t cudnn | grep "cuda-${CUVER}" | sort | tail -n1)
    if [[ ${CUDNN_MOD} ]]
    then
        module load ${CUDNN_MOD}
    fi
    
    # Create virtualenv if needed and activate it
    if [ ! -d "${VENVDIR}/${VENVNAME}" ]
    then
        echo INFO: Did not find virtualenv. Creating...
        virtualenv ${VENVDIR}/${VENVNAME}
    fi
    source ${VENVDIR}/${VENVNAME}/bin/activate
    
    # Make all GPUs visible
    if command -v nvidia-smi &> /dev/null
    then
        export CUDA_VISIBLE_DEVICES=$(nvidia-smi --query-gpu=index --format=csv,noheader | tr '\n' ',')
        echo CUDA_VISIBLE_DEVICES=${CUDA_VISIBLE_DEVICES}
    fi