[mpich-discuss] Error while building NAS benchmarks

"Antonio J. Peña" apenya at mcs.anl.gov
Tue Jun 2 15:04:38 CDT 2015


Sorry, this mailing list is specifically intended to discuss issues with 
MPICH itself. For issues with its derivatives (such as Intel MPI), 
please seek assistance in their own forums, or alternatively, in general 
programming sites such as stackoverflow.com

Best,
   Antonio


On 06/02/2015 02:35 PM, koko jumbo wrote:
> 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     discuss at mpich.org
> To manage subscription options or unsubscribe:
> https://lists.mpich.org/mailman/listinfo/discuss


-- 
Antonio J. Peña
Postdoctoral Appointee
Mathematics and Computer Science Division
Argonne National Laboratory
9700 South Cass Avenue, Bldg. 240, Of. 3148
Argonne, IL 60439-4847
apenya at mcs.anl.gov
www.mcs.anl.gov/~apenya

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20150602/2c86ab25/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