[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [EnergyPlus_Support] Re: Parametric run threading





Hi Drury,
 
I am using the group run method by creatig each run's idf file and group run file through VBA code.
 
But I have certain concerns:
1) when doing group runs, it requires physically to create and store those idf files on the harddrive and that consume too much storage space (say my idf file is 1M+, with 100,000 runs, I need to have 100G+ idf file storage space).
2) I can't control how threading is done. Ideally, it would be nice to have 1 run/core to speed up the simulation.  (assuming I have a culster which can support multiple cores)
 
Except things above, I am very happy with the group run function provided at EP Launch.
 
Xiaosong

On Mon, Mar 28, 2011 at 5:31 PM, Drury B Crawley <dbcrawley@xxxxxxxxx> wrote:
 

EP-Launch now allows you to select the number of simultaneous runs. Each is run in a separate folder to avoid running into each other.  I too have found that running more than one run per core makes everything slower--but it is technically possible.  You can also use EP-Launch to run all the runs.
 
I did 5,000 parametric runs and wrote a series of batch script to do it (Windows command line script).  It first assembled the IDF files for group and then ran them, processed the results, and then zipped everything up for that run... at that time only a single simulation at a time -- this was before multiple cores.


 
On Mon, Mar 28, 2011 at 7:02 PM, dvwilkhjflksadhflk <sebastian.claussnitzer@xxxxxxxxxxxxxx> wrote:
 

Hi Xiasong,

your question is a little hard to answer without knowing which variables you are changing in your input files and also what Operating System you plan to run your setup on. I am using a self-written java setup for parametric runs ( I have used it for running far over 100,000 runs so far). Unfortunately, the code is a little too messy to share.

Have you looked into GenOpt ? It has the ability to create one dimensional and multidimensional parametric runs (also called mesh runs) with Energy Plus. If I remember correctly it allows multithreading. However, this setup will only help, if you are planning on changing numeric values in the input file. If you want to simulate, e.g. 10,000 different glass panes, this will not really be of any help.

In general, I would recommend running one thread per processor core. Running more simulations than processor cores, at least my experience, is not a good idea ( mostly much slower (MacOSx) ? or even worse prevents all simulations from terminating ( WindowsXP) ). Has anyone had any speed improvement running more threads than processor cores ?

This is the setup I solved it in my java setup ( Pseudo Code ) :

MAIN
===================================

coreCount = Runtime.getRuntime().availableProcessors();
simulationQueue = allSimulationsOfYouParametricRun;

while(queue.length>0){

if (coreCount>0){
new Thread simulate( queue.pop( ) );
}

}

// parametric run finished

FUNCTION
===================================

simulate( simulationInput ) {

coreCount--;

String folderName = uniqueNameForThisThread;

writeSimulationFile( simulationInput, folderName );

call_Energy_Plus ( folderName ); // this will execute energy plus

results = readEnergyPlusResults( folderName);

saveResultsToDatabase( results )

coreCount++;

}

Be aware that running multiple instances of Energy Plus pop_simulation_from_queue, folderName on Windows requires calling a modified .bat file ! In GenOpt you can find one of these modified .bat files.

I hope I could help a little.

Sebastian

--- In EnergyPlus_Support@xxxxxxxxxxxxxxx, x z <xs.zhang.2010@...> wrote:
>
> Hi Group,
>
> I am trying to do 10,000+ parametric runs using VBA for my E+ model.
>
> My old approach is to create 10,000+ runs idf input files and create a group
> file using VBA. And then manually do the group runs by selecting the number
> of theads and other parameters.
>
> I realize that this is not a good approach that it requires to physically
> store those 10,000 idf file on hard drive and use too much storage space.
>
> I wonder where I can find example to do automatically threading by using VBA
> or any other languages (say, create a thread whenever a previous thread has
> finished to maintain the total number of active thread constant in a
> conputer). How can we choose the number of thread to fit my computational
> hardware configuration (e.g. # of cores) so as to optimize the speed?
>
> Thanks
>
> Xiaosong
>





__._,_.___


Primary EnergyPlus support is found at:
http://energyplus.helpserve.com or send a message to energyplus-support@xxxxxxxx

The primary EnergyPlus web site is found at:
http://www.energyplus.gov

The group web site is:
http://groups..yahoo.com/group/EnergyPlus_Support/

Attachments are currently allowed but be mindful that not everyone has a high speed connection.  Limit attachments to small files.

EnergyPlus Documentation is searchable.  Open EPlusMainMenu.pdf under the Documentation link and press the "search" button.




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___





=======
Email scanned by PC Tools - No viruses or spyware found.
(Email Guard: 7.0.0.21, Virus/Spyware Database: 6.17200)
http://www.pctools.com
=======