cluster computing - Batch script for LSF when only one MPI process among the others has 2 or more threads -


My program uses MPI + pthreads, where N1 MPI processes are pure MPI codes whereas only one MPI process uses pthreads. The final process consists of only 2 threads (main threads and pathreads) Suppose that the HPC cluster on which I want to run this program has calculated nodes, each of which has 12 cores to maximize the use of hardware How should I write my batch script?

The following is my batch script I have written I export using OMP_NUM_THREADS = 2 because the previous MPI process has 2 threads and to assume that others have 2 threads together with each other.

Then I allocate 6 MPI processes per node, then each node can run 6xOMP_NUM_THREADS = 12 (= the number of cores on each node) Despite the fact threads all the MPI processes but one that is 1 thread.

  #BSUB -J LOOP.N200.L1000_SIMPLE_THREAD #BSUB -O Loop. J.J.B.B.-W. 00:10 # BSUB-M 1024 # BSUB-N # BSUB-A OpenMPi # BSUB-N20 # BSUB-M xxx # BSUB-R "Spain [PT = 6]" #BSUB-EXPORT OMP_NUM_THREADS = 2  

How do I write a better script for this?

The following should work if you want to put the final rank in the hybrid:

  #BSUB -n 20 #BSUB - R "yesterday [ptile = 12]" #BSUB -x $ MPIEXEC $ FLAGS_MPI_BATCH -n 19 -x OMP_NUM_THREADS = 1 ./program : \ $ FLAGS_MPI_BATCH -n 1 -x OMP_NUM_THREADS = 2 ./program  

Rank 0 If you want, then switching just two lines of hybrid one:

  $ MPIEXEC $ FLAGS_MPI_BATCH -n 1 -x OMP_NUM_THREADS = 2 ./program:. \ $ FLAGS_MPI_BATCH -n 19 -x OMP_NUM_THREADS = 1 ./program  

This MIMD program is open to launch uses the capabilities of the MPI

Mention that your hybrid rank uses the posix thread and you are still setting up an openpip-related environment variable if you are not actually using OpenMP, then you will see OMP_NUM_THREADS Not to be set at all and this simple mpiexec command should be sufficient :

  $ MPIEXEC $ FLAGS_MPI_BATCH ./program  

(In case of educational institute where you found study or work My guess is about being wrong, delete $ FLAGS_MPI_BATCH and $ MPIEXEC with mpiexec


Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

javascript - data.match(var) not working it seems -

javascript - How can I pause a jQuery .each() loop, while waiting for user input? -