0
$\begingroup$

I have a numerical code which is MPI+OpenMP (hybrid) parallelized and an available computational resource of 32 nodes with 16 cores on each node. The code has been tested for MPI scalability up to 16 cores on different nodes and OpenMP scalability on 16 cores on a single node.

Can I assume the hybrid parallelization to be scalable on $32\times 16$ cores?

Edit: MPI+OpenMP is done in such a way that MPI processes are launched at the beginning itself and shared memory parallelization is done within each process using a few PARALLEL DO loops.

$\endgroup$
  • $\begingroup$ Do any of the threaded sections of the code also include MPI calls, or are the two logically separated? $\endgroup$ – origimbo Apr 28 '16 at 14:23
5
$\begingroup$

No. You need to test it to that scale, especially if you have MPI calls within OpenMP regions.

$\endgroup$
  • $\begingroup$ Since there is a restriction on total CPU time used by different users in the facility I am availing, it will be difficult to perform a test to the scale. $\endgroup$ – boltz Apr 30 '16 at 6:11
  • $\begingroup$ a) They don't all have to fit in one job. b) If you do a strong scaling test so that the problem sized is fixed globally, then the run time should get shorter as you scale up. $\endgroup$ – Bill Barth Apr 30 '16 at 13:51
1
$\begingroup$

As a general rule, I would test out the combination of cores and nodes, since scalability depends on so many factors: having enough to do on each node and then core, task / data parallelism in your problem, how well the code is architected to perform MPI communications without interrupting the openMP threads, etc. Most of the times one can avoid MPI calls from within openMP loops, and I have.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.