#!/bin/bash #PBS -N dask-job #PBS -l select=2:node_type=rome #PBS -l walltime=1:00:00 export PYTHON_FILE= # Path to the Python file you want to run export CURRENT_WORKSPACE= # Path to the workspace where you have pulled this repo and the dask-env.tar.gz file export ALL_NODES=$(cat $PBS_NODEFILE) export SCHEDULER_NODE="$(head -n1 $PBS_NODEFILE)-ib" export WORKER_NODES=$(tail -n+2 $PBS_NODEFILE) export DASK_SCHEDULER_PORT=8786 export DASK_UI_PORT=8787 export DASK_ENV="$HOME/dask" mkdir -p $DASK_ENV tar -xzf $CURRENT_WORKSPACE/dask-env.tar.gz -C $DASK_ENV chmod -R 700 $DASK_ENV source $DASK_ENV/bin/activate conda-unpack dask scheduler --host $SCHEDULER_NODE --port $DASK_SCHEDULER_PORT & export NUM_NODES=$(sort $PBS_NODEFILE |uniq | wc -l) # Assuming you have a Dask worker script named 'dask-worker-script.py', modify this accordingly for ((i=1;i<$NUM_NODES;i++)); do echo "[$(date '+%Y-%m-%d %H:%M:%S') - Master] INFO: Starting Dask Worker at $i" pbsdsh -n $i -o -- bash -l -c "source /deplyment_scripts/dask-worker.sh $CURRENT_WORKSPACE $SCHEDULER_NODE" done python3 $PYTHON_FILE