本文主要是介绍【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. 再继续划分
可见进程数越多,也就是划分的越小,得出的数据越精确,但是进程数越多消耗的时间越长。
这篇关于【MPI并行计算】计算cosx在a~b的积分的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!