📄 mark.h.txt
字号:
void bench_test(int size,int rank, MPI_Status status,int nxo, int *nx, int nx_size[])
{
time_t start, finish;
double n;
int i;
float *speed;
speed=(float*)calloc(size,sizeof(float));
if(rank==0)
printf("Starting Benchmark...\n");
start=time(&start);
for(n=0;n<=99999;n+=0.001);
{
tan(pow((double)(sin(n)/cos(n)),(double)2));
}
finish=time(&finish);
start=(int)finish-(int)start;
if(rank==0)
{
speed[0]=(float)start;
for(i=1;i<=size-1;i++)
{
MPI_Recv(&speed[i],1,MPI_FLOAT,i,3,MPI_COMM_WORLD,&status);
}
}
else
{
float sendbuf;
sendbuf=(float)start;
MPI_Send(&sendbuf,1,MPI_FLOAT,0,3,MPI_COMM_WORLD);
}
if(rank==0)
{
float max=0;
int nx_err=0;
// int nx_size[size];
for(i=0;i<=size-1;i++)
max+=speed[i];
for(i=0;i<=size-1;i++)
{
speed[i]=speed[i]/max;
}
for(i=0;i<=size-1;i++)
{
nx_size[i]=(int)(speed[i]*nxo);
}
for(i=0;i<=size-1;i++)
{
nx_err+=nx_size[i];
}
nx_size[0]+=nxo-nx_err;
*nx=nx_size[0];
for(i=1;i<=size-1;i++)
{
MPI_Send(&nx_size[i],1,MPI_INT,i,45,MPI_COMM_WORLD);
}
}
else
{
MPI_Recv(nx,1,MPI_INT,0,45,MPI_COMM_WORLD,&status);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -