1.首先要确定硬件部件和所需要的资源
需要一个头节点(head node),至少一打的计算节点(compute node),一台以太网交换机,一个电源分配单元(power distribution unit)和一个服务器机架。计算一下电力消耗,冷却需求和占地需求。同样,你需要确定你的私有网络的IP地址段,节点的命名,预计使用的软件包以及搭建 服务集群所用的技术(后面会有更多解释)。
2.建立计算节点
需要自己组装计算节点,或者你也可以使用预配置的服务器。
●选择一款能够最大化空间、冷却和能源消耗效率的机架式服务器;
●或者,可以使用一打左右闲置的过时服务器——它们集合在一起工作的性能要比它们独立运行时的总和还多,而且还能省你一大笔钱!整个系统的处理器、网络适配器、主板应该是同一型号的,这样才能达到最佳运行效能。当然了,还要给每个节点配内存和硬盘,并且至少给头节点配一台光驱。
3.将服务器装在机架上
安装的时候从下面开始,这样可以避免机架头重脚轻。你可能会需要朋友的帮助才能完成这件事——这么多的服务器将非常的重,把它们放到机架的滑轨上会非常困难。
4.在机架顶端安装以太网交换机
现在来配置交换机:允许9000字节的大的帧,将IP地址设置为你在第一步里面确定的静态地址,关闭例如SMTP嗅探这样不必要的路由协议。
5.安装能源分配单元
根据目前你的节点的最大需求,可能220V就能满足你的高性能计算需求了。
6. 一切都安装妥当之后,就可以开始配置环节了
Linux是高性能计算集群(HPC Cluster) *** 作系统的事实标准,这不仅因为Linux是科学计算的理想环境,也是由于在数以百计甚至千计的节点上安装的时候,Linux不会产生任何花费。设想一下,在如此多的节点上安装Windows会花掉你多少钱呢?
●从更新主板BIOS的固件开始,将所有节点的BIOS固件都更新至最新的版本;
●在每个节点上都安装好你喜欢的Linux发行版,头节点需要安装队图形界面的支持。比较流行的选择,包括CentOS、OpenSuse、Scientific Linux、RedHat以及SLES;
●使用Rocks Cluster Distribution来搭建计算集群。除了它已经安装好计算集群需要使用的所有工具外,Rock还提供了一种通过PXE和RedHat的“Kick Start”来进行批量部署的方案。
7. 安装消息传送界面、资源管理器以及其他必须的库
如果上一步里你没有选择Rock做为你的节点的 *** 作系统,那么现在你需要手动设置并行计算机制所必需的软件。
●首先,你需要一个便携的bash管理系统,例如Torque Resource Manager,这些软件允许你划分以及分配计算任务;
●如果安装了Torque Resource Manager,那么你还需要Maui Cluster Scheduler来完成设置;
●其次,需要安装消息传送界面(message passing interface),用来在不同的计算节点的进程之间共享数据。
最后,不要忘了用多线程的数学库及编译器来编写计算任务。
8.将所有的计算节点接入网络
头节点负责将任务分配到计算节点,计算节点再把结果返回回来,节点间的消息传递也是如此,所以当然是越快越好了。
●使用私有网络将集群中的所有节点互联起来;
●头节点其实还充当局域网里的NFS、PXE、DHCP以及NTP服务器;
●将该网络从公网中分离出来,这样可以保证该网络中的广播报文不会影响到其他的网络;
9.对集群进行测试
在你把你强大的Top500计算集群交付给客户之前,你还要测试一下它的性能。HPL(High Performance Lynpack)评测软件包是测试集群的计算速度的常见选择。你需要从源代码编译它,编译的时候根据你选择的架构,打开所有可能的优化选项。
一、Linpack简介Linpack是国际上最流行的用于测试高性能计算机系统浮点性能的benchmark。通过对高性能计算机采用高斯消元法求解一元N次稠密线性代数方程组的测试,评价高性能计算机的浮点性能。Performance Linpack,也叫高度并行计算基准测试,它对数组大小N没有限制,求解问题的规模可以改变,除基本算法(计算量)不可改变外,可以采用其它任何优化方法。前两种测试运行规模较小,已不是很适合现代计算机的发展。HPL 是针对现代并行计算机提出的测试方式。用户在不修改任意测试程序的基础上,可以调节问题规模大小(矩阵大小)、使用CPU数目、使用各种优化方法等等来执 行该测试程序,以获取最佳的性能。HPL采用高斯消元法求解线性方程组。求解问题规模为N时,浮点运算次数为(2/3 * N^3-2*N^2)。因此,只要给出问题规模N,测得系统计算时间T,峰值=计算量(2/3 * N^3-2*N^2)/计算时间T,测试结果以浮点运算每秒(Flops)给出。HPL测试结果是TOP500排名的重要依据。二、Linpack安装与测试1. Linpack安装条件:在安装HPL之前,系统中必须已经安装了编译器、并行环境MPI以及基本线性代数子方程(BLAS)或矢量图形信号处理库(VSIPL)两者之一。在Ubuntu下,使用apt-get安装gfortran,mpich2,每个计算节点都需要安装安装完后,可先使用mpicc编译helloworld验证mpi集群是否工作正常hpl linpack缺省配置是使用atlas的库,所以这里我们安装ATLAS参考http://blog.sina.com.cn/s/blog_708532ea0100m8nt.html根据atlas的安装文档, 首先要switch off cpu throttling.首先安装cpufrequtils和cpufreqd这两个包, 也许还要安装powernowd包从http://sourceforge.net/projects/math-atlas/files/下载atlascd ATLASmkdir buildcd build../configuremake编译没有问题的话会在lib目录下生成几个静态库2. 安装与编译Linpack:第一步,从www.netlib.org/benchmark/hpl 网站上下载HPL包hpl.tar.gz并解包cd hpl-2.1cp setup/Make.Linux_PII_CBLAS_gm Make.x86_64vi Make.x86_64修改下列配置:ARCH = x86_64TOPdir = $(HOME)/projects/hpl-2.1LAdir= $(HOME)/projects/ATLAS/build/libLAinc=LAlib= $(LAdir)/libcblas.a $(LAdir)/libatlas.a然后开始编译:make arch=x86_64如果出现符号找不到的问题,请检查LAlib的库的位置cd bin/x86_64在这个目录下生成了两个文件, HPL.dat是linpack计算的配置文件, xhpl是测试程序这里有关于HPL.dat的配置说明: http://blog.csdn.net/yosoqoo/article/details/3563349其中几个重要的参数(必须针对集群环境修改)1# 表示只做一次计算,使用下面的第一个数100000 30 34 35 Ns #矩阵大小,为了测试性能,一般取N*N*8 ~ 内存总量,集群时考虑总内存量1# of NBs192 2 3 4 NBs #分块大小,经验值1924 1 4Ps # PxQ 应该等于整个集群的进程数,一般等于cpu核数16 4 1Qs # P 一般<=Q如果是单机,可以运行mpiexec -n 64 ./xhpl来看一下是否工作正常。对于集群,首先需要保证所有机器的可以相互使用ssh无密码登录(比如要从s1登录到s2,需要把s1上的.ssh/id_rsa.pub内容拷贝到s2的.ssh/authorized_keys里。然后创建mpi_hosts文件,内容就是集群内各机器名称,每个机器一行。在每个机器上,都需要有相同的用户,以及同样的hpl-2.1路径和文件HPL.data,xhpl程序运行mpiexec -n 64 -f mpi_hosts, ./xhpl注意:1. 矩阵不能太小,要保证矩阵数据可以占用大量内存,运行时可以free来查看内存使用量,用top,然后按1来查看cpu每个核的使用情况2. 节点间数据传输量比较大,应该使用万兆网络,否则网络会成为瓶颈。3.本文只是为了验证,并不是为了优化benchmark。如果要达到更好的benchmark数值,应该使用优化的blas库,比如intel的mkl。intel的mkl本身就带了linpack测试程序欢迎分享,转载请注明来源:内存溢出
评论列表(0条)