2011秋高性能计算练习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

说明:

A 组题中任选1题,在

B 组任选1题;

编写MPI 程序,采用多进程协同完成练习题。

要求: (1) 并行环境正确运行;

(2)提交上机实验报告:

问题描述、算法设计、重点及难点、并行程序关键代码、计算结果分析等 A01. 从键盘输入一个无符号长整型数n ,计算2~n 之间完数的个数。所谓完数

是指,小于该数的所有因数之和恰好等于该数。例如6是一个完数,因为小于6的因数有1,2,3且1+2+3=6。

A02. 从键盘输入一个无符号长整型数n ,产生一个长度为n ,取值在[0,1]之间

的随机实数数组,计算其去掉一个最大值、去掉一个最小值,剩下n -2个值的平均值。

A03. 从键盘输入一个无符号长整型数n ,产生一个长度为n ,取值在[0,1]之间

的随机实数数组,计算其数学期望、方差。

A04. (仿环网络的多圈接力) 设0进程有变量x ,初值为0,要求将x 按进程号

的次序,将(圈数*进程号)累加到x 上,完成m 后,输出0进程中x 的值。 A05. (仿完全连接网络的互致问候)所有进程间两两互致问候。具体要求,例

如:进程0传递字符串”greetings from process No.0.”到进程1。进程1则在收到字符串前添加字符”Process No.1 has received ”并输出。

A06. (仿二维网格Mesh 通信)设创建n m P ⨯=个进程(n m ,为正整数),要求各进程与其相邻的进程(按n m ⨯网格结构)互致问候。具体要求,例如:若进程0传递字符串”greetings from process No.0.”到进程1。进程1则在收到字符串前添加字符”Process No.1 has received ”并输出。

A07. (仿二维环形网格2D-Torus Mesh 通信)设创建n m P ⨯=个进程(n

m ,为正整数),要求各进程与其相邻的进程(按2维n m ⨯环形网格结构)互致问候。具体要求,例如:若进程0传递字符串”greetings from process No.0.”到进程m-1。进程m-1则在收到字符串前添加字符”Process No.m-1 has received ”并输出。

A08. 计算级数()()() +--++-+-=--!

121!7!5!3sin 121753n x x x x x x n n ,要求精度

810-。

B01. 从键盘输入一个正整数n ,由进程0产生一个n 行5列的矩阵A ,该矩阵的

第一行元素依次为-1,0,1,2,3;第

k 行元素依次为(-1)k ,0,1,2-k ,3-k 。用send 和recv 实现将矩阵A 的各行按“块分布”

分布到各进程。各进程输出收到的各行数据。

B02. 从键盘输入一个正整数n ,由进程0产生一个n 行5列的矩阵A ,该矩阵的

第一行元素依次为-1,0,1,2,3;第k 行元素依次为(-1)k ,0,1,2-k ,3-k 。用send 和recv 实现将矩阵A 的各行按“周期分布(亦称为卷帘分布)”分布到各进程。各进程输出收到的各行数据。

B03. 在各进程上计算:1-5000中,凡是【进程号(myid)+1】的倍数的数的

倒数之和。并用gather 收集各进程求解的和,并输出。

B04. 从键盘输入一个正整数n ,由进程0产生n 阶方阵A (元素为0~99之间的

随机值),并行计算矩阵A*A*A 。

B05. (超立方体结构从高维到低维的广播算法)设创建p P 2=个进程(p 为正

整数),进程0从键盘接收一个整数n 。请按照超立方体结构的边,从高维到低维,模仿超立方体结构的广播算法将n 传递到其他所有进程(提示:该算法在P p 2log =步内完成)。

B06. (归并排序)给定无符号长整型数n N 2=(n 为正整数)。产生长度为N

取值在0~99之间的随机整数数组,用p P 2=(p 为正整数)个进程实现数组的归并排序。

B07. (邻域布雷数)给定两个正整数n m ,,随机产生一个n m ⨯阶矩阵A ,

矩阵A 的元素取0(表示该处未布地雷),或取1(表示该处布有地雷)。要求计算矩阵A 各点邻域内的地雷数,形成一个n m ⨯阶矩阵B ,并输出矩阵B 。

例如,若⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=00001101110110001001A ,则⎪⎪⎪⎪⎪⎭⎫ ⎝⎛=12243244533555323321B 。 B08. (八皇后问题)在8*8格的棋盘上,放置8个皇后。要求每行每列放一个

皇后,而且每一条对角线和每一条反对角线上最多只能有一个皇后,即对同时放置在棋盘的任意两个皇后

11(,)i j 和22(,)i j ,不允许1212()()i i j j -=-或者1122()()i j i j +=+的情况出现。

相关文档
最新文档