100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 复化梯形公式matlab程序_【HPC】高性能数值计算-梯形面积法

复化梯形公式matlab程序_【HPC】高性能数值计算-梯形面积法

时间:2023-11-24 02:34:24

相关推荐

复化梯形公式matlab程序_【HPC】高性能数值计算-梯形面积法

原理

将 x 轴上的区间划分为 n 个等长的子区间,有

, , ,......, ,

则梯形面积可表示为

首先很容易可以得出串行计算的代码:

/*Input a, b, n*/h = (b - a)/n;approx = (f(a) + f(b))/2.0;for(i = 1;i <= n-1; i++) {x_i = a + i * h;approx += f(x_i);}approx = h * approx;

现在考虑并行化梯形积分法

在划分阶段,通常尝试识别成尽可能多的任务,对于梯形积分法,我们可以识别出两种任务

获取单个矩形面积的任务

使用的梯度 N 越多,估计值就越精确。当梯形的数目将超过核的数量,需要将梯度区域面积的计算聚合成组。为了实现这一目标一个很自然的地方是将区间[a,b]划分成 comm_sz 个子区间。

width = (b - a)/(double)N;/* how many trapezoids per process? */local_n = N/nprocs;/* calculate local interals to work on */local_a = a + (rank * (local_n * width));local_b = local_a + (local_n * width);

2. 计算这些区域的面积和

/* message passing and totalling of local sums */if (rank == MASTER) {integral = local_sum;for (source =1; source < nprocs; source++) {MPI_Recv(&local_sum, 1, MPI_DOUBLE, source, tag, MPI_COMM_WORLD, &status);integral += local_sum;}}else {MPI_Send(&local_sum, 1, MPI_DOUBLE, dest, tag, MPI_COMM_WORLD);}

集合通信

在MPI里,涉及通信子中所有进程的通信函数称为集合通信(collective communication)MPI_Reduce(归约):函数将通信器内每个进程输入缓冲区( sendbuf )中的数据按给定的操作进行简单运算,并将其结果返回到根进程的输出缓冲区( recvbuf )中MPI_Bcast(广播):属于一个进程的数据被发送到通信子中的所有进程

示意图

任务描述

结合课程所学基础知识,利用 MPI 进行并行计算。使用不同被积函数实现梯形面积法求解 pi的近似值。通过修改数据规模 N 和通信进程数 Comm_sz 来进行算法的性能评估以及考察与 pi 真实值之间的误差变化。

性能评估

1. 使用计时函数对程序性能进行评估,根据并行时间取决于“最慢”进程花费的时间,设计计时函数。使用 MPI_Barrier() 能够确保同一个通信子中的所有进程都完成调用该函数之前,没有进程能够提前返回。从而确保所返回时间能准确描述程序并行时间。

计时代码

2. 由于计时存在易变性,尽管每次输入的参数一样,进程数相同,运行环境也没有发生改变,但多次运行同一段程序,仍然可能会见到运行时间有变化。因为系统其余部分,尤其是操作系统的影响,是不可预知的。于是此处报告的是最短运行时间,而不是平均运行时间或者中位数时间。

实验结果

运行截图

公式 1 :

PI的串行和并行程序的运行时间(单位: 毫秒)

公式 2 :

PI的串行和并行程序的运行时间(单位:毫秒)

实验分析

1. 数据规模 N 的影响:

程序中 local_n = N/nprocs ,代表含义为积分区间均等划分的数量。由上述实验结果显示,数据规模的增大与程序运行时间并无明显线性相关性。这是由于数据规模在一定范围内受限于运行环境等因素,导致运行时间的不确定。当 N 增大到一定规模时,程序的运行时间也显著增大。

2. 通信进程数 Comm_sz 的影响:

当数据规模小时,增大进程数并未如预期显著提升程序性能。对于大的问题规模而言,增大进程数对应性能提升有很大帮助,大幅减少了运行时间。

3. 被积函数的影响:

公式 1 整体性能优于公式 2,分析可能原因是程序在处理三角函数时需花费较多时间,对整体性能产生了影响。

附件-代码:

Ubuntu Pastebin​

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。