【MPI并行计算】计算cosx在a~b的积分

先将a~b分成p份,然后将每个p份分为n份,对于最小的n份,其在x轴的长度为(b-a)/p/n=h,那么这最小的一份的面积就是h乘以高度,高度是cos(该长方形的在x轴的中点的坐标),其中该长方形的在x轴的中点的坐标=a+(i*n+j)+h/2(也就是按最小的长方形来计算,从a开始到这个长方形有几个,然后加上该长方形的宽的一半),所以其具体流程为:创建n个进程,将a~b分成n-1大份,然后将每一大份非常固定的10小份,前n-1个进程用来分别处理n-1个大份的面积和,然后将计算的结果发送给第n个进程,由第n个进程求和输出结果。

1. mpi主要程序

 

2. 该程序可以根据输入的进程数的不同将a~b划分为不同的大份

3. 创建的进程数越多所需要的处理时间也越多

4. 这里将程序进行修改

5. 重新运行程序

可见误差比较小

6. 再继续划分

可见进程数越多,也就是划分的越小,得出的数据越精确,但是进程数越多消耗的时间越长。

猜你喜欢

转载自blog.csdn.net/superce/article/details/80444247
今日推荐