33 lines
No EOL
1.1 KiB
Bash
33 lines
No EOL
1.1 KiB
Bash
#!/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 |