Linux与并行计算.ppt
Linux与并行计算,曙光信息产业(北京)有限公司技术支持中心戴荣2007年12月,主要内容,并行计算简介Linux与HPC搭建LinuxCluster小结,并行计算-高性能计算,并行计算(ParallelComputing)高性能计算(HighPerformanceComputing)并行计算,就是在并行机上所做的计算理论、实验与计算,被认为是人类认识自然的三大支柱。降低单个问题求解的时间提高问题求解精度增加问题求解规模无法替代的模拟计算,为什么要做并行计算?应用需求,并行计算机,并行计算机就是由多个处理单元组成的计算机系统,这些处理单元相互通信和协作以快速、高效求解大型复杂问题。,处理单元有多少处理单元的功能有多强处理单元之间怎样连接处理单元的数据如何传递各处理单元如何相互协作并行程序如何编写,并行计算机的发展,(1)并行机的萌芽阶段(1964-1975)(2)向量机/SMP的发展和鼎盛阶段(1976-1990)(3)MPP出现和蓬勃发展阶段(1990-1995)(4)Cluster出现,并成为并行计算机的主流(1995年后),并行计算机结构模型,各种架构对比,共享存储体系结构SMP瓶颈在访存带宽,限制了可扩展性(性能会严重下降),通过增大Cache来缓解,又有数据一致性的问题。DSM具有较好的可扩展性,且具有与SMP相同的编程模式。共享存储的机器可以运行各种编程模式的程序,包括串行程序、共享存储并行程序和消息传递并行程序。共享存储的机器首先可以看作是一个内存扩充了的串行机器,可以运行数据量极大的串行程序,如大数据量的数据库应用。利用多个处理器的并行处理性能,自动并行(靠编译器)作用有限,需要其他编程方式的应用,如OpenMP。,各种架构对比(续),分布式存储体系结构无共享的机器,MPP和Cluster,具有最好的可扩展性,采用消息传递编程,可编程性不如OpenMP,也可以通过DSM软件的方式来模拟实现共享存储(其实还是通过消息传递,只不过对上层通明),性能受到影响,但可以运行OpenMP应用程序。MPP/PVP在构造大规模系统,应用饱和性能方面具有优势,资金充足的依然会选择;Cluster由于无可比拟的性价比优势占据主流位置。更高的计算能力系统的高可用性良好的可扩展性更高的性价比,主要内容,并行计算简介Linux与HPC搭建LinuxCluster小结,www.top500.org,Linpack,Linpack是国际上流行的用于测试高性能计算机系统浮点性能的benchmark通过对高性能计算机求解线性代数方程组能力的测试,评价高性能计算机的浮点性能HPL(HighPerformanceLinpack)针对大规模的并行计算机系统的测试HPL版Linpack一般用于并行超级计算机用户可以选择矩阵的大小(问题规模)、使用各种优化方法来执行测试程序,寻求最佳的测试结果计算量(2/3*N32*N2)/计算时间lib.org/benchmark/hpl/,Linux在HPC领域的优势,硬件要求低并行代码多软件成本低开源工具多维护成本低可定制性好,Linux在HPC领域的劣势,发行版本太多推广普及不够,主要内容,并行计算简介Linux与HPC搭建LinuxCluster小结,集群系统体系结构,采用Linux来搭建集群系统,基本流程对头结点/管理结点操作系统安装集群服务配置对每个计算结点操作系统安装集群服务配置集群系统联调,Linux的七种武器,Linux的七种武器(RedHat)dd:操作系统克隆rsh:远程登录、执行mpich:并行编程和运行环境nfs:网络共享文件系统ntp:集群时间同步nis:集群帐号同步openpbs:作业调度系统,七种武器之一:dd,操作系统克隆echoscsiadd-single-device0010>/proc/scsi/scsiHost:scsi0Channel:00Id:01Lun:00ddif=/dev/sdaof=/dev/sdbbs=4096if:系统源盘of:系统镜像盘bs:块大小73GBSCSI硬盘17分钟要求源盘与镜像盘型号完全一致,七种武器之二:rsh,远程登录、执行实现节点之间的无密码切换打开服务rsh、rexec、rloginchkconfigrshonchkconfigrexeconchkconfigrloginon/etc/init.d/xinetdrestart将所有节点名加入/etc/hosts.equiv,对于root用户echorsh>>/etc/securettyechorexec>>/etc/securettyechorlogin>>/etc/securettycp/etc/hosts.equiv/root/.rhostsssh:更安全的remoteshell,七种武器之三:mpich,并行编程和运行环境并行编程标准多线程库标准Win32API.POSIXthreads.编译制导标准OpenMP可移植共享存储并行编程标准.消息传递库标准最重要的并行程序设计方式MPIPVM,mpich的安装tar-xzvfmpich-1.2.6.tar.gzcdmpich-1.2.6./configure-prefix=/usr/local/mpich-1.2.6makemakeinstall环境变量设置vi/etc/profile加入下面的行source/etc/profile,exportMPI_PATH=/usr/local/mpich-1.2.6exportPATH=$MPI_PATH/bin:$PATHexportMANPATH=$MPI_PATH/man:$MANPATH,MPICH的使用最简单MPI程序,#include#include"mpi.h“intmain(intargc,char*argv)MPI_Init(,MPI程序的编译mpicc-ohellohello.cMPI程序的运行mpirun-np4hellompirun-np8-machinefilemahello,七种武器之四:nfs,网络共享文件系统头节点1.打开nfs服务chkconfignfson/etc/init.d/nfsstart2.编辑/etc/exports假设将/public共享给其它节点不限制用户、可读写、信任客户端、先写入内存3.执行exportfs-a,共享/public目录执行exportfs,可以看到,/public*(rw,no_root_squash,async),/public,计算节点1.建/public目录mkdir/public2.手动挂载nfsmountserver:/public/public3.看mount情况4.开机自动挂载nfsechomountnode38:/public/public>>/etc/rc.local,七种武器之五:ntp,集群时间同步头节点1.设置系统时间date-s20071215date-s15:35hwclock-systohc2.修改/etc/ntp.conf文件vi/etc/ntp.conf3.打开ntp服务chkconfigntpdon/etc/init.d/ntpdstart,#-CLIENTNETWORK-restrict192.168.0.0mask255.255.255.0notrustnomodifynotrap,计算节点1.与头节点手动同步ntpdatenode1hwclock-systohc2.修改/etc/ntp.conf文件vi/etc/ntp.conf3.打开ntp服务chkconfigntpdon/etc/init.d/ntpdstart,#-OURTIMESERVERS-restrict192.168.0.1mask255.255.255.255nomodifynotrapnoqueryserver192.168.0.1,七种武器之六:nis,集群帐号同步头节点1.设定NIS域名nisdomainnamedawningechoNISDOMAIN=dawning>>/etc/sysconfig/network2.打开NIS服务chkconfigypservonchkconfigyppasswddon/etc/init.d/ypservstart/etc/init.d/yppasswddstart,3.初始化NIS数据库/var/lib64/yp/ypinit-m/etc/init.d/ypservrestart4.nfs共享头节点/home目录vi/etc/exportsexportfsa计算节点1.设定NIS域名nisdomainnamedawningechoNISDOMAIN=dawning>>/etc/sysconfig/network,/home*(rw,no_root_squash,async),2.打开NIS服务chkconfigypbindonchkconfigyppasswddon/etc/init.d/ypbindstart/etc/init.d/yppasswddstart3.使用头节点NIS数据库vi/etc/nsswitch4.挂载头节点/home目录mountnode1:/home/homeechomountnode1:/home/home>>/etc/rc.local,passwd:filesshadow:filesgroup:files,passwd:filesnisshadow:filesnisgroup:filesnis,5.测试NISyptest增加/删除/修改用户在头节点上用useradd/userdel/usermod重新生成NIS数据库/var/lib64/yp/ypinit-m/etc/init.d/ypservrestart修改用户密码不能使用passwd,而要使用yppasswd修改yp密码会改变系统密码修改系统密码却不改变yp密码,七种武器之七:openpbs,作业调度系统系统组成,安装解压源文件包tar-zxvfopenpbs-2.3.16.tar.gzcdOpenPBS_2.3.16编译设置./configure-disable-guienable-docs-set-server_home=/var/spool/pbs-x-libraries=/usr/X11R6/lib64编译安装makemakeinstall,配置系统配置文件/etc/pbs.conf系统启动脚本/etc/init.d/openpbsServer的系统启动脚本/etc/init.d/pbs_serverScheduler系统启动脚本/etc/init.d/pbs_schedMom系统启动脚本/etc/init.d/pbs_mom,头节点,计算节点,#!/bin/shpbs_home=/var/spool/pbspbs_exec=/usr/localstart_server=1start_sched=1start_mom=1,#!/bin/shpbs_home=/var/spool/pbspbs_exec=/usr/localstart_server=0start_sched=0start_mom=1,头节点初始化server:(第一次运行或者重新配置)/usr/local/sbin/pbs_servertcreateServer配置目录/var/spool/pbs/server_priv/节点属性声明:/var/spool/pbs/server_priv/nodes,node2R220Anp=2node3R220Anp=2node4dualcorenp=4node5dualcorenp=4node6R4280Anp=4node7R4280Anp=4,队列设置导入server配置文件:qmgrqueue.conf配置文件例子:,createqueuedefaultsetqueuedefaultqueue_type=executionsetqueuedefaultmax_running=20setqueuedefaultenabled=Truesetqueuedefaultstarted=Truesetserverscheduling=Truesetservermax_user_run=20setserverdefault_queue=defaultsetserverquery_other_jobs=True,计算节点mom配置目录:/var/spool/pbs/mom_priv/mom配置文件:/var/spool/pbs/mom_priv/config,#MOMserverconfigurationfile#ifmorethanonevalue,separateitbycomma.#ruleisdefinedbythename$ideal_load1.5$max_load2#hostallowedtoconnecttoMomserveronunprivilegedport$restricted*.#logevent:#0 x1fflogallevents+debugevents#0 x0ffjustallevents$logevent0 x0ff#hostallowedtoconnecttomomserveronprivilegedport$clienthostnode1#alarmifthescripthangortakeverylongtimetoexecute$prologalarm30,使用qsubjob.pbsqstat,#PBSNvasp.Hg#PBSlnodes=8:ppn=2echo"Thisjobsis"$PBS_JOBID$PBS_QUEUEcd$PBS_O_WORKDIRmpirun-np16-machinefile$PBS_NODEFILE./vasp,NPACIRocks,NationalPartnershipforAdvancedComputationalInfrastructure(NPACI)的Rocks软件,是和Linux操作系统捆绑的集成化的中间件系统,安装和管理都十分方便。http:/www.rocksclusters.org/NPACIRocks软件被广泛地应用于学术和政府机构,其中包括西北大学、西北太平洋国家实验室、斯坦福大学等。,RocksBasicApproach,InstallafrontendInsertRocksBaseCDInsertRollCDs(optionalcomponents)Answer7screensofconfigurationdataDrinkcoffee(takesabout30minutestoinstall)Installcomputenodes:LogintofrontendExecuteinsert-ethersBootcomputenodewithRocksBaseCD(orPXE)Insert-ethersdiscoversnodesGotostep3AdduseraccountsStartcomputing,OptionalRollsCondorGrid(basedonNMIR4)Intel(compilers)JavaSCE(developedinThailand)SunGridEnginePBS(developedinNorway)Area51(securitymonitoringtools)ManyOthers,Rocks的七种武器,Rocks的七种武器insert-ethers:操作系统快速部署cluster-fork:集群并行命令mpich/openmpi:并行编程和运行环境pvfs:并行文件系统ganglia:集群状态监控411:集群帐号同步sge/torque:作业调度系统,主要内容,并行计算简介Linux与HPC搭建LinuxCluster小结,小结,集群是高性能计算机的发展方向Linux在高性能计算机中大量采用配置LinuxCluster非常方便采用NPACIRocks可以大大减少工作量,Q&A,