c++ - How to obtain a backend transport type/configuration in MPI (openMPI application)? -


so having access submit jobs small cluster, how obtain inside mpi app type of backend mpi running on (infiniband, ethernet, etc)?

open mpi ranks network interconnects finds on each host , selects fastest 1 allows communication other nodes. infiniband wins on ethernet unless 1 fiddles btl component priorities (one doesn't).

to see components being selected, set verbosity level of btl framework @ least 5:

$ mpiexec --mca btl_base_verbose 5 -np 2 ./a.out  [host:08691] mca: bml: using self btl [[56717,1],1] on node host [host:08690] mca: bml: using self btl [[56717,1],0] on node host [host:08691] mca: bml: using vader btl [[56717,1],0] on node host [host:08690] mca: bml: using vader btl [[56717,1],1] on node host 

what see here modules 2 btl components instantiated:

  • self, open mpi uses communicate within same process;
  • vader, known sm, implements message passing via shared-memory processes on same node.

if tcp/ip on 10g ethernet or ipoib used, you'll see tcp btl being selected. otherwise, output depends on open mpi version have. older versions, mellanox infiniband hcas driven natively openib btl component. newer versions, mx mtl takes on , might need increase verbosity of mtl framework instead setting mtl_base_verbose 5.


Comments