实 验 报 告
课程名称 集群机及并行环境建构 实验仪器 集群机3550 3650 廉价集群机 KVM 交换机 光驱等
实验名称 实验三 : 并行程序设计举例
系 别 __计算机学院 _
专 业 _ 计算机科学与技术 _
班级/学号 _ 计科1006/2010011198__
学生姓名 ___ _林紫璇 _ __ __
实验日期 ____ _ __
成 绩 _________________ _
指导教师 _ _纪秋_ __
实验三: 并行程序设计举例
一、 实验目的
了解集群机3550 3650 廉价集群机的基本设置,掌握C 语言编程及并行节点的运行
二、实验设备
集群机3550 3650 廉价集群机 KVM 交换机 光驱等。
三、 实验要求
1) 实验前要求在网上收集集成机的相关资料,做好实验前的准备工作。
2) 了解并行程序,熟悉其运行过程。
3) 实验前仔细阅读理解讲义中实验四的相关内容,实验时携带实验讲义。
四、 实验内容
并行运算两个程序:计算π 值, 枚举排序。
1. 实验代码:
#include
#include
#include
#include"mpi.h"
#define N 100000000
int
main (int argc, char **argv)
{
double local = 0.0, pi, w, temp = 0.0, x1, x2, xx; int i, rank, size;
w = 1.0 / N;
MPI_Init (&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
x1 = MPI_Wtime ();
for (i = rank; i
{
temp = (i + 0.5) * w;
local = 4.0 / (1.0 + temp * temp) + local; } //for
MPI_Reduce(&local, &pi, 1, MPI_DOUBLE, MPI_SUM, MPI_COMM_WORLD); 0,
x2 = MPI_Wtime ();
xx = x2 - x1;
if (rank == 0)
printf ("pi is %50.40lf\n", pi * w, xx);
MPI_Finalize ();
return 0;
}
2. 编译
3. 将aa 拷贝到本组要参与并行运算的其他节点
4. 生成公共密钥
5. 将公共密钥拷贝到需要共同运算的其他节点
6. 启动多个节点
7. 多个节点运算
8. 运算结束执行退出命令
五、 实验结果
六、 实验总结与收获
这次实验就是在第二次实验ping 通的基础上,加入求π程序,最后分节点运算得出的。