#!/bin/bash

## number of cores
#SBATCH --ntasks=1280
#SBATCH --nodes=10
#SBATCH --job-name=syt_vesicle_example
#SBATCH --partition=compute

## how much memory per core
#SBATCH --mem-per-cpu=3g

## maximum time for your simulation, in DAY-HOUR:MINUTE:SECOND
#SBATCH --time=8-0:0:0


module load steps/STEPS_5_0_0_alpha


declare -a HOST_ARRAY=()

for HOST in $(scontrol show hostnames $SLURM_JOB_NODELIST)
do
    HOST_ARRAY+=($HOST)
done

MODEL_PATH=/my/path/to/model/
DATA_PATH=/my/path/to/data/

## run parallel STEPS simulation

mpirun -n 256 --host ${HOST_ARRAY[0]},${HOST_ARRAY[1]} python -u VESICLE_CYCLE_MODEL_MPI.py $SLURM_JOBID $MODEL_PATH 10 60 1 $DATA_PATH &
mpirun -n 256 --host ${HOST_ARRAY[2]},${HOST_ARRAY[3]} python -u VESICLE_CYCLE_MODEL_MPI.py $SLURM_JOBID $MODEL_PATH 10 60 2 $DATA_PATH &
mpirun -n 256 --host ${HOST_ARRAY[4]},${HOST_ARRAY[5]} python -u VESICLE_CYCLE_MODEL_MPI.py $SLURM_JOBID $MODEL_PATH 10 60 3 $DATA_PATH &
mpirun -n 256 --host ${HOST_ARRAY[6]},${HOST_ARRAY[7]} python -u VESICLE_CYCLE_MODEL_MPI.py $SLURM_JOBID $MODEL_PATH 10 60 4 $DATA_PATH &
mpirun -n 256 --host ${HOST_ARRAY[8]},${HOST_ARRAY[9]} python -u VESICLE_CYCLE_MODEL_MPI.py $SLURM_JOBID $MODEL_PATH 10 60 5 $DATA_PATH

wait