First time here? Check out the Help page!
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