Re: [問題] MPI作一維陣列相加
※ 引述《NEWG5 (ggggg)》之銘言:
: 標題: [問題] MPI作一為陣列相加
: 時間: Mon Mar 26 23:48:01 2012
:
: 開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
: UNIX g++
:
: 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
: mpi.h
:
: 問題(Question):
: 有無更好寫法?且當我輸入參數>30000多時記憶體就會不夠
: 配置一個30000的陣列應該不吃啥記憶體才對說
: 而且伺服器記憶體有3.2G
:
: 餵入的資料(Input):
: 使用者輸入一個正整數 然後動態記憶體配置這個大小
: 然後A陣列和B陣列填入資料 C陣列為相加之和
:
: 預期的正確結果(Expected Output):
: 記憶體夠的情況下 程式跑出結果都對 只是不知為啥
: 很容易記憶體不足
:
: 錯誤結果(Wrong Output):
: upper>30000時會出錯
:
: 程式碼(Code):(請善用置底文網頁, 記得排版)
:
: http://codepad.org/rLq6QnxX
:
: 第一次學mpi 這我寫來確認看看觀念對不對
: 不知道為啥做出來後 n明明沒多大就會記憶體不足
: 想知道是否哪邊寫得不好 有改進的地方
: 補充說明(Supplement):
:
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 1.162.1.12
: 推 cywec:end = upper;改成upper-1, 不然最後一個node的array會越界 03/28 22:24
: → cywec:另外你這邊用MPI_Bcast的目的是什麼我感覺不出來 03/28 22:25
: → cywec:如果你的意思是將node0的A,B array中的資料給每一個點的話 03/28 22:26
: → cywec:應該是只有node0的A,B array需要做初始化 03/28 22:27
: → cywec:而MPI_Bcast原先的1應該為upper也就是Array的總數量 03/28 22:28
: → cywec:MPI_Reduce的概念也是一樣 03/28 22:28
謝謝 我的確是要將node0廣播到全體結點
再問個問題 假如是動態二維陣列 int x[N][N]
要怎樣廣播呢
MPI_Bcast(&x, N*N, MPI_INT, 0, MPI_COMM_WORLD);
這樣嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.71.178.35
推
04/01 01:13, , 1F
04/01 01:13, 1F
→
04/06 22:54, , 2F
04/06 22:54, 2F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章
5
21