⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 李天琦论文源程序[1].c.c

📁 机群环境下投资决策模型的并行化
💻 C
字号:
#include "mpi.h"#include <stdio.h>#define max 64#define time 4#define project 6int main(argc,argv)int argc;char * argv[];{    int rank,size,root;    float *rbuf,*sbuf;    float x[project][time]={ {0.6874,0.3319,0.4010,0.6104},/*the value of the binary*/                             {0.4262,0.6037,0.6821,0.6729},                             {0.3412,0.4269,0.2822,0.1666},                             {0.7302,0.3998,0.3978,0.4415},                             {0.8809,0.7118,0.2913,0.3678},                             {0.0892,0.2760,0.7326,0.1140}, };     float b[max][project]; /*  the percent */    float a[project]={0,0,0,0,0,0};/*    */    float buf[time]={0,0,0,0};/**/    int i,j;    /*  count  */    int bn,tn;    int flag;/*the flag of if the result is the right one*/    int gsize=time;    rbuf=&buf[0];            MPI_Init(&argc,&argv);    MPI_Comm_rank(MPI_COMM_WORLD,&rank);    MPI_Comm_size(MPI_COMM_WORLD,&size);        for(i=0;i<max;i++)    {        for(j=0;j<project;j++)        {b[i][j]=0;}    }    b[0][0]=0.24;b[0][1]=0.29,b[0][2]=0.05;    b[0][3]=0.19,b[0][4]=0.14,b[0][5]=0.09;        sbuf=(float *)malloc(sizeof(float));    rbuf=(float *)malloc(time*sizeof(float));    bn=-1;        do{        bn++;	flag=0;	for(i=0;i<project;i++)	    a[i]=0;	for(i=0;i<time;i++)	    buf[i]=0;		j=rank;        for(i=0;i<project;i++) 	    buf[j]=buf[j]+(b[bn][i]*x[i][j]);	*sbuf=buf[j];	MPI_Barrier(MPI_COMM_WORLD);        MPI_Allgather(sbuf,1,MPI_FLOAT,rbuf,1,MPI_FLOAT,MPI_COMM_WORLD);        MPI_Barrier(MPI_COMM_WORLD);	for(i=0;i<time;i++)	  buf[i]=*(rbuf+i);		for(j=0;j<project;j++)	{	  for(i=0;i<time;i++)	    a[j]=a[j]+(x[j][i]/buf[i]);	  a[j]=a[j]/time;	}	for(i=0;i<project;i++)	{	  b[bn+1][i]=b[bn][i]*a[i];	  if((b[bn+1][i]-b[bn][i])<0.01)	    flag++;	}    }while(flag!=project);	if(rank==0)	{printf("\n===================");	 for(i=0;i<project;i++)	  printf("\n%f",b[bn+1][i]);		}	MPI_Finalize();	return 0;} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -