<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On 5 Feb 2017, at 18:09, Gwyneth Allwright <<a href="mailto:allgwy001@myuct.ac.za">allgwy001@myuct.ac.za</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr">Hi Ian and Erik,<div><br></div><div>Thank you very much for all the advice and pointers so far! </div><div><br></div><div>I didn't compile the ET myself; it was done by an HPC engineer. He is unfamiliar with Cactus and started off not using a config file, so he had to troubleshoot his way through the compilation process. We are both scratching our heads about what the issue with mpirun could be.</div><div><br></div><div>I suspect he didn't set MPI_DIR, so I'm going to suggest that he fixes that and see if recompiling takes care of things.<br></div><div><br></div><div>The scheduler automatically terminates jobs that run on too many processors. For my simulation, this appears to happen as soon as TwoPunctures starts generating the initial data. I then get error messages of the form: "Job terminated as it used more cores (17.6) than requested (4)." (I switched from requesting 3 processors to requesting 4.) The number of cores it tries to use appears to differ from run to run.<br></div><br>The parameter file uses Carpet. It generates the following output (when I request 4 processors):<br><br>INFO (Carpet): MPI is enabled<br>INFO (Carpet): Carpet is running on 4 processes<br>INFO (Carpet): This is process 0<br>INFO (Carpet): OpenMP is enabled<br>INFO (Carpet): This process contains 16 threads, this is thread 0<br>INFO (Carpet): There are 64 threads in total<br>INFO (Carpet): There are 16 threads per process</div></blockquote><div><br></div><div>It looks like mpirun has started the 4 processes that you asked for, and each of those processes has started 16 threads. The ET uses OpenMP threads by default. You need to set the environment variable OMP_NUM_THREADS to the number of threads you want per process. If you just want 4 MPI processes, each with one thread, then you can try putting</div><div><br></div><div>export OMP_NUM_THREADS=1</div><div><br></div><div>before your mpirun command. On Linux, OMP_NUM_THREADS defaults to the number of "hardware threads" in the system (which will likely be the number of cores multiplied by 2, if hyperthreading is enabled). So a single process that supports OpenMP will use all the cores available. If you want to have more than one MPI process using OpenMP on the same node, you will have to restrict the number of threads per process.</div><div><br></div><div>Carpet has a couple of environment variables which is uses to cross-check that you have the number of MPI processes and threads that you were expecting. To help with debugging, you can set</div><div><br></div><div>export CACTUS_NUM_THREADS=1</div><div><div>export CACTUS_NUM_PROCS=4</div><div><br></div><div>if you want 4 processes with one thread each. This won't affect the number of threads or processes, but it will allow Carpet to check that what you intended matches reality. In this case, it should abort with an error (or in older versions of Carpet, output a warning), since while you have 4 processes, each one has 16 threads, not 1.</div><div><br></div></div><blockquote type="cite"><div dir="ltr"><div>Mpirun gives me the following information for the node allocation: slots=4, max_slots=0, slots_inuse=0, state=UP.</div><div><br></div><div>The tree view of the processes looks like this:</div><div><br></div><div>PID TTY STAT TIME COMMAND<br></div><div>19503 ? S 0:00 sshd: allgwy001@pts/7 <br></div><div>19504 pts/7 Ss 0:00 \_ -bash</div><div> 6047 pts/7 R+ 0:00 \_ ps -u allgwy001 f</div></div></blockquote><div><br></div><div>This is not showing the Cactus or mpirun process at all; something is wrong. Was Cactus running when you typed this? Were you logged in to the node that it was running on?</div><div><br></div><blockquote type="cite"><div dir="ltr"><div><div>Adding "cat $PBS_NODEFILE" to my PBS script didn't seem to produce anything, although I could be doing something stupid. I'm very new to the syntax!<br></div></div></div></blockquote><div><br></div><div>That's odd. </div></div><br><div apple-content-edited="true">
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div>-- </div><div>Ian Hinder</div><div><a href="http://members.aei.mpg.de/ianhin">http://members.aei.mpg.de/ianhin</a></div></div></div></div></div>
</div>
<br></body></html>