xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

  • 大小: 5KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-03
  • 語言: 其他
  • 標簽: MPI矩陣??

資源簡介

通過減少問題規模形式,做并行計算,求解矩陣相乘問題,mpi,MPI,思想是將第一個矩陣分塊,每個進程只計算矩陣的幾行,最終傳給主進程嗎、,主進程輸出結果

資源截圖

代碼片段和文件信息

#include?
#include?
#include?
#include?
#include?
#include???
#define?N?8192?????????????????????//矩陣的階數??
#define?MASTER?0??????????????????//主進程號??
#define?FROM_MASTER?1?????????????//設置消息類型??
#define?FROM_WORKER?2?????????????//設置消息類型??
MPI_Status?status;??
void?main(int?argcchar?**argv)??
{??
????int?numtasks???????????????????//進程總數??
?????????taskid????????????????????//進程標識??
?????????numworkers????????????????//從進程數目??
?????????source????????????????????//消息源??
?????????dest??????????????????????//消息目的地??
?????????nbytes??
?????????mtype?????????????????????//消息類型??
?????????rows???????????????????????
?????????averowextraoffset???????//從進程所分的行數??
?????????ijkt??
?????????count;??
???double?A[N][N]B[N][N];??
???long?long?C[N][N];??
???long?long?sumand?=?0;???????????//求的乘積矩陣的所有元素的和??
???double?starttimeendtime;??
???MPI_Init(&argc&argv);???//?初始化MPI環境??
???MPI_Comm_rank(MPI_COMM_WORLD&taskid);//標識各個MPI進程?,告訴調用該函數進程的當前進程號??
???MPI_Comm_size(MPI_COMM_WORLD&numtasks);//用來標識相應進程組中有多少個進程??
???numworkers?=?numtasks-1;?????//從進程數目??
??
/*?程序采用主從模式,以下為主進程程序?*/??
?????
if(taskid==MASTER)??
{??
????printf(“--------主進程開始對矩陣A、B初始化\n“);??
????//對A矩陣B矩陣?進行初始化賦值??
????for(i=0;i????{??
????????t?=?i?+?1;???
????????for(j=0;j????????{??
???????????A[i][j]=?t?++?;??
???????????B[i][j]=?1;??
????????}??
????}??
????printf(“--------主進程開始對從進程發送數據\n“);??
???starttime?=?MPI_Wtime();
?/*將數據(A矩陣B矩陣)發送到從進程*/??
????averow=N/numworkers;???//?每個從進程所得到的行數??
????extra=N%numworkers;??
????offset=0;??
????mtype=FROM_MASTER;??
????for(dest=1;dest<=numworkers;dest++)??
????{??
????????rows=(dest<=extra)???averow+1:averow;??
????????//發送標識每個從進程開始尋找數據矩陣的偏移地址??
????????MPI_Send(&offset1MPI_INTdestmtypeMPI_COMM_WORLD);??
????????//發送每個從進程需要計算的行數??
????????MPI_Send(&rows1MPI_INTdestmtypeMPI_COMM_WORLD);??
????????//發送每個從進程?count=rows*N?比特流偏移量??
????????count=rows*N;??
????????//發送?矩陣?A??
????????MPI_Send(&A[offset][0]countMPI_DOUBLEdestmtypeMPI_COMM_WORLD);

評論

共有 條評論