Compiling with MVAPICH2 leads to undefined references


Clicked A Few Times
My environment variables:

USE_MPI=y
USE_MPIF=y
USE_MPIF4=y

MPI_LOC=/usr/local
MPI_LIB=/usr/local/lib
MPI_INCLUDE=/usr/local/include

LIBMPI=-lmpich -lopa -lmpl -lrt -lpthread

Compilation leads to undefined references:



/usr/local/lib/libmpich.a(rdma_iba_init.o): In function `MPIDI_CH3I_CM_Finalize':
rdma_iba_init.c:(.text+0x185): undefined reference to `ibv_dereg_mr'
rdma_iba_init.c:(.text+0x1a0): undefined reference to `ibv_dereg_mr'
rdma_iba_init.c:(.text+0x1eb): undefined reference to `ibv_destroy_qp'
rdma_iba_init.c:(.text+0x281): undefined reference to `ibv_destroy_cq'
rdma_iba_init.c:(.text+0x2ca): undefined reference to `ibv_dealloc_pd'
rdma_iba_init.c:(.text+0x2d7): undefined reference to `ibv_close_device'
rdma_iba_init.c:(.text+0x32c): undefined reference to `ibv_destroy_srq'



Thanks for your help.

Forum Vet
MPICH was compiled with the Infiniband libraries. Hence, these need to be linked in. An easy way to find which libraries need to be include is by doing a mpif90 -show for example.

Bert


Quote:Deburgess Apr 8th 8:59 pm
My environment variables:

USE_MPI=y
USE_MPIF=y
USE_MPIF4=y

MPI_LOC=/usr/local
MPI_LIB=/usr/local/lib
MPI_INCLUDE=/usr/local/include

LIBMPI=-lmpich -lopa -lmpl -lrt -lpthread

Compilation leads to undefined references:



/usr/local/lib/libmpich.a(rdma_iba_init.o): In function `MPIDI_CH3I_CM_Finalize':
rdma_iba_init.c:(.text+0x185): undefined reference to `ibv_dereg_mr'
rdma_iba_init.c:(.text+0x1a0): undefined reference to `ibv_dereg_mr'
rdma_iba_init.c:(.text+0x1eb): undefined reference to `ibv_destroy_qp'
rdma_iba_init.c:(.text+0x281): undefined reference to `ibv_destroy_cq'
rdma_iba_init.c:(.text+0x2ca): undefined reference to `ibv_dealloc_pd'
rdma_iba_init.c:(.text+0x2d7): undefined reference to `ibv_close_device'
rdma_iba_init.c:(.text+0x32c): undefined reference to `ibv_destroy_srq'



Thanks for your help.

Clicked A Few Times
parallel computation works
Dear Bert,
Thank you for your help.

The following environment worked for me on RHEL6:
=====================================
NWCHEM_TOP=/home/deburg0/Downloads/nwchem-6.1
NWCHEM_TARGET=LINUX64
ARMCI_NETWORK=OPENIB
IB_HOME=/usr
IB_INCLUDE=/usr/include
IB_LIB= USE_MPI=y
MPI_LOC=/usr/local
MPI_LIB=/usr/local/lib
MPI_INCLUDE=/usr/local/include
LIBMPI=-lmpichf90 -lmpich -lopa -lmpl -lpthread -libverbs -libumad -ldl -lrt
IB_LIB_NAME=-lpthread -libverbs -libumad


Forum >> NWChem's corner >> Compiling NWChem