|
偶在作HPC高性能计算集群的测试, 需要安装HPL测试套间, ATLAS 3.7.3已经安装完成.现在要安装HPL了,但是需要先编写一个Makefile文件, HPL本身带了一些参考范例,但是我不清除具体需要改动哪些东西, 希望大家能帮帮忙.
我的硬件 P4 2.4G, 512DDR, ST40G.
我的ATLAS 的Make.Linux_P4:
Make.ARCH for ATLAS3.7.3
# -----------------------------
# ----------------------------------
# Make sure we get the correct shell
# ----------------------------------
SHELL = /bin/sh
# -------------------------------------------------
# Name indicating the platform to configure BLAS to
# -------------------------------------------------
ARCH = Linux_P4
# -------------------
# Various directories
# -------------------
TOPdir = /home/wjm/temp/ATLAS
INCdir = $(TOPdir)/include/$(ARCH)
SYSdir = $(TOPdir)/tune/sysinfo/$(ARCH)
GMMdir = $(TOPdir)/src/blas/gemm/$(ARCH)
UMMdir = $(GMMdir)
GMVdir = $(TOPdir)/src/blas/gemv/$(ARCH)
GR1dir = $(TOPdir)/src/blas/ger/$(ARCH)
L1Bdir = $(TOPdir)/src/blas/level1/$(ARCH)
L2Bdir = $(TOPdir)/src/blas/level2/$(ARCH)
L3Bdir = $(TOPdir)/src/blas/level3/$(ARCH)
TSTdir = $(TOPdir)/src/testing/$(ARCH)
AUXdir = $(TOPdir)/src/auxil/$(ARCH)
CBLdir = $(TOPdir)/interfaces/blas/C/src/$(ARCH)
FBLdir = $(TOPdir)/interfaces/blas/F77/src/$(ARCH)
BINdir = $(TOPdir)/bin/$(ARCH)
LIBdir = $(TOPdir)/lib/$(ARCH)
PTSdir = $(TOPdir)/src/pthreads
MMTdir = $(TOPdir)/tune/blas/gemm/$(ARCH)
MVTdir = $(TOPdir)/tune/blas/gemv/$(ARCH)
R1Tdir = $(TOPdir)/tune/blas/ger/$(ARCH)
L1Tdir = $(TOPdir)/tune/blas/level1/$(ARCH)
L3Tdir = $(TOPdir)/tune/blas/level3/$(ARCH)
#Name and location of scripts for running executables during tuning
# ---------------------------------------------------------------------
ATLRUN = $(BINdir)/ATLrun.sh
ATLFWAIT = $(BINdir)/xatlas_waitfile
# ---------------------
# Libraries to be built
# ---------------------
ATLASlib = $(LIBdir)/libatlas.a
CBLASlib = $(LIBdir)/libcblas.a
F77BLASlib = $(LIBdir)/libf77blas.a
LAPACKlib = $(LIBdir)/liblapack.a
# -------------------------------------------
# Upper bound on largest cache size, in bytes
# -------------------------------------------
L2SIZE = -DL2SIZE=524288
# ---------------------------------------
# Command setting up correct include path
# ---------------------------------------
INCLUDES = -I$(TOPdir)/include -I$(TOPdir)/include/$(ARCH) \
-I$(TOPdir)/include/contrib
# -------------------------------------------
# Defines for setting up F77/C interoperation
# -------------------------------------------
F2CDEFS = -DAdd__ -DStringSunStyle
# --------------------------------------
# Special defines for user-supplied GEMM
# --------------------------------------
UMMDEFS =
# ------------------------------
# Architecture identifying flags
# ------------------------------
ARCHDEFS = -DATL_OS_Linux -DATL_ARCH_P4 -DATL_SSE2 -DATL_SSE1 -DATL_GAS_x8632
# -------------------------------------------------------------------
# NM is the flag required to name a compiled object/executable
# OJ is the flag required to compile to object rather than executable
# These flags are used by all compilers.
# -------------------------------------------------------------------
NM = -o
OJ = -c
# ---------------------------------------------------------------------------
# Fortran 77 compiler and the flags to use. Presently, ATLAS does not itself
# use any Fortran 77, but vendor BLAS are typically written for Fortran, so
# any links that include non-ATLAS BLAS will use FLINKER instead of CLINKER
# ---------------------------------------------------------------------------
F77 = /usr/bin/g77
F77FLAGS = -fomit-frame-pointer -O
FLINKER = $(F77)
FLINKFLAGS = $(F77FLAGS)
FCLINKFLAGS = $(FLINKFLAGS)
# ---------------------------------------------------------------------------
# Various C compilers, and the linker to be used when we are not linking in
# non-ATLAS BLAS (which usually necessitate using the Fortran linker).
# The C compilers recognized by ATLAS are:
# CC : Compiler to use to compile regular, non-generated code
# MCC : Compiler to use to compile generated, highly-optimized code
# XCC : Compiler to be used on the compile engine of a cross-compiler
# These will typically all be the same. An example of where this is not
# the case would be DEC ALPHA 21164, where you want to use gcc for MCC,
# because DEC's cc does not allow the programmer access to all 32 floating
# point registers. However, on normal C code, DEC's cc produces much faster
# code than gcc, so you CC set to cc. Of course, any system where you are
# cross-compiling, you will need to set XCC differently than CC & MCC.
# ---------------------------------------------------------------------------
CDEFS = $(L2SIZE) $(INCLUDES) $(F2CDEFS) $(ARCHDEFS)
GCCdir = /usr/bin
GOODGCC = /usr/bin/gcc
CC = /usr/bin/gcc
CCFLAG0 = -fomit-frame-pointer -O3 -funroll-all-loops
CCFLAGS = $(CDEFS) $(CCFLAG0)
MCC = /usr/bin/gcc
MMFLAGS = -fomit-frame-pointer -O
XCC = /usr/bin/gcc
XCCFLAGS = $(CDEFS) -fomit-frame-pointer -O3 -funroll-all-loops
CLINKER = $(CC)
CLINKFLAGS = $(CCFLAGS)
BC = $(CC)
BCFLAGS = $(CCFLAGS)
ARCHIVER = ar
ARFLAGS = r
RANLIB = echo
# -------------------------------------
# tar, gzip, gunzip, and parallel make
# -------------------------------------
TAR = /bin/tar
GZIP = /bin/gzip
GUNZIP = /bin/gunzip
PMAKE = $(MAKE) -j 2
# ------------------------------------
# Reference and system libraries
# ------------------------------------
BLASlib =
FBLASlib =
FLAPACKlib =
LIBS = -lm
# ----------------------------------------------------------
# ATLAS install resources (include arch default directories)
# ----------------------------------------------------------
ARCHDEF = $(TOPdir)/CONFIG/ARCHS/P4SSE2/gcc/misc
MMDEF = $(TOPdir)/CONFIG/ARCHS/P4SSE2/gcc/gemm
INSTFLAGS =
# ---------------------------------------
# Generic targets needed by all makefiles
# ---------------------------------------
waitfile:
希望高手能帮忙把详悉的HPL的Makefile贴出来.
在线等~~~~~~ |
|