|Message: Clarifying the correct way to run MT jobs with MPI on a cluster with multiple nodes||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 just wanted to clarify a few, presumably quite straightforward, things about running MT jobs with MPI on a cluster. I have gone through the forums, MT migrations guides, as well as several powerpoint presentations found via Google (thank you Andrea!), but am still having trouble answering some very basic questions (so apologies in advance if these have already been answered elsewhere!)
First, a few notes about my configuration: I am running v10.2 on a cluster that has 21 nodes and 12 cores per node, with hyperthreading (I assume 2 threads per core). My application follows that of exMPI03 with multithreading enabled and I am using MPI. I specify the number of threads in my application’s input macro with the UI command /run/numberOfThreads <n>. When running jobs on the cluster, I submit a PBS script that includes the following (I’ve omitted the majority for clarity):
#PBS -l nodes=<i>:ppn=<j>
mpiexec -n <k> <G4_application_name> <input_macro.mac>
My question is really: what is the correct combination of these 4 parameters (<n>, <i>, <j>, and <k>) to run MT jobs with MPI?
I have read in Andrea’s powerpoint presentations that users should “scale across cores with MT and scale across nodes with MPI”, but I’m a bit confused as to how to achieve this. My understanding of MPI was that in the above script, I ought to set <k> = <i> * <j>, which ends up creating a separate clone of my application on each of the <k> cores, and <n> threads are then created for each of these cores. Intuitively this doesn’t seem like “using MT to scale across cores” because I believe that things like detectorconstruction are still being created on ALL cores.
If the proper way to run MT jobs is to have one clone per node, and use MT to run each clone across all available cores on the corresponding node, how does one achieve this?
Thank you in advance for clarifying this for me!
|Inline Depth:||Outline Depth:||Add message:|