Presentation is loading. Please wait.

Presentation is loading. Please wait.

中科院昆明动物研究所培训 云南昆明 售前工程师:张希韬 TEL:

Similar presentations


Presentation on theme: "中科院昆明动物研究所培训 云南昆明 售前工程师:张希韬 TEL:"— Presentation transcript:

1 中科院昆明动物研究所培训 ---2008.11 云南昆明--- 8008100466 售前工程师:张希韬 TEL:13888565007
云南昆明 售前工程师:张希韬 TEL: Liuyi wangwei

2 1.曙光简介 2.高性能计算机基础 3.LINUX基础 4.高性能集群并行环境基础 5.机房现场介绍

3 1.曙光简介(见PPT)

4 2.高性能计算基础 2.1 什么是高性能并行计算机 由众多部件组成,具有运算速度快、存储容量大、可靠性高的特性。也称为:巨型计算机、超级计算机目前任何高性能计算和超级计算都离不开使用并行技术,所以高性能计算机肯定是并行计算机。

5 2.2高性能计算机的发展 􀁺专用时代 包括向量机,MPP系统,SGI NUMA 系统,SUN大型SMP系统,也包括我国的神威,银河,曙光1000,KJ。之所以称为“专用”,并不是说它们只能运行某种应用,是指它们的组成部件是专门设计的,它们的CPU板,内存板,I/O板,操作系统,甚至I/O系统,都是不能在其它系统中使用的。由于技术上桌面系统与高端系统的巨大差异,和用户群窄小。

6 普及时代 高性能计算机价格下降,应用门槛降低,应用开始普及。两个技术趋势起到重要作用。商品化趋势使得大量生产的商品部件接近了高性能计算机专有部件标准化趋势使得这些部件之间能够集成一个系统中,其中X86处理器、以太网、内存部件、Linux都起到决定性作用。机群系统是高性能计算机的一种,其技术基础和工业基础都是商品化和标准化。

7 2.3 流行的高性能计算机架构 􀁺并行向量机 􀁺SMP 􀁺DSM(NUMA) 􀁺MPP,节点可以是单处理器的节点,也可以是SMP,DSM
􀁺Cluster 􀁺混合架构

8 2.4 高性能计算市场竞争格局 HP IBM DELL 联想 SGI 曙光

9 三大厂商机架式服务器

10 三大厂商刀片式服务器

11 2.5 曙光高性能计算解决方案 PHPC 机架式集群 刀片式集群 二代小型机

12 机架式集群 应用领域–计算中心、CAE、计算化学、生物信息学等8-128节点应用 曙光方案
计算节点:A(I)610r-F、A(I)620r-F、A820r-F等 管理节点:A(I)620r-F、A(I)650r-F等 存储节点:A(I)620r-F、A(I)650r-F等 存储阵列:DS6310、DS8310、DS8340 计算网:H3C S5100/5600或Infiniband 管理网:H3C S5100或D-link 百兆、千兆交换机 管理软件:DCOS、DCAS 作业管理软件:OpenPBS、Torque、SGE或PBSPro 编译器:Intel、PGI

13 中小规模集群(8-64)

14 大规模集群(64-128)

15

16 刀片式集群 应用领域–计算中心、CAE、计算化学、生物信息学等8-512节点应用 曙光方案
计算节点:TC2600 Intel双路、AMD双路、AMD四路 管理节点:A(I)620r-F、A(I)650r-F等 存储节点:A(I)620r-F、A(I)650r-F等 存储阵列:DS6310、DS8310、DS8340 计算网:H3C S5100/5600或Infiniband 管理网:H3C S5100或D-link 百兆、千兆交换机 管理软件:DCOS、DCAS 作业管理软件:OpenPBS、Torque、SGE或PBSPro 编译器:Intel、PGI 刀片服务器方案优势 –大规模计算机群功耗、占地面积有明显降低,节能环保 –丰富的管理软件,提升系统易用性

17 刀片集群(64-256)

18 曙光5000系统 曙光5000的第一套系统于08年12月落户“上海超级计算中心”,系统峰值运算速度达到每秒230万亿次浮点运行(230TFLOPS),是目前国内速度最快的商用高性能计算机系统,这标志着中国成为继美国之后第二个能制造和应用超百万亿次商用高性能计算机的国家,也表明我国生产、应用、维护高性能计算机的能力达到世界先进水平 曙光5000是节点以刀片为主(刀片的CPU总数超过60个),集成GridView软件和曙光机柜的高性能计算机系统 曙光5000系统:􀁺 每机柜可达50片四路四核刀片(占用空间35U)􀁺 每机柜可达200CPU,800核的超高计算密度

19 曙光公司部分成功案例 中科院物理所 中科院力学所 中科院物数所 中国地质大学材化学院 中国地质大学数物学院 中科院长春应用化学所 云南大学
烟台师范大学物理系 华东理工大学 郑州大学材料物理实验室 武汉大学纳米设计实验室 武汉大学空间物理实验室 华中师范大学化学系 中山大学物理系 山东师范大学: 湘潭大学: 南京航空航天大学:

20 3.LINUX基础(见PPT)

21 4.高性能集群并行环境基础 并行编程标准 1.多线程库标准 2.编译制导标准 3.消息传递库标准 – Win32 API.
– POSIX threads. 2.编译制导标准 – OpenMP – 可移植共享存储并行编程标准. 3.消息传递库标准 – MPI – PVM

22 Massage Passing Interface:是消息传递函数库的标准规范.由MPI论坛开发.支持Fortran和C.
一种新的库描述, 不是一种语言. 发展的两个阶段 MPI 1.1: 1995 MPICH:是MPI最流行的非专利实现,由Argonne国家实验室和密西西比州立大学联合开发,具有更好的可移植性. MPI :动态进程, 并行 I/O, 支持F90和C++(1997).

23 消息传递并行程序设计 并行计算粒度大,特别适合于大规模可扩展并行算法 消息传递是当前并行计算领域的一个非常重要的并行程序设计方式
指用户必须通过显式地发送和接收消息来实现处理机间的数据交换。 在这种并行编程中,每个并行进程均有自己独立的地址空间,相互之间访问不能直接进行,必须通过显式的消息传递来实现。 这种编程方式是大规模并行处理机(MPP)和机群(Cluster)采用的主要编程方式。 并行计算粒度大,特别适合于大规模可扩展并行算法 由于消息传递程序设计要求用户很好地分解问题,组织不同进程间的数据交换,并行计算粒度大,特别适合于大规模可扩展并行算法. 消息传递是当前并行计算领域的一个非常重要的并行程序设计方式

24 为什么要用MPI? 高可移植性 MPI已在IBM PC机上、MS Windows上、所有主要的Unix工作站上和所有主流的并行机上得到实现。使用MPI作消息传递的C或Fortran并行程序可不加改变地运行在IBM PC、MS Windows、Unix工作站、以及各种并行机上。

25 PBS作业调度系统 PBS最初由NASA的Ames研究中心开发,为了提供一个能满足异构计算网络需要的软件包。它力求提供对批处理的初始化和调度执行的控制,允许作业在不同主机间的路由。

26 OpenPBS作业调度系统 组成 资源管理器:管理集群的硬件资源及认证信息等 队列管理器:管理当前所有已提交但还未完成的作业
调度器:为作业分配资源 作用 单一系统映象 机群松散的结构的整合 系统资源整合 异构系统的整合 多用户的管理 用户提交的任务的统一安排,避免冲突 用户权限的管理 非授权用户的控制

27 作业管理系统的结构

28 作业特性比较 系统特性 SGE LSF OPEN PBS PBS PRO 支持异构平台 Unix & NT,多硬件 仅Unix ,多硬件
用户操作接口 API/GUI/CLI/WEB,管理复杂 API/GUI/CLI/WEB,管理方便 API/GUI/CLI,功能少 API/GUI/CLI/WEB ,管理方便 支持DRMAA 支持 不支持 支持POSIX批处理API标准 源代码开放 开放 不开放 付费后开放 用户文档支持 非常详细 较简单 详细 支持批处理作业 支持交互式作业 支持海量作业组 支持并行作业 支持PVM/MPI 支持,功能强 支持,功能强大 支持,功能弱

29 队列管理、调度特性比较 系统特性 SGE LSF OPEN PBS PBS PRO 支持多队列调度 支持 支持作业控制 支持,功能完善
支持,功能简单 支持作业前置/后置脚本 标准调度算法 支持,2种算法 支持,6种算法 支持,多种算法 自定义调度算法 不开源,故不支持 使用外部调度器 高级资源预留 不支持 Backfill调度 从6.0起支持,但使用较复杂 算法支持,使用方便,且十分高效 支持抢占调度 支持共享调度 支持,且有专利的高效的竞标式算法

30 PBS 的组成 服务器:pbs_server 调度器:pbs_sched 执行器:pbs_mom 命令行:用户脚本,管理命令等

31 PBS 的基本原理

32 PBS的使用步骤 准备:编写描述改作业的脚本,包括作业名,需要的资源等。 提交:使用qsub命令将该作业提交给PBS服务器
排队:服务器将该任务排入适当的队列 调度:服务器检查各工作节点的状态是否符合该作业的要求,并进行调度。 执行:当条件满足时,作业被发给相应的执行服务器执行。程序运行时执行服务器会收集程序的标准输出和标准错误流,等程序结束时,将这些信息返回给用户。 查询和调整:当作业在运行时,用户可以使用qstat进行状态查询。用户发现作业提交错误时,可以使用qdel删除正在运行的作业。 查看结果:使用文本编辑软件vi或者系统命令cat, less等查看输出及错误信息显示。

33 PBS 的基本命令 [zhaocs@node1 ~]$ qsub <PBS作业脚本>
在PBS系统中,用户使用qsub 命令提交用户程序。用户运行程序的命令及PBS环境变量设置组成PBS作业脚本,作业脚本使用如下格式提交到PBS系统运行: ~]$ qsub <PBS作业脚本>

34 qsub运行参数 运 行 参 数 说 明 -a <作业开始运行的时间> 向PBS系统指定作业运行的开始时间。
说 明 -a <作业开始运行的时间> 向PBS系统指定作业运行的开始时间。 作业运行时间格式为: [[[[CC]YY]MM]DD]hhmm[.SS] -A <用户名> 使用不同的用户来提交作业,缺省使用当前用户名 -o <标准输出文件的路径> -e <标准错误输出的路径> 该参数指定标准错误输出的位置,缺省的情况下,PBS系统把标准输出和标准错误输出放在用户qsub命令提交作业的目录下。 标准错误输出:<作业名>.o<作业号> 标准错误输出:<作业名>.e<作业号> 路径使用如下格式标准: [<节点名>:]<路径名> -N <作业名> 指定提交的作业名 -q <目标队列> 指定作业提交的目标队列,其中目标队列可以是目标队列、目标节点名或者是目标节点上的队列。如果目标队列是一个路由队列,那么服务器可能把作业路由到新的队列中。如果该参数没有指定,命令qsub会把作业脚本提交到缺省的队列中。 -l <申请资源列表> 该参数指定作业脚本申请的PBS系统资源列表。 申请资源列表使用如下格式: <资源名>[=[<数量>]][,资源名[=[<数量>]], …..] 例如作业希望申请在双路节点上申请5个CPU资源的情况, 则可以在脚本中如下: #PBS –l nodes=2:ppn=2+:ppn=1

35 PBS 作业脚本 注释,以“#”开头 PBS指令,以“#PBS”开头 SHELL命令 #PBS –N vasp.Hg
#PBS –l nodes=8:ppn=2 echo "This jobs is cd $PBS_O_WORKDIR mpirun -np 16 -machinefile $PBS_NODEFILE ./vasp

36 PBS的环境变量 变 量 名 说 明 登陆SHELL继承来的变量
说 明 登陆SHELL继承来的变量 包括$HOME,$LANG,$LOGNAME,$PATH,$MAIL,$SHELL和$TZ。 $PBS_O_HOST qsub提交的节点名称 $PBS_O_QUEUE qsub提交的作业的最初队列名称 $PBS_O_WORKDIR qsub提交的作业的绝对路径 $PBS_JOBID 作业被PBS系统指定的作业号 $PBS_JOBNAME 用户指定的作业名,可以在作业提交的时候用qsub –N <作业名>指定,或者在PBS脚本中加入#PBS –N <作业名>。 $PBS_NODEFILE PBS系统指定的作业运行的节点名。该变量在并行机和机群中使用。当在PBS脚本中用#PBS –l nodes=2:ppn=2指定程序运行的节点数时,可以使用$PBS_NODEFILE在脚本中引用PBS系统指定的作业运行的节点名。比如: #PBS –l nodes=2:ppn=2 mpirun –np 4 –machinefile $PBS_NODEFILE <程序名> $PBS_QUEUE PBS脚本在执行时的队列名

37 PBS 作业脚本 注释,以“#”开头 PBS指令,以“#PBS”开头 SHELL命令 #PBS –N vasp.Hg
#PBS –l nodes=8:ppn=2 #PBS echo "This jobs is cd $PBS_O_WORKDIR mpirun -np 16 -machinefile $PBS_NODEFILE ./vasp 注释,以“#”开头 PBS指令,以“#PBS”开头 SHELL命令

38 PBS 作业脚本举例 # 这是一个串行作业脚本的例子 #PBS –N Loop.out #PBS –l nodes=1:ppn=1
cd /public/home/zhaocs/test/ ./a.out > $HOME/result/a.result # 这是一个并行作业脚本的例子 #PBS –N vasp.Hg #PBS –l nodes=8:ppn=2 #PBS echo "This jobs is cd $PBS_O_WORKDIR mpirun -np 16 -machinefile $PBS_NODEFILE ./vasp

39 一个复杂的PBS作业脚本 #!/bin/bash #PBS -N jobname #PBS -l nodes=4:ppn=2
cat `echo $PBS_NODEFILE` > $HOME/$PBS_JOBID.nodes for node in `cat $HOME/$PBS_JOBID.nodes` do rsh $node mkdir /tmp/$PBS_JOBID rsh $node cp -rf $PBS_O_WORKDIR/* /tmp/$PBS_JOBID/ done cd /tmp/$PBS_JOBID mpirun -np 8 -machinefile $PBS_NODEFILE $HOME/bin/vasp cp -rf /tmp/$PBS_JOBID/* $PBS_O_WORKDIR/ rsh $node rm -rf /tmp/$PBS_JOBID rm $HOME/$PBS_JOBID.nodes

40 查询和取消作业 [dawning@node1 ~]$ qstat @node1
Job id Name User Time Use S Queue 93.node test.pbs zhaocs R default 95.node vasp.Hg vasp E default 111.node structure amber Q default ~]$ qdel 93.node1

41 查询作业运行的位置 [zhaocs@node1 ~]$ pbsnode -a [zhaocs@node1 ~]$ qstat –f
~]$ qstat -r

42 错误处理 作业提交后处于排队状态 没有可用的节点,也就是节点资源被其他作业使用; 作业提交后异常结束 脚本文件使用的是windows格式
节点处于忙状态; 调度器失效; 指定的节点失效,或者节点上的mom失效 作业提交后异常结束 脚本文件使用的是windows格式 脚本中使用一些命令路径问题 脚本退出但是作业没有退出 用户使用的文件的权限问题 处理方法的原则是查看作业的标准输入和标准错误输出的结果

43 错误处理(续) 如果环境配置错误,可能导致作业反复在等待状态和运行状态转换,可以通过“qdel 作业号”将该作业删除再重新配置环境。
可能出现作业显示为运行状态,但是已经没有活动的进程,可通过“qsig –SIGNULL 作业号”通知server作业已经退出。 作业的输出无法传出,可能是以下原因造成: 目标主机不被信任,并且用户没有.rhost文件 指定了一个错误的路径名 指定的目标目录不可写 目标主机的用户.cshrc执行时产生了输出。 执行主机的PWS的spool目录没有使用正确的权限,这个目录必须使用1777权限(drwxrwxrwx)。

44 PBS的常用命令

45 提交作业 $ qsub test.pbs -l nodes=16 -l 用于描述作业需要的资源,例如:
nodes=4 (4 节点 每节点 1个 CPU ) nodes=2:ppn=2 (2节点 每节点 2个CPU) nodes=1:ppn=2+2:ppn=1 (1个双CPU节点 和 2个单CPU的节点)

46 当前任务状态 得到PBS的当前状态:qstat

47 当前节点状态 pbsnodes - {a|l }] [ -s server ]
-a 列出所有结点及其属性,属性包括“state”和“properties” -c 清除结点列表中的“offline”或“down”状态设置,使结点可以被分配给作业。 -l 以行的方式列出被标记的结点的状态 -o 将指定结点的状态标记为“offline”。这将帮助管理员暂时停止某些结点的服务。 -r 清除指定结点的“offline”状态 -s 指定服务器

48 当前节点状态 节点状态 节点名 CPU数

49 其他常用命令 qselect –q [队列名] qdel - Deletes a task in the queue.
qdel job_identifier ... qhold - Suspends a job in the queue. qhold job_identifier ... qrls - Reactivates a suspended job in the queue. qrls job_identifier ... qrerun 重新运作作业 qmove 目标队列 作业ID

50 OpenPBS服务器管理

51 PBS服务器管理命令

52 设置服务器级的访问控制 s s acl_host_enable=true 指明是否使用acl_hosts属性,缺省为false
s s acl_hosts+=hostname.domain 缺省值允许所有的主机 s s acl_user_enable=true s s

53 设置队列级的访问控制 s q qname acl_host_enable=true
s q qname acl_hosts+=hostname.domain s q qname acl_user_enable=true s q qname s q qname acl_group_enable=true s q qname acl_groups=group_name,[…] 缺省为允许所有组

54 设置服务器与队列的资源限制 服务器级 s s resources_default.resource_name=value 队列级
s q qname resources_default.resource_name=value

55 资源 作业执行中需要的东西。 例如:某个特定的节点、某个软件包,或者是CPU时间,内存等。
qsub –l cput=00:10:00 script

56 资源描述 cput 作业总共需要的CPU时间. file 作业要创建的文件大小. nice 作业优先级(nice值).
pcput 作业中单个进程需要的CPU时间. pmem 作业中单个进程需要的物理内存大小. pvmem 作业中单个进程需要的虚拟内存大小. vmem 作业总共需要的虚拟内存大小. walltime 作业运行的实际时间. arch 作业需要的系统体系结构. host 作业运行的节点名. nodes 作业运行需保留的节点数. other 其他资源. software 作业需要的软件报名称.

57 正在运行的作业数目限制 服务器级 队列级 s s max_running=value(最多正在运行作业的数目)
s s max_user_run=value(最多单个用户作业数目) s s max_group_run=value(最多单个组任何用户运行的作业数目) 队列级 s q qname max_running=value s q qname max_user_run=value s q qname max_group_run=value

58 PBS的图形界面

59 Xpbs主窗口 Xpbs主窗口主要有以下几个部分组成:菜单,主机,队列,作业和提示信息。其中菜单包括手工更新数据、自动更新数据、提交作业、跟踪作业、参数选择、关闭和帮助等。

60 PBS图形界面(xpbs)

61

62 Xpbsmon图形界面监控 Xpbsmon是PBS的节点监控的图形界面,可以直观的显示PBS所运行的系统环境中所有节点机的工作状态。
Xpbsmon的配置文件是$PBS_LIB/xpbsmon/xpbsmonrc和$HOME/.xpbsmonrc ($PBS_LIB默认/usr/lib,$HOME为/root)

63

64 (参考) Linpack测试介绍 Linpack是国际上最流行的用于测试高性能计算机系统浮点性能的benchmark。通过对高性能计算机采用高斯消元法求解一元N次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。Linpack测试包括三类,Linpack100、Linpack1000和HPL 。HPL是针对现代并行计算机提出的测试方式。用户在不修改任意测试程序的基础上,可以调节问题规模大小(矩阵大小)、使用CPU数目、使用各种优化方法等等来执行该测试程序,以获取最佳的性能。

65 Linpack测试步骤 1、编译器的安装 2、并行环境MPI的安装 3、BLAS库的安装 4、HPL的安装 5、运行的方式 6、查看结果

66 1、编译器的安装 常用的编译器有:GNU PGI Intel编译器
如果CPU是Intel的产品,最好使用Intel的编译器,它针对自己的产品做了一些优化,可能效果要好一些。 这里使用全安装方式下RedHat系统自带的GNU编译器。

67 2、并行环境MPI的安装 常用的MPI并行环境有:MPICH LAM-MPI openmpi Intel的MPI等。
如果CPU是Intel的产品,提议使用Intel的MPI。 这里使用MPICH 。 安装步骤: 本例中各软件安装在/dawn/test目录下

68 下载mpich.tar.gz拷贝到/dawn/test目录
#cd /dawn/test #tar zxvf mpich.tar.gz #cd mpich-1.2.7p1 #./configure --prefix=/dawn/test/mpich-gnu --cc=gcc --c++=g++ --fc=g77 #make #make install #vi ~/.bashrc文件

69 加入export PATH=/dawn/test/mpich-gnu/bin: $PATH
#source ~/.bashrc命令使PATH路径起作用。 #which mpirun,结果应为/dawn/test/mpich-gnu/bin/mpirun,说明PATH已被正确设置。 # vi /dawn/test/mpich-gnu/share/machines.LINUX 加入主机名称,运行第一种HPL用

70 3、BLAS库的安装 采用BLAS库的性能对最终测得的Linpack性能有密切的关系,常用的BLAS库有GOTO、Atlas、ACML、ESSL、MKL等,测试经验是GOTO库性能最优。 如果CPU是Intel的产品,建议使用MKL。 这里使用GOTO库。 安装步骤: 下载最新的源代码包GotoBLAS-1.13.tar.gz到/dawn/test目录下,此版本的已不需要补丁文件

71 #tar zxvf GotoBLAS-1.13.tar.gz,解压到GotoBLAS目录里面
#vi Makefile.rule,修改的模板如下: 1 # 2 # Beginning of user configuration 3 # 4 5 # This library's version 6 REVISION = -r1.13 7 8 # Which do you prefer to use for C compiler? Default is gcc. 9 # I recommend you to use GCC because inline assembler is required. 10 C_COMPILER = GNU 11 # C_COMPILER = INTEL 12 13 # Which do you prefer to use for Fortran compiler? Default is GNU g77.

72 14 F_COMPILER = G77 15 # F_COMPILER = G95 16 # F_COMPILER = GFORTRAN 17 # F_COMPILER = INTEL 18 # F_COMPILER = PGI 19 # F_COMPILER = PATHSCALE 20 # F_COMPILER = IBM 21 # F_COMPILER = COMPAQ 22 # F_COMPILER = SUN 23 # F_COMPILER = F2C 24 25 # If you need 64bit binary; some architecture can accept both 32bit and 26 # 64bit binary(EM64T, Opteron, SPARC and Power/PowerPC). 27 BINARY64 = 1 28 29 # If you want to build threaded version. 30 # You can specify number of threads by environment value

73 #make(编译静态库libgoto_opteronp-r1.13.a) #cd exports
31 # "OMP_NUM_THREADS", otherwise, it's automatically detected. 32 SMP = 1 33 34 # You may specify Maximum number of threads. It should be minimum. 35 # For OpenMP users; you have to specify MAX_THREADS even if you don't 36 # use threaded BLAS(MAX_THREADS >= OMP_NUM_THREADS * GOTO_NUM_THREADS) 37 MAX_THREADS = 8 55 # If you want to use memory affinity (NUMA) 56 # You can't use it with ALLOC_STATIC 57 # NUMA_AFFINITY = 1 #make(编译静态库libgoto_opteronp-r1.13.a) #cd exports #make so (编译动态库libgoto_opteronp-r1.13.so)

74 4、HPL的安装 下载hpl.tar拷贝到/dawn/test目录 # cd /dawn/test
# tar zxvf hpl.tgz (生成hpl目录) # cp hpl/ setup/Make.Linux_ATHLON_FBLAS ../Make.test. (因为使用fortran编译器所以选择FBLAS,Make.arch 为相近的系统即可,改名为了方便)

75 #vi Make.test修改相应的变量,模板如下:
60 # 61 # - Platform identifier 62 # 63 # 64 ARCH = test 把ARCH的值改为test,其原来的值是Linux_ATHLON_FBLAS 66 # 67 # - HPL Directory Structure / HPL library 68 # 69 # 70 TOPdir = /dawn/test/hpl 把第70行的TOPdir变量的值改为你的当前目录的绝对路径,可以用pwd来确定。接下来找到 77 # 78 # - Message Passing library (MPI)

76 79 # --------------------------------------------------------------------
80 # MPinc tells the C compiler where to find the Message Passing library 81 # header files, MPlib is defined to be the name of the library to be 82 # used. The variable MPdir is only used for defining MPinc and MPlib. 83 # 84 MPdir = /dawn/test/mpich-gnu 85 MPinc = -I$(MPdir)/include 86 MPlib = $(MPdir)/lib/libmpich.a 把84行的MPdir的路径改为刚才安装的mpich所在的目录绝对路径。其中第86行的libmpich.a是mpich-1.2.7p1的mpi消息传递库 找到 88 #

77 95 LAdir = /dawn/test/GotoBLAS 96 LAinc =
89 # - Linear Algebra library (BLAS or VSIPL) 90 # 91 # LAinc tells the C compiler where to find the Linear Algebra library 92 # header files, LAlib is defined to be the name of the library to be 93 # used. The variable LAdir is only used for defining LAinc and LAlib. 94 # 95 LAdir = /dawn/test/GotoBLAS 96 LAinc = 97 LAlib = /dawn/test/GotoBLAS/libgoto_opteronp-r1.13.a 把第97行的LAlib的值改为goto库所在的绝对路径。 找到 165 # 166 # - Compilers / linkers - Optimization flags 167 # 168 #

78 在/dawn/test/hpl/bin目录下生成一个test目录,这个目录下面应该有一个HPL.dat文件和xhpl文件。
169 CC = /dawn/test/mpich-gnu/bin/mpicc 170 CCNOOPT = $(HPL_DEFS) 171 CCFLAGS = $(HPL_DEFS) -fomit-frame-pointer -03-funroll-loops -W -Wall 172 # 173 # On some platforms, it is necessary to use the Fortran linker to find 174 # the Fortran internals used in the BLAS library. 175 # 176 LINKER = /dawn/test/mpich-gnu/bin/mpif77 #make arch=test 在/dawn/test/hpl/bin目录下生成一个test目录,这个目录下面应该有一个HPL.dat文件和xhpl文件。

79 如果没有这两个文件则说明make没有运行成功,常常是由于Make. test文件有错误造成,要修改Make
如果没有这两个文件则说明make没有运行成功,常常是由于Make.test文件有错误造成,要修改Make.test文件,使用一个新的后缀名(如test1),将ARCH变量也改为与新后缀名相同ARCH=test1,再次运行make命令时,arch=test1也要随之改变。 修改test目录下的hpl.dat文件: # vi /root/test/hpl/bin/test1/HPL.dat 一般每次测试都要修改第3-12行,修改原则如下:

80 第4行:如果希望结果输出到文件,此处设8. 第5行:计算的组数,
第3行:如果希望结果输出到文件,那么在这一行指定文件名称,这个文件会放在/test下。 第4行:如果希望结果输出到文件,此处设8. 第5行:计算的组数, 第6行:每组的规模。规模的最大取值根据公式N*N*8=内存容量*80%计算得出。例:对于内存是4G的平台,N*N*8= *80%,得出N=20000, 测试者希望本测试连续运行三次,则第五行设3,本行取小于等于20000的任意三个数字。

81 见下表: 第7、8行:这两个数字与库类型有关,如第7行设3,第八行就要将下表中的某个数字连写三遍,这个数字有一些经验值。 平台
L2 Cache 数 学库 NB Intel P4 Xeon L2:512KB ATLAS 400 MKL GOTO 384 192 AMD Opteron L2:1MB 232 Intel nocona 96

82 第10、11、12行:这三行是根据CPU数来设定的。P与Q相乘等于总CPU数,第10行为CPU总数所分的格数,也算就是集中方式得到CPU总数, 例如2cpu, 分2格,P=1时,Q=2; P=2时,Q=1。 一般来说,当Q取2,P取1时所测的结果不太好,所以往往只设P=1,Q=2.。这样则第10行设1,第11行设1,第12行设2。 上面未提到的各行按下例设置: HPLinpack benchmark input file Innovative Computing Laboratory, University of Tennessee

83 HPL.out output file name (if any)
device out (6=stdout,7=stderr,file) # of problems sizes (N) Ns # of NBs NBs PMAP process mapping (0=Row-,1=Column-major) # of process grids (P x Q) Ps Qs threshold # of panel fact 1 PFACTs (0=left, 1=Crout, 2=Right) # of recursive stopping criterium

84 4 NBMINs (>= 1) 1 # of panels in recursion 2 NDIVs
# of recursive panel fact. RFACTs (0=left, 1=Crout, 2=Right) # of broadcast BCASTs (0=1rg,1=1rM,2=2rg,3=2rM,4=Lng,5=LnM) # of lookahead depth DEPTHs (>=0) SWAP (0=bin-exch,1=long,2=mix) swapping threshold L1 in (0=transposed,1=no-transposed) form U in (0=transposed,1=no-transposed) form Equilibration (0=no,1=yes) memory alignment in double (> 0)

85 5、运行的方式 在/dawn/test/hpl/bin/test下执行
第一种方式:# mpirun –np N xhpl ( N 为进程数,取$(MPICH安装目录)/share/machines.LINUX配置文件) 第二种方式:#mpirun –p4pg <p4file> xhpl 需要自己编写配置文件《p4file》指定每个进程在哪个节点运行 下面是一个<p4file>的样例。 #vi p4file

86 gnode1 0 /dawn/test/hpl/test/bin/xhpl

87 6、查看结果 HPL允许一次顺序做多个不同配置测试,所以结果输出文件(缺省文件名为HPL.out)可能同时有多项测试结果。
下面是曙光4000A Linpack测试的最终结果 ==================================================== T/V N NB P Q Time Gflops —————— WC23C2C e+03 ||Ax-b||_oo / ( eps * ||A||_1 * N ) = PASSED ||Ax-b||_oo / ( eps * ||A||_1 * ||x||_1 ) = PASSED ||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) = PASSED

88 使用基准测试一般需要和收集的信息包括: R: 它是系统的最大的理论峰值性能,按GFLOPS表示。 理论浮点峰值=CPU主频×CPU每个时钟周期执行浮点运算的次数×系统中CPU核数

89 表1:CPU每个时钟周期执行浮点运算的次数
Flops/Cycle Itanium2 4 Opteron 2 Xeon(双核) Barcelona Xeon(四核) 例如:A610r-F有两片AMD Opteron Processor 2218 HE 其理论浮点峰值=2.6G*2*4=20.8GFlops/Cycle 其实测峰值=18.37GFlops/Cycle 所以其Linpack的利用率=18.37/20.8=89.3%

90 二、集群Linpack验收标准 表二:单节点Linpack测试的具体合格标准参照表 内存/core 单个节点的核数 1 cores
≤0.125G 55% 0.25G 65% 0.5G 70% ≥1 G 75%

91 表三:集群Linpack测试的具体标准参照表
每个core分配的内存 集群的总核数 ≤32cores 36-64 cores cores cores cores ≤0.125G 50%±5% 45%±5% 40%±5% 35%±5% 30%±5% 0.25G 55%±5% 0.5G 60%±5% ≥1G 65%±5% 备注:此表是适用于双核集群的测试标准,根据实际的测试经验,四核集群的标准值要低十个百分点左右。另外,为了减少工作量,建议每个集群规模不要多于16个节点。

92 三、集群Linpack测试脚本的使用说明
使用脚本程序测试Linpack要求集群节点序列号是连续的,所有节点的操作系统是统一的版本,并对集群的所有节点的/etc/hosts文件进行如下修改: localhost 百兆网卡的IP地址 bnodexx 千兆网卡的IP地址 nodexx 集群的所有节点的/etc/sysconfig/network文件中HOSTNAME=nodexx;并且rsh 配通。

93 集群配置RSH服务步骤: 启动rexec,rsh,rlogin服务 chkconfig rsh on chkconfig rexec on
chkconfig rlogin on 修改/etc/hosts文件,加入主机和IP的解析行. 如: node1 在root目录下建立.rhosts文件,写入主机名称.

94 修改/etc/pam.d目录下rlogin,rsh,login文件内容,把这三个文件中有scurity一词的行注释掉.
/etc/init.d/xinetd restart.验证RSH配置, 执行命令#rsh 主机名, 如果没有提示输入密码即可登陆说明配置成功. 以上步骤是在单机环境的安装方法,在多机环境下运行按下列配置,以主机名未A,B的两个节点为例:

95 先将A机器按以上方法配置完成再将B机器的RSH服务配置完成,注意要在AB两机上的/etc/hosts应为:
x.x.x.x A x.x.x.x.B root/.rhosts内容应为: A B

96 验证RSH:在A机执行RSH B,未提示输入口令即可登陆到B机,在B机执行RSH A,未提示输入口令即可登陆到A机。 或者执行命令:
# for i in `seq A B`;do rsh node$i hostname;done 如果返回集群的节点名序列则开通rsh成功。

97 谢谢!


Download ppt "中科院昆明动物研究所培训 云南昆明 售前工程师:张希韬 TEL:"

Similar presentations


Ads by Google