分布并行计算机技术课程论文1.针对12306.cn网站的特点,给出满足该应用需求的设计方案。要求至少包括:体系结构、核心硬件及数量、互联网络、作业调度方法、系统管理方法等设计方案及其分析,说明你的方案能否满足应用需求。答:123063.cn订票网站具有分时段、分区域、高并发等特点,官方公布日均PV达10亿,在高峰时段有千万PV的访问量.如何确保在高峰时段正常提供服务是一个非常大的挑战,放眼春运期间网上订票系统,表现为页面访问延时大、登录异常、支付失败等问题。根据以上特点提出如下设计方案:(1)体系结构采用大规模并行处理系统,由成百上千计算节点组成并行处理计算机系统,每个计算节点配置一个或多个处理器,各个节点相对独立,有各自独立的内存模块和操作系统。用交换机组成一个三维双向环网互联,每个三维网络连接多个节点,三维网络之间用以千兆还通道构建的核心网络连接,核心网络同时连接外设及互联网。图1体系结构如上图1通过云计算平台虚拟化技术,将若干X86服务器的内存集中起来,组成最高可达数十TB的内存资源池,将全部数据加载到内存中,进行内存计算。计算过程本身不需要读写磁盘,只是定期将数据同步或异步方式写到磁盘。在分布式集群中保存了多份数据,任何一台机器故障,其它机器上还有备份数据,因此通常不用担心数据丢失,而且有磁盘数据作为备份。同时把内存数据持久化到各种传统的关系数据库、Hadoop库和其它文件系统中。(2)核心硬件及数量按照计算需求采用共计15个计算节点,每节点配备一颗XeonE512核心的中央处理器,总共180个核心。中央处理器为英特尔提供的,运作时钟频率为2.2GHz的XeonE5-2692v212核心处理器,基于英特尔IvyBridge微架构(IvyBridge-EX核心),采用22纳米制程,峰值性能0.2112TFLOPS。每个节点拥有1TB内存,总内存为10TB。(2)互联网络互联网络分节点内部的通信和节点之间的互联两部分。1)节点内部的通信在节点内部使用总线和共享存储器进行信息的交换。在64G的公共内存中划出一块公共的通信缓冲区,在这个缓冲区内维持1个消息队列,分别对应于每个CPU。每个原件以固定的周期查询自己的消息队列,来检查是否有传递给自己的消息;每个器件于其他器件通信时将消息放入相应的消息队列即可。2)节点之间的互联节点之间的互联网络采用千兆以太网相互连通,每个节点上安置一个网卡。核心网络使用以太网交换机连成多个三维立方结构(图2所示),但不仅局限于8个节点。、图2交换机之间的立方体结构每台交换机和若干个节点相连(图3所示),若干立方体之间使用路由器连接,路由器之间形成最核心的网络(图4所示)。即每个交换机组成的立方体相当于一个局域网,路由器负责连接不同的局域网。节点的地址使用网卡的硬件地址。路由器中的路由表采用完全自适应算法,动态的添加和修改路由表。交换机图3交换机与节点之间的链接图5路由器之间的核心网络(3)作业调度作业调度按照先来先服务的原则,在节点中选取满足作业所需资源的节点分配给作业,如果该节点的负载大于最大负载,则此节点此时不再分配作业,如果该节点的负载小于最小负载,则将作业分配给此节点,最大负载与最小负载阈值设定可以根据系统管理员经验值所得,节点的最小负载保证队列中所有作业在此负载的节点上可以执行。如果此节点的负载在最大负载与最小负载之间,则根据节点上最长作业的结束时间为依据,找出作业结束时间最早的节点,将作业派发到该节点。该调度算法可以有效地避免系统中出现节点负载过重或过轻的情况,提高系统负载均衡效率。(4)系统管理方法1.岗位管理(1)高性能与网格计算平台现场维护工作包括系统平台维护、应用维护、网络设备维护、平台监控、安全管理、客户综合服务等方面。维护人员应具备服务器、网络设备、数据库、操作系统、应用软件、计算机安全等维护技能,具备较强的故障及应急处理能力。(2)高性能与网格计算平台岗位采用岗位人员后备制度:一个岗位配备两名以上系统管理员,一个管理员主要负责平台日常的管理工作,其他管理员(助理管理员)应掌握平台情况和管理知识,并在主要管理员外出的时候担负管理平台的职责。高性能与网格计算平台重大故障恢复或配置变更操作必须在两名以上管理员在场的情况下才能进行。(3)平台环境的运行维护,必须保证节点7×24小时在线,保证应用系统资源的正常运行。维护人员应该确保在5x8或7x24个人通信的畅通以及2小时到达现场的能力。2.作业管理管理员根据用户及其作业内容设定用户作业及其使用计算资源的优先级。短作业适当提高优先等级,以便减少系统平均周转时间。3.配置变更和故障管理1)变更是指网络设备、服务器设备、应用系统等软硬件的版本、程序、配置等的改变。变更分为一般变更、重大变更和紧急变更。2)管理员进行生产服务器的配置变更操作,必须执行服务器配置变更管理,事前必须经过详尽的测试和计划。3)变更需要对节点计算资源设备临时关机或暂停计算服务,需至少提前1天发通知,通知的内容包括:停止服务的原因与时间,预计恢复正常服务的时间。4)故障分为用户故障和系统故障两类。用户故障是指由于用户终端方面原因引起的使用上的故障。系统故障是指由于系统软、硬件原因而引起的使用上的故障。此处特指系统故障。5)发生故障,应及时通知用户,并通过互联网络发布通告。6)系统管理员应该对系统运行进行定期检查。4.安全管理1)服务器超级用户的密码要定期更换,密码设定要有一定的规定,不能少于八位。超级用户密码必须登记在册并按有关规定妥善保管,系统管理员不得对任何无关人员泄露。用户密码由相关用户自行设定,系统管理员要严守保密制度,不得泄漏用户密码。2)系统管理员必须定期安装操作系统、应用程序的补丁包,对于高危高风险的补丁包应该按照要求及时安装。3)所有服务器必须安装防病毒软件,并及时升级病毒定义文件。管理员应该定期对服务器进行全面的病毒检测,发现问题应及时向中心安全管理员汇报并协同解决。4)所有服务器必须实施日志管理制度,按照有关规定保存系统和应用程序日志。5)管理员必须定期对服务器进行操作系统、应用程序和数据的备份。按照不同的服务等级,对不同的服务器实施离线备份、在线备份、热备份和双机热备等不同的备份策略。6)管理员应对服务器进行资源监控,包括硬件、系统资源和应用资源的监控。硬件监控,应该利用硬件厂商提供的监控软件;系统资源监控,主要针对CPU、内存、I/O活动情况的监控;针对应用资源,主要利用应用程序的监控功能。管理员应该利用各种资源监控手段确保服务器能力,保障服务等级。2.利用自己实验室通过以太网互联的计算机组成一个集群,对Linpack解线性方程组的程序(基于MPI)进行适应性修改使其在该集群上运行。给出具体的测试方案、源程序程序及测试结果(C/C++、Fortran均可)。答:Linpack测试包括三类,Linpack100、Linpack1000和HPL。Linpack100求解规模为100阶的稠密线性代数方程组,它只允许采用编译优化选项进行优化,不得更改代码,甚至代码中的注释也不得修改。Linpack1000要求求解规模为1000阶的线性代数方程组,达到指定的精度要求,可以在不改变计算量的前提下做算法和代码上做优化。HPL即HighPerformanceLinpack,也叫高度并行计算基准测试,它对数组大小N没有限制,求解问题的规模可以改变,除基本算法(计算量)不可改变外,可以采用其它任何优化方法。前两种测试运行规模较小,已不是很适合现代计算机的发展,因此现在使用较多的测试标准为HPL,而且阶次N也是linpack测试必须指明的参数。HPL是针对现代并行计算机提出的测试方式。用户在不修改任意测试程序的基础上,可以调节问题规模大小N(矩阵大小)、使用到的CPU数目、使用各种优化方法等来执行该测试程序,以获取最佳的性能。HPL采用高斯消元法求解线性方程组。当求解问题规模为N时,浮点运算次数为(2/3*N^3-2*N^2)。因此,只要给出问题规模N,测得系统计算时间T,峰值=计算量(2/3*N^3-2*N^2)/计算时间T,测试结果以浮点运算每秒(Flops)给出。本次测试将在linux系统下基于MPICH2搭建采用HPL来测试集群的计算性能,具体步骤如下:一并行环境MPI的建立1.创建SSH信任连接(1)更改/etc.hosts文件#vi/etc/hosts打开hosts文件,更改如下:127.0.0.1localhost.localdomainlocalhost192.168.1.100scc-m192.168.1.100note1192.168.1.102note2192.168.1.106note3192.168.1.112note4192.168.1.113note5(2)在node1下生成SSH秘钥对#ssh-keygen-trsa//连续回车即可产生.ssh文件#ls-a查看是否有.ssh文件夹(3)进入.ssh目录#cd.ssh(4)生成authorizen_keys文件#cpid_rsa.pubauthorized_keys(5)退出到root目录#cd(6)建立本身信任连接#sshnode1按提示输入yes(7)设置node2#ssh-keygen-trsa生成.ssh文件夹#scp192.168.1.100:/root/.ssh//root/.ssh拷贝node1上的.ssh文件夹覆盖本地的#scp192.168.1.100:/etc/hosts/etc/hosts拷贝node1上的hosts文件覆盖本地的#sshnode1提示处输入yes回车设置剩下的node方法与node2相同(8)确认五台机器的信任连接已建立对每个节点执行:#sshnode1#sshnode2#sshnode3#sshnode4#sshnode5在提示处输入yes回车,最后确定无需输入密码并且没有任何提示信息即可登陆。2.安装MPICH2(在每个节点root目录下,而且所有节点上的目录一样)(1)解压缩#tar-zxvfmpich2-1.0.7.tar.gz或者#gunzip-cmpich2-1.0.7.tar.gz|tarxfmpich2-1.0.7.tar(2)创建安装目录#mkdir/usr/MPICH-instsll(3)进入mpich2解压目录#cdmpich2-1.0.7(4)设置安装目录#./configure--prefix=/usr/MPICH-install(5)编译#make(6)安装#makeinstall(7)退出到root目录#cd..(8)通过编辑.bashrc文件修改环境变量#vi.bashrc修改后的.bashrc文件如下:#.bashrc#Userspecificaliasesandfunctionsaliasrm='rm-i'aliascp='cp-i'aliasmv='mv-i'PATH=$PATH:/usr/MPICH-install/bin新增加的#Sourceglobaldefinitionsif[-f/etc/bashrc];then./etc/bashrcfi(9)测试环境变量设置#whichmpd#whichmpicc#whichmpiexec#whichmpirun修改/etc/mpd.conf文件,内容为secretword=myword#vi/etc/mpd.conf设置文件读取权限和修改时间#touch/etc/mpd.conf#chmod600/etc/mpd.conf(11)创建主机名称集合文件/root/mpd.hosts#vimpd.hosts文件内容如下:node1node2node3node4node53.测试(1)本地测试#mpd&启动#mpdtrace观看启动机器#mpdallexit退出(2)通过mpd.hosts运行集群系统#mpdboot-nnumber-fmpd.hostsnumber为要起动的机器个数#mpdtrace#mpdallexit(3)测试运行MPIC