[mpich-discuss] Error while building NAS benchmarks

koko jumbo vaibhavsupersaiyan9 at gmail.com
Tue Jun 2 14:35:52 CDT 2015


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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20150602/eed9113d/attachment.html>
-------------- next part --------------
_______________________________________________
discuss mailing list     discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss


More information about the discuss mailing list