Re: [討論] 分散式運算問題

看板Programming作者 (喲)時間13年前 (2012/11/09 21:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《mitm (mitm)》之銘言: : http://ideone.com/NjV1iX 這是我的程式碼 : 我要做: : 一個node算1+2+...50 : 另外一個node51+52+...100 : 最後執行合併結果是5050 : 這種分散式mpi程式設計要怎麼做啊? : 或著有沒有那種最簡單的範例 : 如: : 一個node列印hello : 另外一個node列印world : 最後合併執行結果helloworld : 這種最簡單的mpi分割範例讓我參考? : 小弟在此受教 一開始先取得配置的運算核心, MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); //這個是核心編號,從0開始算 MPI_Comm_size(MPI_COMM_WORLD, &size); //這個是核心總數 然後就想,四個核心怎麼分配著算從 1 加到 100? 一定是讓一個核心只停著等待結果,而其他核心分配這1到100的量. 所以接下來 程式是這樣: sum = 0; if (rank == 0) { MPI_Recv(...); ...... } else { for (i=rank; i<=100; i+=(size-1)) { sum = sum + i; } printf("Processer #%d sums %d.\n", rank, sum); //從這一行可以看到 //核心各自的總和 MPI_Send(...); } 然後要用MPI_Send(...)和MPI_Recv(...)讓分段總和可以送到核心總部去加總, 使用這二個函數,參數要傳遞值和型態,還要指明來源和目標,所以要知道如何用那些 參數. 讀手冊吧! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 36.226.95.220 ※ 編輯: yauhh 來自: 36.226.95.220 (11/09 21:43)
文章代碼(AID): #1GdGUaP7 (Programming)
討論串 (同標題文章)
文章代碼(AID): #1GdGUaP7 (Programming)