




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分布式系统开发分布式系统开发实验指导书实验指导书 2007 年年 9 月月 目目 录录 实验一实验一 熟悉目前的主流并行计算平台熟悉目前的主流并行计算平台.1 1.1 实验目的.1 2 1.2 实验内容.1 1.3 实验环境.1 1.4 实验指导.1 1.5 参考资料.9 实验二实验二 机群环境下数值算法的机群环境下数值算法的 MPI 实现实现 .10 2.1 实验目的.10 2.2 实验内容.10 2.3 实验环境.10 2.4 实验指导.10 2.5 参考资料.15 附录附录 实验大纲实验大纲.16 1 实验一实验一 熟悉目前的主流熟悉目前的主流 并行计算平台并行计算平台 1.1 实验目的
2、实验目的 通过搭建一个小规模的并行计算 PC 机群,熟悉主流并行计算平台上的体系结构以及部 署在其上的 MPI 并行编程环境,掌握并行程序的编写、编译、运行步骤,了解系统结构对 编程模式和环境工具的影响。 1.2 实验内容实验内容 本实验需要完成以下任务: 1.实际搭建一个小规模的并行计算机群; 2.在已搭建好的机群上部署 MPI 并行编程环境; 3.通过编译运行一个简单的 cpi 程序验证该 MPI 编程环境是否建立成功。 1.3 实验环境实验环境 硬件:微型计算机若干 软件:windows 和 linux 操作系统、MPI 并行编程环境 MPICH 1.4 实验指导实验指导 (一)(一)
3、、PC 机群硬件部件的选择机群硬件部件的选择 示例配置,如下: 该 PC 机群包括 1 个服务节点(兼作计算节点)和 63 个计算节点。 (1)服务节点配置:)服务节点配置: CPU:Pentium 2.0G(512KB 全速二级缓存) 内存:1G(2512M)Rambus 硬盘:80GB IDE 主板:ASUS P4T Socket 423 网卡:3com 905 TX(两个) 显卡、显示器、键盘、鼠标、光驱、软驱:略 (2)计算节点配置:)计算节点配置: 2 CPU:Pentium 1.5G(512KB 全速二级缓存) 内存:512MB(2256M) Rambus 硬盘:40GB IDE
4、主板:ASUS P4T Socket 423 网卡:3com 905 TX 另外,交换设备由 2 个 3com 3c16980 和 1 个 3com 3c16985 的交换机通过一个 matrix module 堆叠而成,并安装了一个千兆光纤模块,以备服务接点连接内部机群的网卡升级为 千兆网卡。 (二)(二) 、PC 机群软件环境的配置机群软件环境的配置 1、OS 的选择与安装的选择与安装 Linux是目前构建高性能计算机群的一个最佳的选择。在所创建的示例机群中使用的是 Redhat 9.0版本(内核2.4.28) 。安装过程中请选择“定制” ,并在“选择软件包组”时在 默认的基础上选中【服务
5、器】【网络服务器】 (telnet-server、rsh-server) 、 【服务器 】【服务器配置工具】 (NFS等服务器配置工具) 、 【开发】【开发工具】 (gcc等基本开 发工具) 、 【系统】【管理工具】 (图形化的系统管理工具)等软件包组。 操作系统安装完毕后,假设具有如下信息: 服务节点主机名为“node0” ,IP地址为“00” ;计算节点相应的主机名为 “node1.63” ,IP地址为“.63” 。 2、单一登录(、单一登录(Single Sign On)的构建)的构建 用户可以从机群系统的任何一个节点登录,而且在整个作业执行过
6、程中只需登录一次, 不必为将作业指派到机群中的其它节点而重新登录。这里我们采用并行算法实践中所 介绍的第二种方法“构建用户管理脚本”来维护系统中用户信息的一致性,使用户不再重 复输入密码即可登录到机群中的另一个节点上。这包括以下步骤: 1.以 root 用户登录到节点 node0,修改文件/etc/hosts、/etc/host.equiv,在其中写入机 群所有节点的名称和 IP。 2.修改系统的服务设置,通过服务设置工具启动如下系统服务: nfs、rexec、rsh、rlogin。其中后面三个服务是与 Remote Shell 相关的,负责在远 程节点启动进程。 3.经过上述设置后需以普通用
7、户身份测试 RSH 是否配置成功,运行命令如图 1 所示。 对于 root 用户需要经过图 2 所示的配置才可以不重新输入密码即可以通过 RSH 登 录远程节点。 4.通过图 3 所示的脚本即可以完成创建全局统一的用户信息。该脚本首先在本节点 新增用户,然后通过 RSH 将用户配置文件/etc/passwd 复制到机群中所有其余的节 点。图 3 中建立了全局用户 cluster。 3 图图 1 图图 2 4 图图 3 3、单一文件系统(、单一文件系统(Single File System)的构建)的构建 NFS 是一种 Unix/Linux 之间通过网络共享文件的标准方式。使用 NFS,就能够
8、透明的 安装和访问网络上远程主机的文件系统,将其安装(mount)在本地的文件系统中,类似于 Windows 下的映射驱动器。在示例机群中,节点 node0 是服务器,把目录/home 和/cluster 进行共享;节点 node1 到 node63 是客户端,把服务器的/home 和 cluster 安装到自己的文件 系统当中。下面分别进行讨论: 1、首先在节点 node0 上建立目录/cluster,然后将该目录授权给用户 cluster。 2、可以通过如图 4 所示的服务器设置工具配置共享目录,也可以通过图 5-6 所示的直接修 改/etc/exports 文件改变目录的共享。图 6 表
9、示将目录/home 和/cluster 以可读可写的方式共 享给 /24 范围(IP 从 到 54)内的所有机器。 3、运行命令 exportfs a 完成目录的共享。 4、客户端节点同样需要首先建立/cluster 目录,然后修改分区配置文件/etc/fstab,在其中加 入对/home 和/cluster 的映射。 5、运行命令 mount a 完成目录的共享。 6、通过图 7 中的脚本可以将该分区配置文件拷贝到机群中所有其他节点。 5 图图 4 图图 5 6 图图 6 图图 7 7 4、并行编程环境(、并行编程环境(Pa
10、rallel Programming Environment)的构建)的构建 MPI(Message Passing Interface):消息传递接口 MPI 目前是最流行的分布存储并行 编程环境。MPICH 是由美国的 Argonne 国家实验室开发的基于 MPI 标准的一套开放源码 的软件包,目前最新的版本是 1.2.4。从链接 /mpi/mpich/可以获 得更多关于 MPICH 的资料以及下载该软件包。其具体配置步骤如下: 1、首先需要结压缩安装文件包并通过 configure 脚本完成初始配置。其中-prefix 指定 /clus
11、ter/mpich 为安装目录;-with-device 指明所使用的通信系统类型为 TCP/IP 通信系 统;-with-arch 指明所使用的操作系统为 Linux。 2、 完成初始配置之后即可以使用 make、make install 完成 mpich 的安装。 3、修改 mpich 的节点配置文件/cluster/mpich/shar/machines.LINUX,指明机群所包含的节点。 图图 8 8 图图 9 (三)(三) 、MPICH 的的运行运行 1、MPICH 中最常用的两个命令就是 mpicc 和 mpirun。 2、mpicc 是一个 MPI 编译器,它负责将源程序编译为可
12、执行文件,它最常用的参数是-o 用 来指明输出文件。 node0# cd /Cluster/MPICH/examples node0# ./bin/mpicc cpi.c o cpinew 3、 mpirun 则是用来执行一个编译好的 MPI 程序。下面是它最常用的一些参数: -np :用来指明所要生成的进程数。 -machinefile :缺省时使用的 machines 文件是前面介绍过的位于 share 目录下的 machines.LINUX;但通过这个参数可以指定一个临时的 machines 文件,从 而使用不同的进程指派方式。 4、一个标准的 mpirun 命令如下: node0# .
13、/bin/mpirun np 10 cpinew machinefile ./new_machine_file node0# ./mpirun np 10 cpi Process 1 on node1 Process 4 on node4 Process 3 on node3 Process 7 on node7 9 Process 8 on node8 Process 9 on node9 Process 2 on node2 Process 6 on node6 Process 5 on node5 Process 0 on node0 pi is approximately 3.1416
14、009869231249, Error is 0.0000083333333318 wall clock time = 0.015806 1.5 参考资料参考资料 1 陈国良等, 并行计算:结构,算法,编程 (修订版) ,北京:高教出版社,2003 3 都志辉等. 高性能计算并行编程技术-MPI 并行程序设计。清华大学出版社,2001 10 实验二实验二 机群环境下数值算法的机群环境下数值算法的 MPI 实现实现 2.1 实验目的实验目的 针对一些典型的数值算法,如矩阵转置,在机群环境中的 windows 或者 linux 操作系 统上,使用 C 语言在 MPI 并行编程环境下设计并实现具体的
15、并行算法 2.2 实验内容实验内容 本实验需要完成以下任务: 1.理解矩阵转置及其串行算法; 2.实现基于网孔上的块棋盘划分的矩阵转置并行算法 2.3 实验环境实验环境 硬件:微型计算机若干 软件:windows 和 linux 操作系统、MPI 并行编程环境 MPICH 2.4 实验指导实验指导 (一)(一) 、理解矩阵转置及其串行算法矩阵转置及其串行算法 对于一个 n 阶方阵 A=aij,将其每一下三角元素 aij (ij)沿主对角线与其对称元素 aji互 换就构成了转置矩阵 AT。假设一对数据的交换时间为一个单位时间,则下述矩阵转置矩阵转置 (Matrix Transposing)算法的
16、运行时间为(n2-n)/2=O(n2)。 算法算法 1 单处理器上矩阵转置算法单处理器上矩阵转置算法 输入:输入:矩阵 Ann 输出:输出:矩阵 Ann的转置 ATnn Begin for i=2 to n do for j=1 to i-1 do 交换 ai,j和 aj,i endfor endfor End 11 (二)(二) 、实现矩阵转置并行算法实现矩阵转置并行算法 本次实验主要实现网孔上的块棋盘划分块棋盘划分(Block-Checker Board Partitioning,又称为块状 划分)的矩阵转置算法。 实现矩阵的转置时,若处理器个数为 p,且它们的编号依次是 0,1, ,p-
17、1,则将 n 阶矩 阵 A 分成 p 个大小为 mm 的子块,。p 个子块组成一个的子块阵列。 pnm/pp 记其中第 i 行第 j 列的子块为 Aij,它含有 A 的第(i-1)m+1 至第 im 行中的第(j-1)m+1 至第 jm 列的所有元素。对每一处理器按行主方式赋以二维下标,记编号为 i 的处理器的二维下标 为(v,u),其中,将 A 的子块存入下标为(v,u)表示的对应处理器中。 piv/piumod 这样,转置过程分两步进行:第一步,子块转置,具体过程如图 所示;第二步,处理 器内部局部转置。 A41 P12 A42 P13 A43 P14 A12 P1 A13 P2 A14
18、P3 A11 P0 A21 P4 A23 P6 A24 P7 A22 P5 A31 P8 A32 P9 A34 P11 A33 P10 A44 P15 图图 1 子块转置子块转置 为了避免对应子块交换数据时处理器发生死锁,可令下三角子块先向与之对应的上三 角子块发送数据,然后从上三角子块接收数据;上三角子块先将数据存放在缓冲区 buffer 中,然后从与之对应的下三角子块接收数据;最后再将缓冲区中的数据发送给下三角子块。 具体并行算法框架描述如下: 算法算法 2 网孔上的矩阵转置算法网孔上的矩阵转置算法 输入:输入:矩阵 Ann 输出:输出:矩阵 Ann的转置 ATnn Begin 对所有处理
19、器 my_rank(my_rank=0,p-1)同时执行如下的算法: (1)计算子块的行号 v=my_rank/ sqrt(p), 计算子块的列号 u=my_rank mod sqrt(p) (2)if (usize) t=size; if(size%t!=0) for(;) t-; if(size%t=0) break; /* 获得实际利用的处理器个数获得实际利用的处理器个数 */ p=t*t; /* 每个子方阵的尺寸每个子方阵的尺寸 */ m=size/t; /* a 保存子方阵保存子方阵,b 是临时矩阵是临时矩阵,是主进程用来保存待发送给别的进程的子方阵是主进程用来保存待发送给别的进程的
20、子方阵 */ a=(float *)malloc(floatsize*m*m); b=(float *)malloc(floatsize*m*m); if (a=NULL|b=NULL) printf(allocate space fail!); 14 /* 对主进程对主进程,获得自己的子方阵获得自己的子方阵(即左上角的子方阵即左上角的子方阵) */ if (my_rank=0) /* 主进程向其他进程发送数据主进程向其他进程发送数据 */ if (my_rank=0) else if (my_rank(my_rank%t)im;i+) for(j=0;ji;j+) temp=a(i,j);
21、a(i,j)=a(j,i); a(j,i)=temp; /* 主进程开始将转置的结果进行组合主进程开始将转置的结果进行组合 先将主进程的结果组合到先将主进程的结果组合到 B 中左上角中左上角 */ if (my_rank=0) for(i=0;im;i+) for(j=0;jm;j+) B(i,j)=a(i,j); /* 主进程从其他进程接收结果主进程从其他进程接收结果,组合到组合到 B 的相应位置的相应位置 */ if (my_rank=0) 15 else if(my_rankp) /* 其他进程发送结果到主进程其他进程发送结果到主进程 */ MPI_Send(a,m*m,MPI_FLOA
22、T,0,my_rank,MPI_COMM_WORLD); /* 由主进程打印计算结果由主进程打印计算结果 */ /* 由主进程打印时间信息由主进程打印时间信息 */ (四)(四) 、实验结果、实验结果 输入矩阵:输入矩阵:1 2 3 3 4 5 5 6 7 pile: mpicc transpose.c -o transpose 2.run: mpirun -np 4 transpose 3.result: Input of file dataIn.txt 3 3 1.000000 2.000000 3.000000 3.000000 4.000000 5.000000 5.000000 6.
23、000000 7.000000 Output of Matrix AT 1.000000 3.000000 5.000000 2.000000 4.000000 6.000000 3.000000 5.000000 7.000000 Whole running time = 0.012299 seconds Distribute data time = 0.011884 seconds Parallel compute time = 0.000415 seconds 2.5 参考资料参考资料 1 陈国良等, 并行计算:结构,算法,编程 (修订版) ,北京:高教出版社,2003 3 都志辉等.
24、高性能计算并行编程技术-MPI 并行程序设计。清华大学出版社,2001 16 附录附录 实验大纲实验大纲 分布式系统开发分布式系统开发课程实验大纲课程实验大纲 课程编号:B0301441C 课程名称:分布式系统开发 课内总学时:32 上机实验学时:42 一、 实验课程的性质、目的和任务 实验课程的性质:分布式系统开发实验是对专业限选课分布式系统开发课程知 识的进一步巩固和解决实际问题能力的加强。 实验课程的目的:通过上机实习,一方面加深学生对分布式并行算法的基本策略和主 要方法的理解;另一方面,熟悉主流并行计算平台上的体系结构以及部署在其上的 MPI 并 行编程环境;学习并行程序的编写、编译、
25、运行步骤,了解系统结构对编程模式和环境工 具的影响。 实验课程的任务:在 4 学时的实验中,每个同学要完成相应的实验题,通过独立思考、 与同学讨论、老师辅导答疑,选择相应的方法,进行题目的分析、编程及测试工作,并按 要求写出实验报告。 二、 实验内容、学时分配及基本要求 实验 对象 序 号 实验名称 课 时 实验内容及要求 开出 组数 实验 类型 选 做 必 做 本专 备 注 1 主流并行计算 平台的搭建 2 内容: 1、实际搭建一个小 规模的并行计算机群; 2、在已搭建好的机群上 部署 MPI 并行编程环境; 3、通过编译运行一个简 单的 cpi 程序验证该 MPI 编程环境是否建立成功。 要求: 通过搭建一个小规 120 验证 17 模的并行计算 PC 机群, 熟悉主流并行计算平台 上的体系结构以及部署 在其上的 MPI 并行编程 环境,掌握并行程序的 编写、编译、运行步骤, 了解系统结构对
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 说课时间分配课件
- 语言文字培训基础知识课件
- 2025年上海市果蔬种植买卖合同示范文本
- 难忘的端午节赛龙舟作文(10篇)
- 合同审批及管理流程模板化指南
- 农业资源合理利用与生态保护合同
- 红楼梦第四十回课件
- 红楼梦第八回课件
- 农业智能灌溉系统使用与维护协议
- 农村农副产品生产加工协作合同书
- 丹毒的健康宣教
- 《柴油机的维护保养》课件
- 两个女儿断绝关系协议书范文
- 多囊卵巢综合征合并胰岛素抵抗诊治专家共识
- 竞选竞选大学心理委员参考课件
- 2024年数控车工技能竞赛理论考试题库500题(含答案)
- 牙体牙髓病学(山东联盟)智慧树知到答案2024年滨州医学院
- 《矿物岩石学》全套教学课件
- 全国职业院校宠物营养学知识竞赛备考试题库(含答案)
- JTG-D82-2009公路交通标志和标线设置规范
- 教学课件 《公共政策概论》谢明
评论
0/150
提交评论