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

📄 fairness-euih.c

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 C
字号:
/*  * Program to test the fairness of the MPI implementation over source. * All of the programs wait on a barrier, then node 0 starts receiving * small messages using ANY_SOURCE from all of the other nodes who * send as much as they can.  Node 0 collects statistics on the rate * messages are received from each source. (Every N messages it * prints out what percentage of the last N received were from each * source. It does this for <size-1> times. * * This program should be run with at least 8 nodes just to be (un)fair * * Patrick Bridges * bridges@mcs.anl.gov * patrick@CS.MsState.Edu  */#include <stdio.h>#include "test.h"#define MPG 200#define MSZ 1int main(argc, argv)int argc;char **argv;{    int rank, size, an_int[MSZ];     int dummy[4], d1, d2;    char *Current_Test = NULL;    int *num_array, i, j;    int dontcare, allgrp;        /* Initialize the environment */    mp_environ(&size,&rank);    /* Get allgrp from the task */    d1 = 4; d2 = 3;    mp_task_query(dummy,&d1,&d2);    allgrp = dummy[3];    dontcare = dummy[0];    Test_Init("fairness", rank);    /* Wait for everyone to be ready */    if (rank == 0) { 	/* Initialize an array to keep statistics in */	num_array = (int *)malloc((size - 1) * sizeof(int));	mp_sync(&allgrp);		for (i = 0; i < size - 1; i++) {	    /* Clear the buffer of counts */	    memset(num_array, 0, (size - 1) * sizeof(int));	    for (j = 0; j < MPG; j++) {		d1 = sizeof(int)*MSZ;		d2 = 2000;		mp_brecv(an_int, &d1, &dontcare, &d2);		num_array[d1 - 1]++;	    }	    Test_Printf("Statistics for message group %d:\n", i + 1);	    for (j = 0; j < size -1 ; j++)		Test_Printf("%f%% of last %d messages received \were from source %d.\n",			    num_array[j]*100.0/MPG, MPG, j + 1);	}	free(num_array);	(void)Summarize_Test_Results();    } else {	mp_sync(&allgrp);	for (i = 0; i < MPG; i++) {	    int d3, d4;	    d1 = MSZ*sizeof(int);	    d2 = 0;	    d3 = 2000;	    d4 = 0;	    mp_bend(an_int, &d1, &d2, &d3, &d4);	}    }    return 0;}

⌨️ 快捷键说明

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