Error while building NAS benchmarks
I am trying to build NAS benchmarks using Intel MPI and below is the makefile that I am using. * #---------------------------------------------------------------------------* * #* * # SITE- AND/OR PLATFORM-SPECIFIC DEFINITIONS. * * #* * #---------------------------------------------------------------------------* * #---------------------------------------------------------------------------* * # Items in this file will need to be changed for each platform.* * #---------------------------------------------------------------------------* * #---------------------------------------------------------------------------* * # Parallel Fortran:* * #* * # For CG, EP, FT, MG, LU, SP and BT, which are in Fortran, the following must * * # be defined:* * #* * # MPIF77 - Fortran compiler* * # FFLAGS - Fortran compilation arguments* * # FMPI_INC - any -I arguments required for compiling MPI/Fortran * * # FLINK - Fortran linker* * # FLINKFLAGS - Fortran linker arguments* * # FMPI_LIB - any -L and -l arguments required for linking MPI/Fortran * * # * * # compilations are done with $(MPIF77) $(FMPI_INC) $(FFLAGS) or* * # $(MPIF77) $(FFLAGS)* * # linking is done with $(FLINK) $(FMPI_LIB) $(FLINKFLAGS)* * #---------------------------------------------------------------------------* * #---------------------------------------------------------------------------* * # This is the fortran compiler used for MPI programs* * #---------------------------------------------------------------------------* * MPIF77 = gfortran* * # This links MPI fortran programs; usually the same as ${MPIF77}* * FLINK = $(MPIF77)* * #---------------------------------------------------------------------------* * # These macros are passed to the linker to help link with MPI correctly* * #---------------------------------------------------------------------------* * FMPI_LIB = -L/share/apps/intel/impi/5.0.2.044/intel64/lib <http://5.0.2.044/intel64/lib> -lmpi* * #---------------------------------------------------------------------------* * # These macros are passed to the compiler to help find 'mpif.h'* * #---------------------------------------------------------------------------* * FMPI_INC = -I/share/apps/intel/impi/5.0.2.044/intel64/include <http://5.0.2.044/intel64/include>* * #---------------------------------------------------------------------------* * # Global *compile time* flags for Fortran programs* * #---------------------------------------------------------------------------* * FFLAGS = -O* * #---------------------------------------------------------------------------* * # Global *link time* flags. Flags for increasing maximum executable * * # size usually go here. * * #---------------------------------------------------------------------------* * FLINKFLAGS = -O* * #---------------------------------------------------------------------------* * # Parallel C:* * #* * # For IS, which is in C, the following must be defined:* * #* * # MPICC - C compiler * * # CFLAGS - C compilation arguments* * # CMPI_INC - any -I arguments required for compiling MPI/C * * # CLINK - C linker* * # CLINKFLAGS - C linker flags* * # CMPI_LIB - any -L and -l arguments required for linking MPI/C * * #* * # compilations are done with $(MPICC) $(CMPI_INC) $(CFLAGS) or* * # $(MPICC) $(CFLAGS)* * # linking is done with $(CLINK) $(CMPI_LIB) $(CLINKFLAGS)* * #---------------------------------------------------------------------------* * #---------------------------------------------------------------------------* * # This is the C compiler used for MPI programs* * #---------------------------------------------------------------------------* * MPICC = cc* * # This links MPI C programs; usually the same as ${MPICC}* * CLINK = $(MPICC)* * #---------------------------------------------------------------------------* * # These macros are passed to the linker to help link with MPI correctly* * #---------------------------------------------------------------------------* * CMPI_LIB = -L/usr/local/lib -lmpi* * #---------------------------------------------------------------------------* * # These macros are passed to the compiler to help find 'mpi.h'* * #---------------------------------------------------------------------------* * CMPI_INC = -I/usr/local/include* * #---------------------------------------------------------------------------* * # Global *compile time* flags for C programs* * #---------------------------------------------------------------------------* * CFLAGS = -O* * #---------------------------------------------------------------------------* * # Global *link time* flags. Flags for increasing maximum executable * * # size usually go here. * * #---------------------------------------------------------------------------* * CLINKFLAGS = -O* * #---------------------------------------------------------------------------* * # MPI dummy library:* * #* * # Uncomment if you want to use the MPI dummy library supplied by NAS instead * * # of the true message-passing library. The include file redefines several of* * # the above macros. It also invokes make in subdirectory MPI_dummy. Make * * # sure that no spaces or tabs precede include.* * #---------------------------------------------------------------------------* * # include ../config/make.dummy* * #---------------------------------------------------------------------------* * # Utilities C:* * #* * # This is the C compiler used to compile C utilities. Flags required by * * # this compiler go here also; typically there are few flags required; hence * * # there are no separate macros provided for such flags.* * #---------------------------------------------------------------------------* * CC = cc -g* * #---------------------------------------------------------------------------* * # Destination of executables, relative to subdirs of the main directory. . * * #---------------------------------------------------------------------------* * BINDIR = ../bin* * #---------------------------------------------------------------------------* * # Some machines (e.g. Crays) have 128-bit DOUBLE PRECISION numbers, which* * # is twice the precision required for the NPB suite. A compiler flag * * # (e.g. -dp) can usually be used to change DOUBLE PRECISION variables to* * # 64 bits, but the MPI library may continue to send 128 bits. Short of* * # recompiling MPI, the solution is to use MPI_REAL to send these 64-bit* * # numbers, and MPI_COMPLEX to send their complex counterparts. Uncomment* * # the following line to enable this substitution. * * # * * # NOTE: IF THE I/O BENCHMARK IS BEING BUILT, WE USE CONVERTFLAG TO* * # SPECIFIY THE FORTRAN RECORD LENGTH UNIT. IT IS A SYSTEM-SPECIFIC* * # VALUE (USUALLY 1 OR 4). UNCOMMENT THE SECOND LINE AND SUBSTITUTE* * # THE CORRECT VALUE FOR "length".* * # IF BOTH 128-BIT DOUBLE PRECISION NUMBERS AND I/O ARE TO BE ENABLED,* * # UNCOMMENT THE THIRD LINE AND SUBSTITUTE THE CORRECT VALUE FOR* * # "length"* * #---------------------------------------------------------------------------* * # CONVERTFLAG = -DCONVERTDOUBLE* * # CONVERTFLAG = -DFORTRAN_REC_SIZE=length* * # CONVERTFLAG = -DCONVERTDOUBLE -DFORTRAN_REC_SIZE=length* * #---------------------------------------------------------------------------* * # The variable RAND controls which random number generator * * # is used. It is described in detail in README.install. * * # Use "randi8" unless there is a reason to use another one. * * # Other allowed values are "randi8_safe", "randdp" and "randdpvec"* * #---------------------------------------------------------------------------* * RAND = randi8* * # The following is highly reliable but may be slow:* * # RAND = randdp* When I try to build let's say EP benchmark ***make NPROCS=8 EP CLASS=C***, I get an error like * =========================================* * = NAS Parallel Benchmarks 3.3 =* * = MPI/F77/C =* * =========================================* * cd EP; make NPROCS=8 CLASS=C* * make[1]: Entering directory `/home/vaibhavs/NPB3.3/NPB3.3-MPI/EP'* * make[2]: Entering directory `/home/vaibhavs/NPB3.3/NPB3.3-MPI/sys'* * cc -g -o setparams setparams.c* * make[2]: Leaving directory `/home/vaibhavs/NPB3.3/NPB3.3-MPI/sys'* * ../sys/setparams ep 8 C* * make.def modified. Rebuilding npbparams.h just in case* * rm -f npbparams.h* * ../sys/setparams ep 8 C* * gfortran -c -I/share/apps/intel/impi/5.0.2.044/intel64/include <http://5.0.2.044/intel64/include> -O ep.f* * gfortran -O -o ../bin/ep.C.8 ep.o ../common/print_results.o ../common/randi8.o ../common/timers.o -L/share/app s/intel/impi/5.0.2.044/intel64/lib <http://5.0.2.044/intel64/lib> -lmpi* * ep.o: In function `MAIN__':* * ep.f:(.text+0x31): undefined reference to `mpi_init_'* * ep.f:(.text+0x4b): undefined reference to `mpi_comm_rank_'* * ep.f:(.text+0x65): undefined reference to `mpi_comm_size_'* * ep.f:(.text+0x347): undefined reference to `mpi_abort_'* * ep.f:(.text+0x3df): undefined reference to `mpi_barrier_'* * ep.f:(.text+0x803): undefined reference to `mpi_allreduce_'* * ep.f:(.text+0x842): undefined reference to `mpi_allreduce_'* * ep.f:(.text+0x879): undefined reference to `mpi_allreduce_'* * ep.f:(.text+0x935): undefined reference to `mpi_allreduce_'* * ep.f:(.text+0xc70): undefined reference to `mpi_finalize_'* * ../common/timers.o: In function `timer_stop_':* * timers.f:(.text+0x27): undefined reference to `mpi_wtime_'* * ../common/timers.o: In function `timer_start_':* * timers.f:(.text+0x57): undefined reference to `mpi_wtime_'* * collect2: ld returned 1 exit status* * make[1]: *** [../bin/ep.C.8] Error 1* * make[1]: Leaving directory `/home/vaibhavs/NPB3.3/NPB3.3-MPI/EP'* * make: *** [ep] Error 2* Can anybody please help me in resolving this issue? Thanks _______________________________________________ discuss mailing list [email protected] To manage subscription options or unsubscribe: https://lists.mpich.org/mailman/listinfo/discuss
participants (1)
-
koko jumbo