I would like to know how to invoke InfiniBand hardware on CentOS 6x cluster with OpenMPI (static libs.) for running my C++ code. This is how I compile and run:
/usr/local/open-mpi/1.10.7/bin/mpic++ -L/usr/local/open-mpi/1.10.7/lib -Bstatic main.cpp -o DoWork
usr/local/open-mpi/1.10.7/bin/mpiexec -mca btl tcp,self --hostfile hostfile5 -host node01,node02,node03,node04,node05 -n 200 DoWork
Here, "-mca btl tcp,self" reveals that TCP is used, and the cluster has InfiniBand.
What should be changed in compiling and running commands for InfiniBand to be invoked? If I just replace "-mca btl tcp,self" with "-mca btl openib,self" then I get plenty of errors with relevant one saying:
At least one pair of MPI processes are unable to reach each other for MPI communications. This means that no Open MPI device has indicated that it can be used to communicate between these processes. This is an error; Open MPI requires that all MPI processes be able to reach each other. This error can sometimes be the result of forgetting to specify the "self" BTL.
Thanks very much!!!