平行計算圓周率

2021-06-14 07:10:58 字數 2034 閱讀 6665

看到這個題目,俗了,大家都在計算圓周率。不過咱們的目的是看一下平行計算的基本流程。書上計算pi用的是精確的數值計算方法,我這裡再給出一種概率計算方法。openmp和mpi將同時亮相。

1.tan(pi/4)=1    =>     pi=4arctan1。知道arctan1轉化為定積分的形式是什麼吧。

利用arctan(x)的冪級數展開式,可以手工地計算pi

另外也可以採用正式手工計算pi

mpi_bcast(&n,1,mpi_int,0,mpi_comm_world); //把n廣播給本通訊環境中的所有程序

width=1.0/n;

sum=0.0;

for(i=my_rank;impi_bcast(buffer,count,datatype,root,comm)

in/out buffer   通訊訊息緩衝區的起始位址(可變)

in    count    通訊訊息緩衝區中的資料個數(整型)

in    datatype  通訊訊息緩衝區中的資料型別(控制代碼)

in    root    傳送廣播的根的序列號(整型)

in    comm   通訊子(控制代碼)

mpi_reduce(sendbuf,recvbuf,count,datatype,op,root,comm)

in sendbuf 傳送訊息緩衝區的起始位址(可變)

out recvbuf 接收訊息緩衝區中的位址(可變,僅對於根程序)

in count 傳送訊息緩衝區中的資料個數(整型)

in datatype 傳送訊息緩衝區的元素型別(控制代碼)

in op 歸約操作符(控制代碼)

in root 根程序序列號(整型)

in comm 通訊子(控制代碼)

orisun@orisun-desktop:~/program$ mpicc -o pi3 pi3.c      %使用mpicc編譯

orisun@orisun-desktop:~/program$ mpirun -np 4 ./pi3      %指定number of processor為4

processor 0 of 4 on orisun-desktop

please give n=processor 2 of 4 on orisun-desktop

processor 1 of 4 on orisun-desktop

processor 3 of 4 on orisun-desktop

pi is 3.14159465358887635134

time: 0.012510

orisun@orisun-desktop:~/program$ mpdcleanup

時間是0.01251秒,比0.02秒明顯減少。

注意輸出中有這麼一行:please give n=processor 2 of 4 on orisun-desktop

這說明是我們不能保證**中的18行和20行的執行順序。

圓周率背誦世界記錄的趨勢

世界記錄是100000位,日本人原口證於2023年10月3日背誦圓周率π至小數點後100000位。

普通話用諧音記憶的有「山巔一寺一壺酒,爾樂苦煞吾,把酒吃,酒殺爾,殺不死,樂而樂」,就是3.1415926535897932384626。 另一諧音為:「山巔一石一壺酒,二侶舞仙舞,罷酒去舊衫,握扇把市溜」,就是3.14159265358979323846。

主要內容來自:

7 15 計算圓周率

7 15 計算圓周率 15 分 根據下面關係式,求圓周率的值,直到最後一項的值小於給定閾值。2 1 1 3 2 3 5 3 3 5 7 n 3 5 7 2 n 1 輸入格式 輸入在一行中給出小於1的閾值。輸出格式 在一行中輸出滿足閾值條件的近似圓周率,輸出到小數點後6位。輸入樣例 0.01 輸出樣例...

7 15 計算圓周率

學到翁愷老師 c語言程式設計 第八周了,來pta做點習題練習 題目是 用圓周率的關係式,求圓周率的值,直到最後一項的值小於給定閾值。2 1 3 1 3 5 2 3 5 7 3 3 5 7 2n 1 n 輸入格式 輸入在一行中給出小於1的閾值。輸出格式 在一行中輸出滿足閾值條件的近似圓周率,輸出到小數...

《計算圓周率》python

題目 歷史上有許多計算圓周率pai的公式,其中,格雷戈里和萊布尼茨發現了下面的公式 pai 4 1 1 3 1 5 1 7 這個公式簡單而優美,但美中不足,它收斂的太慢了。如果我們四捨五入保留它的兩位小數,那麼 累積1項是 4.00 累積2項是 2.67 累積3項是 3.47 請你寫出它累積100項...