|Message: Re: Simulation time/Sensitive scoring||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
I would like to point out 3 things
1) 100,000,000 particles in about 30 minutes is the correct radiation transport time. Even in a pure water box I would expect it to take at least 20 minutes. This time depends on particle type and secondary cutoff energies and even your physics models. I think you are doing great.
2) The simulation time is based on the number and size of sub-voxels you have. If you created a rectilinear grid, Geant4 needs to stop at each interface and process data for the scoring volume it is leaving. So less voxels mean longer run time.
3) Now unlike many other radiation transport codes, Geant4 does not use condensed history algorithms. So there is more going on in terms of code to remember the history of the track itself. This is great because it lets us do some really advanced things, but it does slow down the algorithms.
If you are really worried about the performance there are three steps to take.
1) Run the simulation without the sensitive sub-volumes, i.e. just the large water box. See how long it takes. This will give you the baseline of how fast your simulation can run if no scoring is done. As I said, i think you will be surprised.
2) If you aren't using the multi-treading kernel, modify your source code to do that. This will at least give you a 2-3x improvement in performance, if you implement it correctly.
3) Try different scoring mechanisms: Primitive, command based, step-based, etc. Maybe in your situation one is better than the other in terms of performance.
I would personally avoid doing 2 & 3. 100,000,000 in 30 minutes is about 3 million particles a minute. That is really good. I have simulations I wish were that fast.