EnergyPlus parallel execution in Windows

A handy shell script for parallel execution of EnergyPlus on Windows, on the command line with Git-Bash or Bash for Windows 10 !

Show code
#!/bin/bash
##################################################################
#_______  ______    _______  _______ 
#|   _   ||    _ |  |       ||       |
#|  |_|  ||   | ||  |    ___||    _  |
#|       ||   |_||_ |   |___ |   |_| |
#|       ||    __  ||    ___||    ___|
#|   _   ||   |  | ||   |___ |   |    
#|__| |__||___|  |_||_______||___|    
#
##################################################################
# ce script en bash lance energypus en parallele                 #
# (tout est dans le "&" esperluette)                             #
##################################################################
# Last modification : 01/04/2018                                 #
##################################################################
# Copyright (C) 2018 Alexis SAUVAGEON                            #
# This program is free software; you can redistribute it and/or  #
# modify it under the terms of the GNU General Public License    #
# as published by the Free Software Foundation; either version   #
# of the License, or (at your option) any later version.         #
##################################################################
# Contact : alexis[dot]sauvageon[at]arep[dot]com
##################################################################


cd ${0%/*} || exit 1 # un peu de magie au debut (tire de openfoam)
# define nbr cpus
ncpus=$1
ncpus=30

if [ -z "${1}" ]; then
        ncpus=30
fi
# pour tout fichier "f" dans le dossier courant "*/"
for f in Trajectoire*/ 
do # faire :
    echo '----- lancement energyplus pour ' $f \n # ecrire qu'on commence avec le fichier "f"
    # lancer energyplus (meme cmd que dans python)
    g=${f::-1} # j'enleve le "/" final pour eviter sa redondance dans la ligne suivante avec celui de "/Simulation_*.idf"
    # on execute E+ pour tous les dossiers au meme niveau que le script :
    #        > IDF de chaque dossier 
    #        > EPW au meme niveau que le script
    exec C:/EnergyPlusV8-3-0/energyplus.exe -d $f -w ./in.epw $g/Simulation_*.idf &
    #        > on check si E+ tourne et on l'affiche dans le terminal
    process=$(ps cax | grep energyplus)
    if [ $? -eq 0 ]; then
        echo "Process is running."
    else
        echo "Process is not running."
    fi
    #        > on compte le nombre de processus actif E+
    numproc=$(ps -ef | grep -v grep | grep energyplus | wc -l)
    #        > tant que nbr E+ actif > ncpu autorise, on attend et on met a jour numproc
  while [[ $numproc -ge $ncpus ]]
  do
    sleep 5
    numproc=$(ps -ef | grep -v grep | grep energyplus | wc -l)
    echo $numproc 
  done
done