Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Hi SantoshPhilip, Liq2519,

Thank you for your suggestions.

Looking into eppy (https://github.com/santoshphilip/eppy/blob/develop/eppy/runner/run_functions.py) it looks like that new processes are spawn much like in the simple shell script at the end of this post.

The machine I am running this script on is an Intel, 8 core, 32 GB Ram, running Ubuntu. I do not copy any libraries in the current directories contrary to the suggestion in (1) from my original post.

My results show that: - for a small model (6 zones) compute time for running 1,2,3, ... 8 processes in parallel is the same as the compute time for running 1 process, which means that the processes run concurrently without impeding each other's performance - for a bigger model however (150 zones), the time for a single process = time for 2 parallel processes, but for a higher number of concurrent processes, the compute time of each individual process increases to such an extent that running more than 5-6 concurrent processes does not bring any speedup

This could perhaps mean that there might be a bottleneck (when running energyplus) somewhere between RAM and cache for this particular Intel chip.

It looks like then that we can run energyplus as parallel and independent processes under Linux, without copying any libraries, but currently the degree of independence is machine dependent.

Any thoughts/suggestions are welcome.

Kind regards, Julian

P.S. On the other hand, I noticed also that readvars does not work well in this parallel processes set up.

startTime=$(date +%s)
run1/run.sh > ./run1/run.log & 
  pidRun1=$!
run2/run1.sh > ./run2/run.log &
  pidRun=$!
..................
run8/run.sh > ./run8/run.log &
  pidRun8=$!
wait
echo $pidRun1, $pidRun2, ... , $pidRun8 completed
endTime=$(date +%s)
durationInSeconds=$(( $endTime - $startTime ))
echo "It took $durationInSeconds seconds"

enter code here

Where, run.sh is similar to:

energyplus -d run1 -w weather.epw model.idf