Updates and Results
Talks and Posters
Advice
Ideas
Important Figures
Write-Ups
Outreach
How-To
Funding Opportunities
GENETIS
GENETIS
Draft saved at 00:00:00
Fields marked with
*
are required
Entry time:
Tue Jul 18 22:04:22 2023
Author
*
:
Subject
*
:
<p>Currently, the PUEO loop runs pueoSim with 1 pueoSim process per job submitted.</p> <p>Each of these jobs has 1 node and 8 cores, however, pueoSim only needs a single core to run.</p> <p>Here is some data I collected by running the same seed of pueoSim with different numbers of cores in the job:</p> <table border="1" cellpadding="1" cellspacing="1" style="width:500px"> <tbody> <tr> <td>Processes</td> <td>Cores Per Job</td> <td>Run Time (1000 neutrinos)</td> <td>Neutrinos Per Second</td> </tr> <tr> <td>1</td> <td>1</td> <td>100</td> <td>10</td> </tr> <tr> <td>1</td> <td>8</td> <td>102</td> <td>10</td> </tr> <tr> <td>1</td> <td>16</td> <td>96</td> <td>10</td> </tr> <tr> <td>1</td> <td>40</td> <td>96</td> <td>10</td> </tr> </tbody> </table> <p>So, we should be able to run multiple processes of pueoSim without losing much performance.</p> <p>Tests with more cores:</p> <table border="1" cellpadding="1" cellspacing="1" style="width:500px"> <tbody> <tr> <td>Processes</td> <td>Cores per Job</td> <td>Run Time (1000 neutrinos)</td> <td>Neutrinos Per Second</td> </tr> <tr> <td>8</td> <td>8</td> <td>106</td> <td>75</td> </tr> <tr> <td>8</td> <td>16</td> <td>126</td> <td>63</td> </tr> <tr> <td>8</td> <td>40</td> <td>107</td> <td>75</td> </tr> <tr> <td>20</td> <td>20</td> <td>142</td> <td>140</td> </tr> <tr> <td>20</td> <td>40</td> <td>138</td> <td>144</td> </tr> <tr> <td>32</td> <td>40</td> <td>178</td> <td>179</td> </tr> <tr> <td>40</td> <td>40</td> <td>208</td> <td>192</td> </tr> </tbody> </table> <p> </p> <p>A test comparing the parallelization with the 40000 neutrinos per process we simulate in the loop:</p> <table border="1" cellpadding="1" cellspacing="1" style="width:500px"> <tbody> <tr> <td>Processes</td> <td>Cores Per Job</td> <td>Run Time (40000 neutrinos)</td> <td>Neutrinos Per Second</td> </tr> <tr> <td>1</td> <td>8</td> <td>3226</td> <td>12</td> </tr> <tr> <td>40</td> <td>40</td> <td>6651</td> <td>240</td> </tr> </tbody> </table> <p>So, these tests suggest we can simulate neutrinos ~20 times faster than currently done in the loop by utilizing more cores per job.</p> <p>This method of multiple processes per job should be applicable to how we run other simulation software like AraSim as well.</p> <p> </p> <p>(Note: both of these jobs had comparable queue times of 27 and 31 seconds respectively.</p> <p>Also, I have tested and seen that the outputted root files are identical for the same seed regardless of if ran with multiple processes at the same time or with processes in serial)</p> <p>(data found in /users/PAS1960/dylanwells1629/buildingPueoSim/testingouts/times.txt)</p> <p> </p> <p><span style="font-size:16px"><strong>How to run multiple processes of pueoSim:</strong></span></p> <p><strong><span style="font-size:14px">Previous Call:</span></strong></p> <p>./pueoBuilder/build/components/pueoSim/simulatePueo -i pueo.conf -o ${PSIMDIR}/outputs/${gen}_outputs/$SLURM_ARRAY_TASK_ID -r $run_num -n $NNT -e $Exp > $TMPDIR/out.txt</p> <p> </p> <p><strong><span style="font-size:14px">Multiple Processes Test Call:</span></strong></p> <p>for ((i=0; i<$threads; i++))</p> <p>do</p> <p> ./simulatePueo -i pueo.conf -o $TMPDIR -r $i -n $NNU -e 19 > pueo.out &</p> <p>done</p> <p>wait</p> <p> </p> <p>Instead of just calling peuoSim once per job, we can use the & symbol and a loop to run $threads number of pueoSim processes in the background and then wait for them to finish.</p>
Encoding
:
HTML
ELCode
plain
Suppress Email notification
Resubmit as new entry
Attachment 1:
Drop attachments here...
Draft saved at 00:00:00
ELOG V3.1.5-fc6679b