Re: upc-benchmark

From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Thu Nov 20 2008 - 10:35:54 PST

  • Next message: Β¬ΠΛΎ΄: "about upc-benchmark"
    To follow up on Yili's suggestions, I'd recommend modifying sys/Makefile
    to use $(CC), rather than $(UCC) to compile and link setparams.
    I am not sure which version of the NPB benchmarks you have, but you
    might be able to resolve your problem with
    make clean
    make HOST_CC=gcc
    If using the copy of the NPBs shipped with the Berkeley UPC compiler,
    this will ensure setparams is built with gcc, rather than upcc.
    
    -Paul
    
    Yili Zheng wrote:
    > Hi, here is my answer to your question.
    >
    > ../sys/setparams was compiled for 4 static threads by the UPC compiler
    > (upcc) because of the "-T ${NP}" compiler flag in your makefile.  But
    > "../sys/setparams cg S 4" tried to run with only 1 thread because it
    > didn't use the upcrun command.  The thread count mismatch caused the UPC
    > runtime library to report the error.
    >
    > Because setparams doesn't need to run in parallel, you may compile it
    > with a regular C compiler and run it in serial.
    >
    > You may find the information about building setparams in the makefile
    > "sys/make.common".
    > setparams is compiled/linked by $(UCC) which is defined in make.def as
    > the following:
    > UCC     = upcc -T ${NP} -O -network=mpi -Wc,-g
    >
    > The quick fix is to use the regular C compiler for building the NPB
    > utilities.  You may try the following in your make.def:
    > UCC = gcc -g    ## or any other compatible C compiler such as icc.
    >
    > Regards,
    > Yili
    >
    > luxingjing wrote:
    >   
    >>  
    >>
    >> Hi,
    >>
    >>   The platform is DSMP, and the conduit is mpi, the make.def under the 
    >> dirction of config is:
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # This is the UPC compiler used for UPC programs
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> CC = upcc
    >>
    >> # This links C programs; usually the same as ${CC}
    >>
    >> CLINK   = upcc
    >>
    >>  
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # These macros are passed to the linker
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> C_LIB  = -lm -T ${NP} -network=mpi
    >>
    >>  
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # These macros are passed to the compiler
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> C_INC = -I../common
    >>
    >>  
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # Global *compile time* flags for C programs
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> CFLAGS  = -T ${NP} -O -network=mpi -Wc,-g
    >>
    >>  
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # Global *link time* flags. Flags for increasing maximum executable
    >>
    >> # size usually go here.
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> CLINKFLAGS =
    >>
    >>  
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # 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.
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> UCC     = upcc -T ${NP} -O -network=mpi -Wc,-g
    >>
    >>  
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # Destination of executables, relative to subdirs of the main directory. .
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> BINDIR  = ../bin
    >>
    >>  
    >>
    >>  
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # The variable RAND controls which random number generator
    >>
    >> # is used. It is described in detail in Doc/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
    >>
    >>  
    >>
    >>  
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # The variable WTIME is the name of the wtime source code module in the
    >>
    >> # NPB2.x/common directory.
    >>
    >> # For most machines,       use wtime.c
    >>
    >> # For SGI power challenge: use wtime_sgi64.c
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> WTIME  = wtime.c
    >>
    >>  
    >>
    >>  
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # Enable if either Cray or IBM:
    >>
    >> # (no such flag for most machines: see common/wtime.h)
    >>
    >> # This is used by the C compiler to pass the machine name to common/wtime.h,
    >>
    >> # where the C/Fortran binding interface format is determined
    >>
    >> #---------------------------------------------------------------------------
    >>
    >> # MACHINE       =       -DCRAY
    >>
    >> # MACHINE       =       -DIBM
    >>
    >>  
    >>
    >>  
    >>
    >> But some erros show below:
    >>
    >>  
    >>
    >> autopar@gnode10:~/lxj/NPB-UPC-110404/CG> make CLASS=S NP=4
    >>
    >> gmake[1]: Entering directory `/bwdata/autopar/lxj/NPB-UPC-110404/sys'
    >>
    >> o setparams setparams.c -lm
    >>
    >> gmake[1]: o: Command not found
    >>
    >> gmake[1]: [setparams] Error 127 (ignored)
    >>
    >> gmake[1]: Leaving directory `/bwdata/autopar/lxj/NPB-UPC-110404/sys'
    >>
    >> ../sys/setparams cg S 4
    >>
    >> UPC Runtime error: program was compiled with 4 static threads, but 
    >> executed with 1 threads.
    >>
    >> NOTICE: Before reporting bugs, run with GASNET_BACKTRACE=1 in the 
    >> environment to generate a backtrace.
    >>
    >> make: *** [config] Error 255
    >>
    >>  
    >>
    >>  
    >>
    >> what it mean? 
    >>
    >>  Yours Eric.Lew
    >>
    >>  
    >>
    >>  
    >>
    >>  
    >>
    >>     
    
    
    -- 
    Paul H. Hargrove                          PHHargrove_at_lbl_dot_gov
    Future Technologies Group                 Tel: +1-510-495-2352
    HPC Research Department                   Fax: +1-510-486-6900
    Lawrence Berkeley National Laboratory     
    

  • Next message: Β¬ΠΛΎ΄: "about upc-benchmark"