24小时热门版块排行榜    

CyRhmU.jpeg
南方科技大学公共卫生及应急管理学院2026级博士研究生招生报考通知(长期有效)
查看: 1020  |  回复: 0

[资源] 【原创】并行平台构建与管理[4]:并行测试 atlas+hpl 测试之安装(1)

经过几天的试验和努力,同时得到鸟哥的指点,终于装好了这个东西。为了不至于马上忘记,赶紧将如何安装记录下来,让更多的人掌握这个技术文档。同时在此非常感谢鸟哥(vbird)。
我们的平台:
AMD4000+
MPI1.4.7
PGI
1、到 https://sourceforge.net/project/showfiles.php?group_id=23725 下载 atlas3.6.0.tar.gz 文档
2、到 http://www.netlib.org/benchmark/hpl/index.html 下载 hpl.tgz 文档
3、在普通用户下用命令 tar -zxvf **将两个文件解压,就会看见ATLAS和hpl两个文件夹。
4、现安装atlas,进入ATLAS,用make config CC=/usr/mpich/bin/mpicc(CC所等的是编译器地址,各台机器不尽相同,我试了gcc好像不行),然后会出一些选择,一般默认即可,注意architecture这里的多少位的选择,一般先在新出的大多为64位的。我的是64位,architecture用默认的Linux_HAMMER64SSE2_2。
5、然后就对Make..Linux_HAMMER64SSE2_2作一定的修改,主要是对编译器路径的修改,见附件。
6、修改好以后,make install arch=Linux_HAMMER64SSE2_2,一般就会成功。如果失败,建议删除整个ATLAS,再从头来,每一步都要更仔细就好,多试几下是有好处的。

附录:
#  -----------------------------
#  Make.ARCH for ATLAS3.6.0
#  -----------------------------

#  ----------------------------------
#  Make sure we get the correct shell
#  ----------------------------------
   SHELL = /bin/sh

#  -------------------------------------------------
#  Name indicating the platform to configure BLAS to
#  -------------------------------------------------
   ARCH = Linux_HAMMER64SSE2_2

#  -------------------
#  Various directories
#  -------------------
   TOPdir = /home/tfbao/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
   PTCBLASlib = $(LIBdir)/libptcblas.a
   PTF77BLASlib = $(LIBdir)/libptf77blas.a
   LAPACKlib = $(LIBdir)/liblapack.a

   TESTlib = $(LIBdir)/libtstatlas.a
#  -------------------------------------------
#  Upper bound on largest cache size, in bytes
#  -------------------------------------------
   L2SIZE = -DL2SIZE=1048576

#  ---------------------------------------
#  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_HAMMER64 -DATL_SSE2 -DATL_SSE1 -DATL_GAS_x8664 -m64

#  -------------------------------------------------------------------
#  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/mpich/bin/mpif77
   F77FLAGS = -fomit-frame-pointer -O -m64
   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) -DATL_NCPU=2

   GCCdir = /usr/bin
   GOODGCC = /usr/mpich/bin/mpicc
   CC = /usr/mpich/bin/mpicc
   CCFLAG0 = -fomit-frame-pointer -O -mfpmath=387 -m64
   CCFLAGS = $(CDEFS) $(CCFLAG0)
   MCC = /usr/mpich/bin/mpicc
   MMFLAGS = -fomit-frame-pointer -O -mfpmath=387 -m64
   XCC = /usr/mpich/bin/mpicc
   XCCFLAGS = $(CDEFS) -fomit-frame-pointer -O -mfpmath=387 -m64
   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 = -lpthread -lm

#  ----------------------------------------------------------
#  ATLAS install resources (include arch default directories)
#  ----------------------------------------------------------
   ARCHDEF = $(TOPdir)/CONFIG/ARCHS/HAMMER64SSE2/gcc/misc
   MMDEF = $(TOPdir)/CONFIG/ARCHS/HAMMER64SSE2/gcc/gemm
   INSTFLAGS =

#  ---------------------------------------
#  Generic targets needed by all makefiles
#  ---------------------------------------
waitfile:
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

相关版块跳转 我要订阅楼主 onesupeng 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见