[SCore-users-jp] NAS Parallel Benchmark Compile

Hayashi Masaki hayashi @ hpc.cs.ritsumei.ac.jp
2004年 1月 22日 (木) 06:38:49 JST


メーリングリストの皆様

立命館大学理工学研究科 M1の林と申します。
SCore上でNAS Parallel Benchmarkを動かしたく
コンパイルを試みているのですがうまくいかないので困っています。

NPBのバイナリーファイルはSCoreのCD-ROMに入っていることは
知っているのですが、PGIのコンパイラを使って
NPBをコンパイルしたいと思って頑張ってきましたが
どうもうまくいきません。
npbparams.hについておかしなログが出ています。(下にログ)

今回はNPB2.4をやっていますが、
NPB3.0のOpenMPのBenchmarkも動かしたいので、
そちらもご教授お願いいたします。

スレッド:[devel] [SCore-users-jp] NPBについ て
http://www.pccluster.org/pipermail/score-users-jp/2001-December/000002.html
[SCore-users-jp] NPB make.def について 
http://www.pccluster.org/pipermail/score-users-jp/2002-November/000841.html
以上の2つを参考にしてmake.defを変更してきました。

--
環境
PentiumIII 500MHz
メモリ 512M
Redhat 7.3 (kernel-2.4.18-3)
Compiler PGI、gcc


以下に、make.defとエラーログを載せます。
--------- make.def ---------
#---------------------------------------------------------------------------
#
#                SITE- AND/OR PLATFORM-SPECIFIC DEFINITIONS. 
#
#---------------------------------------------------------------------------

#---------------------------------------------------------------------------
# Items in this file will need to be changed for each platform.
# (Note these definitions are inconsistent with NPB2.1.)
#---------------------------------------------------------------------------

#---------------------------------------------------------------------------
# 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 = /opt/score/bin/mpif77
# This links MPI fortran programs; usually the same as ${MPIF77}
FLINK	= /opt/score/bin/mpif77

#---------------------------------------------------------------------------
# These macros are passed to the linker to help link with MPI correctly
#---------------------------------------------------------------------------
#FMPI_LIB  = -L/usr/local/lib -lmpi
FMPI_LIB  = -L/opt/score/mpi/mpich-1.2.5/i386-redhat7-linux2_4_pgi/lib -lmpi

#---------------------------------------------------------------------------
# These macros are passed to the compiler to help find 'mpif.h'
#---------------------------------------------------------------------------
#FMPI_INC = -I/usr/local/include
FMPI_INC = -I/opt/score/mpi/mpich-1.2.5/i386-redhat7-linux2_4_pgi/include

#---------------------------------------------------------------------------
# Global *compile time* flags for Fortran programs
#---------------------------------------------------------------------------
FFLAGS	= -compiler pgi -O3 
# FFLAGS = -g

#---------------------------------------------------------------------------
# Global *link time* flags. Flags for increasing maximum executable 
# size usually go here. 
#---------------------------------------------------------------------------
FLINKFLAGS =


#---------------------------------------------------------------------------
# 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 = /opt/score/bin/mpicc
# This links MPI C programs; usually the same as ${MPICC}
CLINK	= /opt/score/bin/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	= -O3 
# CFLAGS = -g

#---------------------------------------------------------------------------
# Global *link time* flags. Flags for increasing maximum executable 
# size usually go here. 
#---------------------------------------------------------------------------
CLINKFLAGS =


#---------------------------------------------------------------------------
# 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	= /opt/score/bin/mpicc


#---------------------------------------------------------------------------
# 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. IT IS A SYSTEM-SPECIFIC VALUE.
#       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 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



--------- Error Log ---------

   =========================================
   =      NAS Parallel Benchmarks 2.4      =
   =      MPI/F77/C                        =
   =========================================

cd EP; make NPROCS=16 CLASS=A
make[1]: Entering directory `/home/USERDIR/usr02/hayashi/program/NAS/NPB2.4/NPB2.4-MPI/EP'
make[2]: Entering directory `/home/USERDIR/usr02/hayashi/program/NAS/NPB2.4/NPB2.4-MPI/sys'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/home/USERDIR/usr02/hayashi/program/NAS/NPB2.4/NPB2.4-MPI/sys'
../sys/setparams ep 16 A 
make[1]: *** Warning: File `npbparams.h' has modification time in the future (2004-01-22 06:28:16 > 2004-01-22 06:28:05)
/opt/score/bin/mpif77 -c -I/opt/score/mpi/mpich-1.2.5/i386-redhat7-linux2_4_pgi/include -compiler pgi -O3  ep.f
/opt/score/bin/mpif77  -o ../bin/ep.A.16 ep.o ../common/print_results.o ../common/randdp.o ../common/timers.o -L/opt/score/mpi/mpich-1.2.5/i386-redhat7-linux2_4_pgi/lib -lmpi
ep.o: In function `MAIN_':
ep.o(.text+0x37): undefined reference to `mpi_init_'
ep.o(.text+0x56): undefined reference to `mpi_comm_rank_'
ep.o(.text+0x75): undefined reference to `mpi_comm_size_'
ep.o(.text+0xb9): undefined reference to `fio_src_info'
ep.o(.text+0xda): undefined reference to `fio_fmtw_init'
ep.o(.text+0xdf): undefined reference to `fio_fmtw_end'
ep.o(.text+0xfe): undefined reference to `fio_src_info'
ep.o(.text+0x114): undefined reference to `fio_encode_fmt'
ep.o(.text+0x13e): undefined reference to `fio_fmtw_intern_init'
ep.o(.text+0x165): undefined reference to `fio_sc_d_fmt_write'
ep.o(.text+0x16a): undefined reference to `fio_fmtw_end'
ep.o(.text+0x1b9): undefined reference to `fio_src_info'
ep.o(.text+0x1dc): undefined reference to `fio_fmtw_init'
ep.o(.text+0x20b): undefined reference to `fio_fmt_write'
ep.o(.text+0x210): undefined reference to `fio_fmtw_end'
ep.o(.text+0x22f): undefined reference to `fio_src_info'
ep.o(.text+0x250): undefined reference to `fio_fmtw_init'
ep.o(.text+0x277): undefined reference to `fio_sc_fmt_write'
ep.o(.text+0x27c): undefined reference to `fio_fmtw_end'
ep.o(.text+0x2e6): undefined reference to `fio_src_info'
ep.o(.text+0x309): undefined reference to `fio_fmtw_init'
ep.o(.text+0x330): undefined reference to `fio_sc_fmt_write'
ep.o(.text+0x356): undefined reference to `fio_sc_fmt_write'
ep.o(.text+0x35b): undefined reference to `fio_fmtw_end'
ep.o(.text+0x37a): undefined reference to `mpi_abort_'
ep.o(.text+0x386): undefined reference to `ftn_stop'
ep.o(.text+0x41c): undefined reference to `mpi_barrier_'
ep.o(.text+0x74f): undefined reference to `mpi_allreduce_'
ep.o(.text+0x796): undefined reference to `mpi_allreduce_'
ep.o(.text+0x7dd): undefined reference to `mpi_allreduce_'
ep.o(.text+0x893): undefined reference to `mpi_allreduce_'
ep.o(.text+0x938): undefined reference to `fio_src_info'
ep.o(.text+0x95b): undefined reference to `fio_fmtw_init'
ep.o(.text+0x982): undefined reference to `fio_sc_d_fmt_write'
ep.o(.text+0x9a8): undefined reference to `fio_sc_fmt_write'
ep.o(.text+0x9cf): undefined reference to `fio_sc_d_fmt_write'
ep.o(.text+0x9f6): undefined reference to `fio_sc_d_fmt_write'
ep.o(.text+0xa1d): undefined reference to `fio_sc_d_fmt_write'
ep.o(.text+0xa54): undefined reference to `fio_sc_fmt_write'
ep.o(.text+0xa7c): undefined reference to `fio_sc_d_fmt_write'
ep.o(.text+0xa85): undefined reference to `fio_fmtw_end'
ep.o(.text+0xba9): undefined reference to `mpi_finalize_'
../common/print_results.o: In function `print_results_':
../common/print_results.o: In function `print_results_':
../common/print_results.o(.text+0x3d): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x60): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x8d): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x92): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0xac): undefined reference to `fio_src_info'
../common/print_results.o(.text+0xcd): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0xf0): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0xf5): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x130): undefined reference to `ftn_strcmp'
../common/print_results.o(.text+0x152): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x168): undefined reference to `fio_encode_fmt'
../common/print_results.o(.text+0x192): undefined reference to `fio_fmtw_intern_init'
../common/print_results.o(.text+0x1a9): undefined reference to `__mth_i_dpowi'
../common/print_results.o(.text+0x1ca): undefined reference to `fio_sc_d_fmt_write'
../common/print_results.o(.text+0x1cf): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x220): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x243): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x272): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x277): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x298): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x2bb): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x2e1): undefined reference to `fio_sc_fmt_write'
../common/print_results.o(.text+0x2e6): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x30a): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x32d): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x353): undefined reference to `fio_sc_fmt_write'
../common/print_results.o(.text+0x379): undefined reference to `fio_sc_fmt_write'
../common/print_results.o(.text+0x39c): undefined reference to `fio_sc_fmt_write'
../common/print_results.o(.text+0x3a1): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x3c0): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x3e3): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x409): undefined reference to `fio_sc_fmt_write'
../common/print_results.o(.text+0x40e): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x42d): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x44e): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x474): undefined reference to `fio_sc_d_fmt_write'
../common/print_results.o(.text+0x479): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x493): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x4b4): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x4da): undefined reference to `fio_sc_fmt_write'
../common/print_results.o(.text+0x4df): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x4f9): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x51a): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x540): undefined reference to `fio_sc_fmt_write'
../common/print_results.o(.text+0x545): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x55f): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x580): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x5a6): undefined reference to `fio_sc_d_fmt_write'
../common/print_results.o(.text+0x5ab): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x5c5): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x5e6): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x611): undefined reference to `fio_sc_d_fmt_write'
../common/print_results.o(.text+0x616): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x630): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x651): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x679): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x67e): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x6a6): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x6c7): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x6f1): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x6f6): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x717): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x73a): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x769): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x76e): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x78d): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x7b0): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x7db): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x7e0): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x7ff): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x820): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x846): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x84b): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x865): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x886): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x8ac): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x8b1): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x8cb): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x8ec): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x912): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x917): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x931): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x952): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x978): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x97d): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x997): undefined reference to `fio_src_info'
../common/print_results.o(.text+0x9b8): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0x9de): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0x9e3): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0x9fd): undefined reference to `fio_src_info'
../common/print_results.o(.text+0xa1e): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0xa47): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0xa4c): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0xa66): undefined reference to `fio_src_info'
../common/print_results.o(.text+0xa87): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0xab0): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0xab5): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0xacf): undefined reference to `fio_src_info'
../common/print_results.o(.text+0xaf0): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0xb19): undefined reference to `fio_fmt_write'
../common/print_results.o(.text+0xb1e): undefined reference to `fio_fmtw_end'
../common/print_results.o(.text+0xb38): undefined reference to `fio_src_info'
../common/print_results.o(.text+0xb59): undefined reference to `fio_fmtw_init'
../common/print_results.o(.text+0xb5e): undefined reference to `fio_fmtw_end'
../common/timers.o: In function `timer_start_':
../common/timers.o(.text+0x34): undefined reference to `mpi_wtime_'
../common/timers.o: In function `timer_stop_':
../common/timers.o(.text+0x54): undefined reference to `mpi_wtime_'
/usr/lib/gcc-lib/i386-redhat-linux/2.96/libg2c.a(main.o): In function `main':
main.o(.text+0x2a): undefined reference to `MAIN__'
collect2: ld returned 1 exit status
make[1]: *** [../bin/ep.A.16] Error 1
make[1]: Leaving directory `/home/USERDIR/usr02/hayashi/program/NAS/NPB2.4/NPB2.4-MPI/EP'
make: *** [ep] Error 2


--
Ritsumeikan Univ. HPC Laboratory
Hayashi Masaki 
hayashi @ hpc.cs.ritsumei.ac.jp




SCore-users-jp メーリングリストの案内