亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? svd.c

?? 高性能計算程序示例之四
?? C
字號:
#include "stdio.h"#include "stdlib.h"#include "mpi.h"#include "math.h"#include "string.h"#define E 0.0001#define intsize sizeof(int)#define floatsize sizeof(float)#define A(x,y) A[x*col+y]                         /* A is matrix row*col */#define I(x,y) I[x*col+y]                         /* I is matrix col*col */#define U(x,y) U[x*col+y]#define B(x)   B[x]#define a(x,y) a[x*col+y]#define e(x,y) e[x*col+y]int col,row;int m,n,p;int myid,group_size;float *A,*I,*B,*U;float *a,*e;MPI_Status status;float starttime,endtime,time1,time2;void read_fileA(){    int i,j;    FILE *fdA;    time1=MPI_Wtime();    fdA=fopen("dataIn.txt","r");    fscanf(fdA,"%d %d", &row, &col);    A=(float*)malloc(floatsize*row*col);    for(i = 0; i < row; i ++)    {        for(j = 0; j < col; j ++) fscanf(fdA, "%f", A+i*row+j);    }    fclose(fdA);    printf("Input of file \"dataIn.txt\"\n");    printf("%d\t %d\n",row, col);    for(i=0;i<row;i++)    {        for(j=0;j<col;j++) printf("%f\t",A(i,j));        printf("\n");    }    I=(float*)malloc(floatsize*col*col);    for(i=0;i<col;i++)        for(j=0;j<col;j++)            if (i==j) I(i,j)=1.0;    else I(i,j)=0.0;}int main(int argc,char **argv){    int loop;    int i,j,v;    int p,group_size,myid;    int k;    float *sum, *ss;    float aa,bb,rr,c,s,t;    float su;    float *temp,*temp1;    MPI_Init(&argc,&argv);    MPI_Comm_size(MPI_COMM_WORLD,&group_size);    MPI_Comm_rank(MPI_COMM_WORLD,&myid);    if (myid==0) starttime=MPI_Wtime();    p=group_size;    loop=0;    k=0;    if (myid==0)        read_fileA();    MPI_Bcast(&row,1,MPI_INT,0,MPI_COMM_WORLD);    MPI_Bcast(&col,1,MPI_INT,0,MPI_COMM_WORLD);    m=row/p; if (row%p!=0) m++;                   /*    for a    */    n=col/p; if (col%p!=0) n++;                   /*    for e    */    if (myid==0)    {        B=(float*)malloc(floatsize*col);        U=(float*)malloc(floatsize*row*col);    }    a=(float*)malloc(floatsize*m*col);    e=(float*)malloc(floatsize*n*col);    temp=(float*)malloc(floatsize*m);    temp1=(float*)malloc(floatsize*n);    ss=(float*)malloc(floatsize*3);    sum=(float*)malloc(floatsize*3);    if (myid==0)    {        for(i=0;i<m;i++)            for(j=0;j<col;j++)                a(i,j)=A(i,j);        for(i=0;i<n;i++)            for(j=0;j<col;j++)                e(i,j)=I(i,j);        for(i=1;i<p;i++)        {            MPI_Send(&(A(m*i,0)),m*col,MPI_FLOAT,i,i,MPI_COMM_WORLD);            MPI_Send(&(I(n*i,0)),n*col,MPI_FLOAT,i,i,MPI_COMM_WORLD);        }    }    else    {        MPI_Recv(a,m*col,MPI_FLOAT,0,myid,MPI_COMM_WORLD,&status);        MPI_Recv(e,n*col,MPI_FLOAT,0,myid,MPI_COMM_WORLD,&status);    }    if (myid==0)                                  /* start computing now */        time2=MPI_Wtime();    while (k<=col*(col-1)/2)    {        for(i=0;i<col;i++)            for(j=i+1;j<col;j++)        {            ss[0]=0; ss[1]=0; ss[2]=0;            sum[0]=0; sum[1]=0; sum[2]=0;            for(v=0;v<m;v++)                ss[0]=ss[0]+a(v,i)*a(v,j);            for(v=0;v<m;v++)                ss[1]=ss[1]+a(v,i)*a(v,i);            for(v=0;v<m;v++)                ss[2]=ss[2]+a(v,j)*a(v,j);            MPI_Allreduce(ss,sum,3,MPI_FLOAT,MPI_SUM,MPI_COMM_WORLD);            if (fabs(sum[0])>E)            {                aa=2*sum[0];                bb=sum[1]-sum[2];                rr=sqrt(aa*aa+bb*bb);                if (bb>=0)                {                    c=sqrt((bb+rr)/(2*rr));                    s=aa/(2*rr*c);                }                if (bb<0)                {                    s=sqrt((rr-bb)/(2*rr));                    c=aa/(2*rr*s);                }                for(v=0;v<m;v++)                {                    temp[v]=c*a(v,i)+s*a(v,j);                    a(v,j)=(-s)*a(v,i)+c*a(v,j);                }                for(v=0;v<m;v++)                    a(v,i)=temp[v];                for(v=0;v<n;v++)                {                    temp1[v]=c*e(v,i)+s*e(v,j);                    e(v,j)=(-s)*e(v,i)+c*e(v,j);                }                for(v=0;v<n;v++)                    e(v,i)=temp1[v];            }            else                k++;        }                                         /* for */        loop ++;    }                                             /* while */    if (myid==0)    {        for(i=0;i<m;i++)            for(j=0;j<col;j++)                A(i,j)=a(i,j);        for(i=0;i<n;i++)            for(j=0;j<col;j++)                I(i,j)=e(i,j);    }    if (myid!=0)        MPI_Send(a,m*col,MPI_FLOAT,0,myid,MPI_COMM_WORLD);    else    {        for(j=1;j<p;j++)        {            MPI_Recv(a,m*col,MPI_FLOAT,j,j,MPI_COMM_WORLD,&status);            for(i=0;i<m;i++)                for(k=0;k<col;k++)                    A((j*m+i),k)=a(i,k);        }    }    if (myid!=0)        MPI_Send(e,n*col,MPI_FLOAT,0,myid,MPI_COMM_WORLD);    else    {        for(j=1;j<p;j++)        {            MPI_Recv(e,n*col,MPI_FLOAT,j,j,MPI_COMM_WORLD,&status);            for(i=0;i<n;i++)                for(k=0;k<col;k++)                    I((j*n+i),k)=e(i,k);        }    }    if (myid==0)    {        for(j=0;j<col;j++)        {            su=0.0;            for(i=0;i<row;i++)                su=su+A(i,j)*A(i,j);            B(j)=sqrt(su);        }        for(i=1;i<col;i++)            for(j=0;j<i;j++)        {            t=I(i,j);            I(i,j)=I(j,i);            I(j,i)=t;        }        for(j=0;j<col;j++)            for(i=0;i<row;i++)                U(i,j )=A(i,j )/B(j);        printf(".........U.........\n");        for(i=0;i<row;i++)        {            for(j=0;j<col;j++)                printf("%f\t",U(i,j));            printf("\n");        }        printf("........E.........\n");        for(i=0;i<col;i++)            printf("%f\t",B(i));        printf("\n");        printf("........Vt........\n");        for(i=0;i<col;i++)        {            for(j=0;j<col;j++)                printf("%f\t",I(i,j));            printf("\n");        }    }    if (myid==0)    {        endtime=MPI_Wtime();        printf("\n");        printf("Iteration num = %d\n",loop);        printf("Whole running time    = %f seconds\n",endtime-starttime);        printf("Distribute data time  = %f seconds\n",time2-time1);        printf("Parallel compute time = %f seconds\n",endtime-time2);    }    MPI_Finalize();    free(a);    free(e);    free(A);    free(U);    free(I);    free(B);    free(temp);    free(temp1);    return(0);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品一区二区三区蜜桃 | 亚洲精品一线二线三线| 粉嫩av一区二区三区在线播放| 欧美高清在线精品一区| 91黄色小视频| 精品在线免费视频| 亚洲女同ⅹxx女同tv| 日韩女同互慰一区二区| 一本高清dvd不卡在线观看| 免费久久99精品国产| 亚洲人成在线播放网站岛国| 欧美成人女星排名| 欧美主播一区二区三区| 国产91色综合久久免费分享| 婷婷国产在线综合| 亚洲欧洲成人自拍| 精品久久久久久无| 7777精品伊人久久久大香线蕉完整版 | 日韩一级在线观看| 色综合一区二区三区| 国产一区二区在线看| 亚洲最大成人网4388xx| 国产欧美日韩在线| 精品国产人成亚洲区| 欧美日韩精品欧美日韩精品一| 成人综合日日夜夜| 久久精品国产亚洲a| 五月天亚洲婷婷| 亚洲精品一卡二卡| 国产精品久久久久久久久快鸭| 欧美精品一区二区三区在线| 91精品一区二区三区在线观看| 在线视频欧美精品| 色天使久久综合网天天| 99久久精品免费精品国产| 国产精品一区二区不卡| 免费的成人av| 日韩 欧美一区二区三区| 午夜久久久影院| 亚洲一区在线电影| 亚洲午夜国产一区99re久久| 亚洲精品免费视频| 亚洲男同1069视频| 综合在线观看色| 中文字幕佐山爱一区二区免费| 日本一区二区三区在线不卡| 精品久久久久久久久久久院品网| 日韩三级中文字幕| 日韩一二三四区| 精品捆绑美女sm三区| 日韩久久精品一区| 精品噜噜噜噜久久久久久久久试看 | 综合电影一区二区三区 | 亚洲激情av在线| 最新成人av在线| 一区二区三区四区不卡在线| 一区二区三区在线观看视频| 亚洲精品国产无套在线观| 亚洲男人天堂一区| 亚洲一区二区三区美女| 亚洲成在人线在线播放| 日韩电影一区二区三区| 卡一卡二国产精品| 国产一区二区免费视频| 成人黄色电影在线| 在线观看日韩电影| 欧美日韩www| 日韩精品一区二区三区swag| 国产亚洲欧美色| 国产精品毛片久久久久久久| 一片黄亚洲嫩模| 美女久久久精品| 国产成人一区在线| 91啪九色porn原创视频在线观看| 在线一区二区三区做爰视频网站| 欧美日韩高清一区二区不卡| 91精品国产91久久久久久一区二区 | 欧美日韩一区 二区 三区 久久精品 | 免费xxxx性欧美18vr| 国内一区二区在线| 91香蕉国产在线观看软件| 欧美在线视频日韩| 精品国产第一区二区三区观看体验| 欧美—级在线免费片| 亚洲一区成人在线| 国产综合色精品一区二区三区| 91在线观看污| 91麻豆精品91久久久久同性| 国产欧美日产一区| 亚洲123区在线观看| 国产真实乱对白精彩久久| 日本电影亚洲天堂一区| 精品成人在线观看| 亚洲第一狼人社区| 国产精品一级二级三级| 欧美日韩亚洲综合一区二区三区 | 久久影院午夜片一区| 最新高清无码专区| 日本午夜精品一区二区三区电影| 久久99久久99精品免视看婷婷| 91在线观看地址| 欧美精选一区二区| 欧美国产精品一区二区三区| 一级精品视频在线观看宜春院| 免费观看在线综合色| 成人精品国产福利| 久久综合久久99| 一区二区三区成人在线视频| 国产自产高清不卡| 日本精品裸体写真集在线观看| 日韩欧美三级在线| 亚洲欧美另类小说视频| 国产精品一区一区三区| 欧美色成人综合| 国产性色一区二区| 亚洲一区视频在线| 国产99久久久久久免费看农村| 欧美视频你懂的| 欧美xxx久久| 亚洲一区二区成人在线观看| 国产经典欧美精品| 欧美一区二区三区四区视频| 亚洲丝袜自拍清纯另类| 国产精品69毛片高清亚洲| 欧美日韩高清一区二区| 精品动漫一区二区三区在线观看| 亚洲国产欧美在线| 成人美女视频在线观看18| 久久久久久久综合日本| 亚洲成在人线在线播放| 一本大道久久a久久综合| 欧美激情一区三区| 蜜臀av性久久久久蜜臀aⅴ | 91精品国产色综合久久| 亚洲欧洲成人av每日更新| 国产一区二区三区国产| 91成人在线免费观看| 亚洲综合色噜噜狠狠| 成人免费视频一区二区| 精品国产一区二区三区不卡| 午夜一区二区三区在线观看| 色婷婷精品久久二区二区蜜臀av| 久久久久久亚洲综合影院红桃| 日韩成人免费在线| 欧美日韩亚洲综合在线| 亚洲影院在线观看| 91美女片黄在线| 日韩精品在线网站| 一区二区视频免费在线观看| 91一区二区在线观看| 国产欧美一区二区精品忘忧草| 蜜乳av一区二区| 欧美一区二区观看视频| 最好看的中文字幕久久| 欧美性高清videossexo| 一区二区三区欧美视频| 色综合久久久久综合99| 国产精品国产自产拍高清av王其 | 日韩一级片在线观看| 亚洲超碰精品一区二区| 在线欧美一区二区| 亚洲国产精品久久不卡毛片| 欧美影片第一页| 亚洲超碰97人人做人人爱| 欧美日本乱大交xxxxx| 久久精品国产一区二区三| 精品国产髙清在线看国产毛片| 精品一区二区三区在线观看 | 欧美一激情一区二区三区| 蜜臀av性久久久久蜜臀aⅴ | 成人免费一区二区三区视频| 不卡视频在线看| 国产喂奶挤奶一区二区三区| 色综合一区二区三区| 亚洲综合在线第一页| 欧美日韩久久久一区| 免费成人av资源网| 欧美一卡二卡三卡四卡| 国产91在线|亚洲| 亚洲欧美日韩人成在线播放| 在线视频一区二区三区| 五月天丁香久久| 日韩一区二区三区电影在线观看| 懂色av中文字幕一区二区三区 | 亚洲国产一区视频| 91精品国产综合久久久久久漫画| 日韩不卡手机在线v区| 中文字幕欧美日韩一区| 色婷婷av久久久久久久| 日韩综合小视频| 久久久久久久久久久黄色| 丰满少妇在线播放bd日韩电影| 国产精品蜜臀av| 欧美日韩亚洲国产综合| 国产一区二区三区电影在线观看| 国产精品对白交换视频 | 欧美日韩免费电影| 国产福利一区二区三区视频| 亚洲免费av高清| 精品久久久久一区二区国产|