English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

各位大大能否幫忙小弟...........
就是我想要把一組資料,切割成四份一一平行化去給不同的電腦做處理,
求出我要的average、max、min。
指的是例如四台電腦在做平行處理,其中一台是master,其他三台是
slave,那我把資料切割成四份分給這四台電腦去做,而這四台電腦
分別找出自己所做的部分的average、max、min,然後傳回給master,
做最後的average、max、min,並呈現出來。
還有另一個問題是要怎樣讀text檔阿??.........會的大大交一下小弟.........
小弟不才................
PS:這兩個問題都是要用C++做的,會的大大提示一下小弟................感謝~~

2006-11-10 12:24:45 · 1 個解答 · 發問者 ? 2 in 電腦與網際網路 程式設計

1 個解答

MPI 的做法大致如下:(做法很多,這只是比較好說明的一種,並不是最好的一種)1. 你要會用 malloc();2. MPI_Status status;  取得 process 的編號,id  取得 process 的數量,#(id)  取得 nData; // 資料總數,如 A[n]的n, 不用 * sizeof(*A)  取得 lData = nData / #(id); // Local Data  陣列指標 = malloc(lData * sizeof(*A));   if (!id) // master process  { 陣列指標0 = malloc(lData * sizeof(*A)); // 讀資料用   for (j=0; j<#(id); j++)   { 讀入  lData 那麼多的資料;     if (j) MPI_Send(陣列指標0, lData, MPI_資料型態, j, 1, MPI_COMM_WORLD);     else memcpy(陣列指標0, 陣列指標, lData * sizeof(*A));   }   free(陣列指標0);  } else MPI_Recv(陣列指標, lData, MPI_資料型態, 0, 1, MPI_COMM_WORLD, &status);  for (i=0; i#include ifstream fin("檔名");if (!fin) 顯示錯誤;for (i=0; i<讀入量; i++) fin >> 讀入的變數; // 通常是變數fin.close();加油囉,做不出來再問,看是哪的問題。

2006-11-11 01:17:13 補充:
fin >> 讀入的變數; // 通常是變數
那列打錯了!
fin >> 讀入的變數; // 通常是陣列

2006-11-10 20:16:15 · answer #1 · answered by ? 7 · 0 0

fedest.com, questions and answers