#include
#include
#include
"mpi.h"
//給定函式
//求解橫座標為xi時的值
double
func
(double xi)
intmain
(int argc,
char
* ar**)
//計算間距
h =1.0/
(double
)n;//當前程序計算的結果
res =
0.0;
//每個程序負責計算自己那一部分
//比如有一萬個點分配給十個程序每個程序需要完成一千個點
//每個程序從自己的程序id開始進行累加
for(
int i=myid;i
=numprocs)
res = h * res;
//歸約計算將每個程序獲得的結果接收並相加到根結點
//mpi_sum即求和方式
mpi_reduce
(&res,
&pi,
1,mpi_double,mpi_sum,
0,mpi_comm_world);if
(myid==0)
mpi_finalize()
;return0;
}
程式執行圖: 使用MPI並行求解字首和 prefix sum
本文介紹的並行模式是字首和 prefixsum 通常也叫掃瞄 scan 從數學的角度看,閉掃瞄 inclusive scan 操作接受乙個二元運算子和乙個n元輸入陣列 x0,x1,xn 1 然後返回乙個輸出陣列 x0,x0 x1 x0 x1 xn 1 在介紹並行掃瞄演算法與它們的實現前,先介紹乙個高...
基於OpenCV的圓周率PI值的估計
好久沒有寫部落格了,今天有空寫一下自己做的乙個小實驗,有興趣的夥伴一起驗證一下。剛剛開始學習計算機視覺,opencv沒有基礎,剛剛接觸這門語言,就做幾個小實驗練習一下。好了,廢話不多說,進入正題。吾理小子估計圓周率的值是通過內接圓完成的,首先簡述一下原理。如上圖所示,圓內接於正方形。設圓的半徑為r,...
基於模擬退火的tsp問題求解
模擬退火演算法 於固體退火原理,是一種基於概率的演算法,將固體加溫至充分高,再讓其徐徐冷卻,加溫時,固體內部粒子隨溫公升變為無序狀,內能增大,而徐徐冷卻時粒子漸趨有序,在每個溫度都達到平衡態,最後在常溫時達到基態,內能減為最小。這是關於模擬退火的科普 模擬退火 模擬退火實現起來主要分為三個部分 1....