基於MPI求解pi

2021-10-04 19:43:14 字數 785 閱讀 1260

#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....