Intel® MPI Library
Get help with building, analyzing, optimizing, and scaling high-performance computing (HPC) applications.
2220 Discussions

Where are these references located? Installation error?

Brandon_W_
Beginner
4,989 Views

All,

Thank you for taking a look at this!

I have downloaded and installed composer xe 2015.3.187 and didn't see any obvious errors. However, when I try to run an often used code from other machines on my new machine, I get:

/usr/lib/gcc/x86_64-redhat-linux/4.8.3/../../../../lib64/crt1.o: In function `_start':
(.text+0x20): undefined reference to `main'
/home/bwheeler/intel/impi/5.0.3.048/intel64/lib/libmpifort.so: undefined reference to `PMPIX_Comm_group_failed'
/home/bwheeler/intel/impi/5.0.3.048/intel64/lib/libmpifort.so: undefined reference to `PMPIX_Comm_remote_group_failed'
/home/bwheeler/intel/impi/5.0.3.048/intel64/lib/libmpifort.so: undefined reference to `PMPIX_Comm_reenable_anysource'
/home/bwheeler/intel/impi/5.0.3.048/intel64/lib/libmpifort.so: undefined reference to `MPID_b_use_gettimeofday'
/home/bwheeler/intel/impi/5.0.3.048/intel64/lib/libmpifort.so: undefined reference to `i_malloc'
/home/bwheeler/intel/impi/5.0.3.048/intel64/lib/libmpifort.so: undefined reference to `i_free'
collect2: error: ld returned 1 exit status
make: *** [dmcblast_3d_local] Error 1

I've googled the issue, but I feel that 'main' isn't the problem, since the code works on other machines. I've also tried to google the underfined references, but can't find what library they're related to so that I can either download it or add the libraries to the PATH.

I have made sure that <install-dir>/intel/composer_xe_2015.3.187/bin/intel64  (for compilervars.sh) and <install-dir>/intel/impi/5.0.3.048/intel64/bin (for mpivars.sh) are in the PATH and LD_LIBRARY_PATH. I have also tested mpicc and mpiicc and seem to be getting the correct outputs, so I feel that the MPI installation and Libraries within /intel are working.

I feel that I may have downloaded the Intel Software incorrectly, but am unsure how. Could you please help me to either download the software correctly, with all libraries going to the right spots, or help me find the libraries these undefined references are in?

I would really appreciate it! Thank you! Please feel free to contact me with any further questions.

0 Kudos
24 Replies
James_T_Intel
Moderator
936 Views

This is not something I'm all that experienced with, so I really can't offer much advice other than to check around on forums for your Linux* distribution.  My immediate guess is file system corruption, but it is just a guess.

0 Kudos
Brandon_W_
Beginner
936 Views

Thanks for looking at it! Hopefully I'll find something =)

0 Kudos
Ravi_B_Intel
Employee
936 Views

I have the same issue and tried all of the above suggestions but had no success

here is my makefile

#-------------- User Defined Makefile Variables ---------------#
BOOST_PREFIX    = $MCBDIR/boost_headers/boost
CXX             = mpiicc
OPENMPFLAG      = -qopenmp
MPI_INCLUDE     = -I/root/ompi-install/include -I/opt/intel/compilers_and_libraries_2017.2.174/linux/mpi/intel64/include
CXXDEFINES      = -DORTHOXY -DUSE_OPENMP -DUSE_MPI -DNOASSERT # -DUSE_TAU_EVENT_COUNTERS
CXXFLAGS        = -O2 -xHost $(CXXDEFINES) $(OPENMPFLAG)
LDFLAGS         =
LIBPATH         = -L/root/ompi-install/lib -L/opt/intel/compilers_and_libraries_2017.2.174/linux/mkl/lib/intel64 -L/opt/intel/compilers_and_libraries_2017.2.174/linux/mpi/intel64/lib -L/usr/local/lib
LIBS            =
#--------------------------------------------------------------#

BOOST_INCLUDE = -I${BOOST_PREFIX}/include
BOOST_LIB = -L${BOOST_PREFIX}/lib -Wl,-rpath ${BOOST_PREFIX}/lib

 

Any other suggestions?

Thanks for your time!!

0 Kudos
Gregg_S_Intel
Employee
936 Views

Your environment points to two different MPI distributions, OpenMPI and Intel MPI.

The mpiicc wrapper takes care of all of that for you.  No need for explicit MPI include or library paths.

 

 

0 Kudos
Reply