Hello all, I am using OpenMPI version 1.6.4 (installed with the Intel compilers) and I am getting some undefined reference errors.
First, I will give you some background. While reinstalling and upgrading our cluster, this is how I installed openmpi: While installing CentOS with ROCKS 6.1, openmpi was preinstalled. I left this alone and installed the Intel compilers, and then installed openmpi with the Intel compilers in a new directory (/export/apps/openmpi_intel_20130618). So my understanding is that there are now two openmpi version installed, one with gcc etc and one with the Intel compilers. I then put our personal simulation code back onto the machine and tried to "make" it. I received multiple errors, some of which I have fixed. I have mostly done this by changing the PATH and LD_LIBRARY_PATH variables to correctly point to the Intel version of OpenMPI. I also linked in mpi.mod and some mpi*.h files, which may not have been the correct thing to do??? Note that these are linked to the Intel version of OpenMPI, not the GNU version. The makefile I am using is a few years old, and I am still terrible at understanding makefiles so there could easily be a problem in there (it is pasted at the end). The Intel version of OpenMPI is installed in /export/apps/openmpi_intel_20130618 and the GNU version is installed in /opt/openmpi (At least this is my understanding...) Now I am still getting some undefined reference errors. Namely: [root@odie 060911_rmc_eam_gr_vk_t4]# make ifort -g -debug all -check all -implicitnone -warn all -o rmc_test ran2.o globals.o read_inputs.o model.o rmc_functions.o scattering_factors.o fem1.o gr.o eam.o rmc_v_1_0.o -L /export/apps/openmpi_intel_20130618/lib -lmpi ifort: warning #10182: disabling optimization; runtime debug checks enabled fem1.o: In function `fem': /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/fem1.f90:583: undefined reference to `mpi_reduce_' /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/fem1.f90:584: undefined reference to `mpi_reduce_' fem1.o: In function `fem_update': /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/fem1.f90:888: undefined reference to `mpi_reduce_' /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/fem1.f90:889: undefined reference to `mpi_reduce_' rmc_v_1_0.o: In function `rmc': /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/rmc_v_1_0.f90:79: undefined reference to `mpi_init_' /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/rmc_v_1_0.f90:80: undefined reference to `mpi_comm_rank_' /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/rmc_v_1_0.f90:81: undefined reference to `mpi_comm_size_' /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/rmc_v_1_0.f90:188: undefined reference to `mpi_wtime_' /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/rmc_v_1_0.f90:237: undefined reference to `mpi_bcast_' /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/rmc_v_1_0.f90:339: undefined reference to `mpi_wtime_' /state/partition1/home/jjmaldonis/Jinwoo/2011/060911_rmc_eam_gr_vk_t4/rmc_v_1_0.f90:370: undefined reference to `mpi_finalize_' make: *** [debug] Error 1 The above undefined reference errors are my problem. Below are my PATH and LD_LIBRARY_PATH variables, if they are of help. echo $PATH /usr/lib64/qt-3.3/bin:/state/partition1/apps/intel_20130618/composer_xe_2013.3.163/bin/intel64:/state/partition1/apps/intel_20130618/composer_xe_2013.3.163/mpirt/bin/intel64:/state/partition1/apps/intel_20130618/composer_xe_2013.3.163/bin/intel64:/state/partition1/apps/intel_20130618/composer_xe_2013.3.163/bin/intel64_mic:/state/partition1/apps/intel_20130618/composer_xe_2013.3.163/debugger/gui/intel64:/export/apps/intel_20130618/advisor_xe_2013/bin64:/export/apps/intel_20130618/inspector_xe_2013/bin64:/export/apps/intel_20130618/vtune_amplifier_xe_2013/bin64:/usr/local/bin:/bin:/usr/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/eclipse:/opt/ganglia/bin:/opt/ganglia/sbin:/usr/java/latest/bin:/opt/maven/bin:/export/apps/openmpi_intel_20130618/:/opt/pdsh/bin:/opt/rocks/bin:/opt/rocks/sbin:/opt/condor/bin:/opt/condor/sbin:/usr/local/samba/sbin:/opt/gridengine/bin/linux-x64:/export/apps/openmpi_intel_20130618/bin/:/usr/local/samba/sbin:/export/apps/openmpi_intel_20130618/bin/ echo $LD_LIBRARY_PATH /opt/gridengine/lib/linux-x64:/export/apps/openmpi_intel_20130618/lib:/state/partition1/apps/intel_20130618/composer_xe_2013.3.163/compiler/lib:/state/partition1/apps/intel_20130618/composer_xe_2013.3.163/compiler/lib/intel64/ Below I will paste my makefile, and attached are the compressed "./configure ..." and "make all install" command logs. Please let me know anything else that you need. I am still new to all this, so please be thorough in your explanations for me! Thank you in advance, Jason # # default makefile for ifort compiler with more or less # appropriate options for debugging and high performance # # application name APP = rmc_test # list of source files SRC = ran2.f90 globals.f90 read_inputs.f90 model.f90 rmc_functions.f90 scattering_factors.f90 fem1.f90 gr.f90 eam.f90 rmc_v_1_0.f90 # list of object files OBJ = ran2.o globals.o read_inputs.o model.o rmc_functions.o scattering_factors.o fem1.o gr.o eam.o rmc_v_1_0.o # define libraries needed by the linker LIBS = -L /export/apps/openmpi_intel_20130618/lib -lmpi # -rpath /state/partition1/apps/intel_20130618/composer_xe_2013.3.163/compiler/lib/ # compiler options for debugging FC_DEBUG = ifort -g -debug all -check all -implicitnone -warn all # compiler options for optmized running #FC_OPT = ifort -O3 -xO -ipo -no-prec-div -static #FC_OPT = mpif90 -O3 -ipo -static FC_OPT = mpif90 -O3 # build rules .SUFFIXES: .f90 .o .f90.o: ${FC_DEBUG} -c $< debug: ${OBJ} ${FC_DEBUG} -o ${APP} ${OBJ} ${LIBS} opt: ${SRC} ${FC_OPT} -o ${APP} ${SRC} ${LIBS} clean: rm -f *.mod *.o ${APP} ln -s /export/apps/openmpi_intel_20130618/lib/mpi.mod ./mpi.mod
ompi-output.tar.bz2
Description: BZip2 compressed data