中大理工学院hpc集群方案(编辑修改稿)内容摘要:

录解决问题的时间,在每个 HPL问题的解决步骤是相同的,一旦步骤相同只需要知道解决问题的时间就可以很容易的推出运算的能力。 HPL的测试值会受到很多因素的影响,但是主要的有两个因素,一是网络的性能,二是平均每个 CPU获得的内存大小。 (一般针对于SMP来说 ) HPL与其前辈不同,因为,使用者可以选择矩阵的规模(问题规模)。 对于最好的系统性能,目标是使用能与内存匹配的最大的问题规模。 为此,推荐接近内存总容量的 80%的问题规模。 如果问题规模 太大,则可能出现(与磁盘的)交换而显著降低性能。 使用基准测试一般需要和收集的信息包括: R: 它是系统的最大的理论峰值性能,按 GFLOPS表示。 如 10个 Pentium III CPU 的 Rpeak值。 N: 给出有最高 GFLOPS值的矩阵规模或问题规模。 正如拇指规则,对于最好的性能,此数一般不高于总内存的 80%。 Rmax: 在 Nmax规定的问题规模下,达到的最大 GFLOPS。 NB: 对于数据分配和计算粒度, HPL使用的块尺度 NB。 小心选择 NB尺度。 从数据分配的角度看,最小的 NB应是理想的;但太小 的 NB值也可以限制计算性能。 虽然最好值取决于系统的计算 /通信性能比,但有代表性的良好块规模是 32到 256个间隔。 11 / 23 MPBench 介绍 MPBench 主要是测试 MPI和 PVM消息传模块的效能 我们可以从这个测试中获得以下一些信息: 1. Bandwidth (BB/second) 带宽 2. Gap Time (time to launch a message and continue) (Us) MPI 间隔时间 3. Roundtrip or 2 * Latency (transactions/second) 往 返延迟 4. Asynchronous Bidirectional bandwidth (KB/second) 异步双向带宽 5. Broadcast (KB/second) 广播速率 6. Allreduce (KB/second) 测试系统最低点 7. AlltoAll (KB/second) 全对称带宽 在这个程序中又有七个子程式来完成不同的功能,以下我们就介绍以下这七个程式的功能: Bandwidth 这个程式主要通过一个 timer计数器和不停发送大小不同的包来测试我们的带宽。 在程式中使用了多次发送数据的方法来提高测试 的可信度,它有两重的循环,外层改变包的大小,内层使用多次发送来完成平均值的计算。 Bidirectional Bandwidth 这个程式用于点对点的带宽测试。 测试两端都使用 nonblocking的方式来接收(无阻塞方式)和发送。 在下一次重复发送数据之前程序会等待,直到这个循环完成才开始 次的循环。 通过多次的测试和改变包的大小我们就能得到平均数据,以便来反映端到端的带宽性能。 Roundtrip 这是一个类似于 pingpong的测试程式。 它使用的方法和 Bandwidth 很类似,唯一不同的是在Roundtrip中 slave进程收到消息后不再是发送 4个位的数据给 master,而是直接把接到的数据回传回去。 这种方式很适应于服务器和数据库的应用。 Application Latency 应用延迟测试和 Bandwith很类似,不同的是这里不回复 4个位的数据来表示自己接收到了数据,也不象 Roundtrip一样发送回原始数据,而是不做任何的反映,这样就测试出发送数据的延迟,也就是应用中发送一个数据包的延迟。 Broadcast and Reduce 这个程式使用广播的方式来工作。 它向每个节点发送一个数据镜像,我们可 以通过这个测试了解数据广播包的发送性能 AlltoAll 使用 Broadcast 方法来实现每个节点到每个结点之间的传送数据。 每次发送包的大小等于包的总大小除以我们 MPI进程的个数。 测试结果可以反映节点间大量数据分发时的性能。 AllReduce 这个程式是 AlltoAll 的一个衍生程式,每个节点都有到其它节点的数据,这样就很容易出现系统的瓶颈。 了解这个瓶颈有利于在设计 MPI程序时避免这些开销。 CacheBench 介绍 在我们程序当中经常会出现一些需要重复读写的数据,这些数据如果被放置在我们的 高速缓存中,程序在读取时就不需要很频繁的去读取内存数据,这样就减少了程序远行的时间。 高速缓存的大小对我们的性能是很总要的,所以在这里我们需要对我们的 Cache进行一个详细的测试。 在 LLCBench中它的 Cache测试程序叫做 CacheBench。 它的目标是获得系统的 Cache性能的最优参数。 并且得到不同编译器开关对我们系统 Cache的影响。 使用这些参数程序员可以有目的的修改自己的程序,以便能够在不同的环境下使系统的整体性能有所提高。 同样的 CacheBench也分 8个基本的测试,这些测试包括: 12 / 23 Cache Read 这个程式通过指定的循环来读取不同向量长度的包,以便测试出我们 Cache读取数据的带宽。 它通过读取 Cache中的数据到 register中 Cache Write 这个程式和 Read类似,它通过指定的循环写入不同向量长度的包,以便测试我们的 Cache写入数据的带宽。 它通过把 register 中数据写入 Cache中实现。 不同类型的储存子系统对这个测试结果的影响很大。 Cache Read/Modify/Write 这个程式也是反映在不同的循环中我们使用不同向量长度的包读 / 修改 /写的数据带宽。 在这个程式中 会有两次内存的操作,第一次是从 memory/cache 中读取我们的数据到 register 中,第二次是将register的数据写入到我们的 cache中。 Hand tuned Cache Read 和 CacheRead的使用方法类似,不过我们可以使用编译优化参数。 这些参数分别为: 1. Degree eight unroling 8 等级优化,每个循环使用 1个内存元素被使用 8个替代 2. Dependency analysis 相关性分析,操作中每个元素都是独立的 3. Register reuser 寄存器 重用,在任何时刻寄存器都可以重新使用 Hand tuned Cache Write 和 CacheWrite 的方法类似,可以使用上述的编译优化参数 Hand tuned Cache Read/Modify/Write 和 Cache Read/Modify/Write 类似,可以使用上述的编译优化参数 Memset() from C library 这是一个 C库的标准函数,它用于对内存区域的初始化。 这个函数经常被用到,甚至做到了硬件的支持。 这个测试主要是得到我们 C库中执行 Memset()函数的效能。 Memcpy() from C library 同样的,这是一个内存拷贝的程式,它也是一个标准的库,使用它我们可以获得在内存中做拷贝的效率。 这个函数也是经常需要使用的。 其中前面的 6个测试使用默认的双精度类型的数据作为基本的数据类型数组。 当然你也可以改变,你可以在 Makefile文件里面修改。 BLASBench 介绍 LLBench中的最后一个测试就是 BLASBench,它是一个测试基本线性代数子程序性能的基准测试。 数学库直接影响到我们的计算效能,这从上面的章节中已经可以看出。 BLAS中提供了基本的向量计算数学方法 ,其中就有向量与向量,向量与矩阵,矩阵与矩阵。 其中矩阵与矩阵已经在上面的 LinPach测试中看见了。 BLAS提供了标准的 API供 Fortran 或者是 C等语言调用。 我们测试的目的是估计出 BLAS程序的效能,并且再次的分析系统出现瓶颈时 Cache的效能。 BLASBench 有三个主要的测试项目,它们是: AXPY 向量相加评定 GEMV 矩阵与向量相乘评定 GEMM 矩阵与矩阵相乘评定 这些测试都可以选择使用双精度或者是单精度数据类型,这些都可以在 Makefile 里面定义。 BLASBech是使用 C语言来调用 BLAS(使用 Fortran 写的)的程序,并且它能够动态的分配我们的内存。 首先 BLASBech分配足够的内存来解决我们的问题规模,一旦内存分配完成就开始数组的初始化,最后循环的调用 BLAS进行计算。 在计算的过程中循环次数是动态的,它会根据当前的内存的状况来确定循环的次数。 具体的测试结果请参阅正特科技提交的测试报告 13 / 23 五 产品配置与报价 主节点服务器(五舟 HPC520R) 基本性能 处理器 标配两颗 ,支持双路英特尔 174。 Xeon™处理器 - 或更高,采用 800MHz 前端总线,支持 EM64T技术( 64 位内存扩展技术) 二级缓存 2MB 全速二级缓存,集成于 CPU内部 内存 标配 2GB 双通道 DDR2 RECC PC3200 内存 容量: 6 个或 8 个 DIMM插槽,支持高达 12 /16GB 内存寻址空间内存(支持 128MB到 2GB DIMM;内存必须成对安装) 集成双通道内存控制器,支持双路交叉存取模式,数据带宽高达 类型: 72 位 DDR2 533/400 ECC Registered SDRAM,240 针 DIMM插槽 单个 DIMM可支持容量: 128MB,256MB,512MB,1GB, 2GB ECC 错误探测功能:修正单位错误,探测双位错误 存储控制器 集成双通道 Ultra320 SCSI 控制器 , 内建 RAID0、 1 功能; 集成双通道 IDE 控制器 集成双通道 SATA150 控制器 , 内建 RAID0、 1 功能 RAID 控制器 可选高性能 Ultra320 SCSI RAID 卡,实现 RAID0/1/5/50 等高级 RAID应用 网络环境 集成两个 1000M 网卡(支持 10BASET、 100BASETX 和。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。