parallel processing - Error while building NAS benchmarks -


i trying build nas benchmarks using intel mpi , below makefile using.

   #--------------------------------------------------------------------------- # #                site- and/or platform-specific definitions.  # #---------------------------------------------------------------------------  #--------------------------------------------------------------------------- # items in file need changed each platform. #---------------------------------------------------------------------------  #--------------------------------------------------------------------------- # parallel fortran: # # cg, ep, ft, mg, lu, sp , bt, in fortran, following must  # defined: # # mpif77     - fortran compiler # fflags     - fortran compilation arguments # fmpi_inc   - -i arguments required compiling mpi/fortran  # flink      - fortran linker # flinkflags - fortran linker arguments # fmpi_lib   - -l , -l arguments required linking mpi/fortran  #  # compilations done $(mpif77) $(fmpi_inc) $(fflags) or #                            $(mpif77) $(fflags) # linking done       $(flink) $(fmpi_lib) $(flinkflags) #---------------------------------------------------------------------------  #--------------------------------------------------------------------------- # fortran compiler used mpi programs #--------------------------------------------------------------------------- mpif77 = gfortran # links mpi fortran programs; same ${mpif77} flink   = $(mpif77)  #--------------------------------------------------------------------------- # these macros passed linker link mpi correctly #--------------------------------------------------------------------------- fmpi_lib  =  -l/share/apps/intel/impi/5.0.2.044/intel64/lib -lmpi   #--------------------------------------------------------------------------- # these macros passed compiler find 'mpif.h' #--------------------------------------------------------------------------- fmpi_inc = -i/share/apps/intel/impi/5.0.2.044/intel64/include  #--------------------------------------------------------------------------- # global *compile time* flags fortran programs #--------------------------------------------------------------------------- fflags  = -o  #--------------------------------------------------------------------------- # global *link time* flags. flags increasing maximum executable  # size go here.  #--------------------------------------------------------------------------- flinkflags = -o   #--------------------------------------------------------------------------- # parallel c: # # is, in c, following must defined: # # mpicc      - c compiler  # cflags     - c compilation arguments # cmpi_inc   - -i arguments required compiling mpi/c  # clink      - c linker # clinkflags - c linker flags # cmpi_lib   - -l , -l arguments required linking mpi/c  # # compilations done $(mpicc) $(cmpi_inc) $(cflags) or #                            $(mpicc) $(cflags) # linking done       $(clink) $(cmpi_lib) $(clinkflags) #---------------------------------------------------------------------------  #--------------------------------------------------------------------------- # c compiler used mpi programs #--------------------------------------------------------------------------- mpicc = cc # links mpi c programs; same ${mpicc} clink   = $(mpicc)  #--------------------------------------------------------------------------- # these macros passed linker link mpi correctly #--------------------------------------------------------------------------- cmpi_lib  = -l/usr/local/lib -lmpi  #--------------------------------------------------------------------------- # these macros passed compiler find 'mpi.h' #--------------------------------------------------------------------------- cmpi_inc = -i/usr/local/include  #--------------------------------------------------------------------------- # global *compile time* flags c programs #--------------------------------------------------------------------------- cflags  = -o  #--------------------------------------------------------------------------- # global *link time* flags. flags increasing maximum executable  # size go here.  #--------------------------------------------------------------------------- clinkflags = -o   #--------------------------------------------------------------------------- # mpi dummy library: # # uncomment if want use mpi dummy library supplied nas instead  # of true message-passing library. include file redefines several of # above macros. invokes make in subdirectory mpi_dummy. make  # sure no spaces or tabs precede include. #--------------------------------------------------------------------------- # include ../config/make.dummy   #--------------------------------------------------------------------------- # utilities c: # # c compiler used compile c utilities.  flags required  # compiler go here also; typically there few flags required; hence  # there no separate macros provided such flags. #--------------------------------------------------------------------------- cc  = cc -g   #--------------------------------------------------------------------------- # destination of executables, relative subdirs of main directory. .  #--------------------------------------------------------------------------- bindir  = ../bin   #--------------------------------------------------------------------------- # machines (e.g. crays) have 128-bit double precision numbers, # twice precision required npb suite. compiler flag  # (e.g. -dp) can used change double precision variables # 64 bits, mpi library may continue send 128 bits. short of # recompiling mpi, solution use mpi_real send these 64-bit # numbers, , mpi_complex send complex counterparts. uncomment # following line enable substitution.  #  # note: if i/o benchmark being built, use convertflag #       specifiy fortran record length unit. system-specific #       value (usually 1 or 4). uncomment second line , substitute #       correct value "length". #       if both 128-bit double precision numbers , i/o enabled, #       uncomment third line , substitute correct value #       "length" #--------------------------------------------------------------------------- # convertflag   = -dconvertdouble # convertflag   = -dfortran_rec_size=length # convertflag   = -dconvertdouble -dfortran_rec_size=length   #--------------------------------------------------------------------------- # variable rand controls random number generator  # used. described in detail in readme.install.  # use "randi8" unless there reason use one.  # other allowed values "randi8_safe", "randdp" , "randdpvec" #--------------------------------------------------------------------------- rand   = randi8 # following highly reliable may slow: # rand   = randdp 

when try build let's ep benchmark make nprocs=8 ep class=c, 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 in case rm -f npbparams.h ../sys/setparams ep 8 c gfortran -c -i/share/apps/intel/impi/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 -lmpi ep.o: in function `main__': ep.f:(.text+0x31): undefined reference `mpi_init_' ep.f:(.text+0x4b): undefined reference `mpi_comm_rank_' ep.f:(.text+0x65): undefined reference `mpi_comm_size_' ep.f:(.text+0x347): undefined reference `mpi_abort_' ep.f:(.text+0x3df): undefined reference `mpi_barrier_' ep.f:(.text+0x803): undefined reference `mpi_allreduce_' ep.f:(.text+0x842): undefined reference `mpi_allreduce_' ep.f:(.text+0x879): undefined reference `mpi_allreduce_' ep.f:(.text+0x935): undefined reference `mpi_allreduce_' ep.f:(.text+0xc70): undefined reference `mpi_finalize_' ../common/timers.o: in function `timer_stop_': timers.f:(.text+0x27): undefined reference `mpi_wtime_' ../common/timers.o: in function `timer_start_': timers.f:(.text+0x57): undefined reference `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 please me in resolving issue?

thanks

if mpi library intel mpi, , built intel fortran compiler, you're going sad when try build mpi application gfortran.

for long time there no standard way call fortran symbols c. compilers put one, two, or 0 underscores on symbol.

you should build nas ifort

you might able make things work -fno-underscoring option , heed message gfortran man page:

note because names match not mean interface implemented gnu fortran external name matches interface implemented other language same name. is, getting code produced gnu fortran link code produced other compiler using or other method can small part of overall solution---getting code generated both compilers agree on issues other naming can require significant effort, and, unlike naming disagreements, linkers cannot detect disagreements in these other areas.


Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -