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

📄 vec_master.c

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 C
字号:
#include "p4.h"#include "sr_user.h"    #define MAX_VECLEN 10000int msg[MAX_VECLEN];main(argc,argv)int argc;char **argv;{    int nslaves;    int type, size, id, from;    int my_id;    char *incoming;    int done;    int i, veclen, count;    int starttime, endtime;    p4_usc_time_t start_ustime, end_ustime, rollover;    p4_initenv(&argc,argv);    p4_create_procgroup();        nslaves = p4_num_total_ids() - 1;    printf("number of slaves = %d\n",nslaves);    my_id = p4_get_my_id();    rollover = p4_usrollover();    printf("rollover=%d\n",rollover);        done = FALSE;    while (!done)    {	printf("vector length: ");	scanf("%d",&veclen);	if (veclen > MAX_VECLEN)	{	    printf("too big;  using %d\n",MAX_VECLEN);	    veclen = MAX_VECLEN;	}	for (i=0; i<veclen; i++)	    msg[i] = i;	printf("times around loop (or 0 for end): ");	scanf("%d",&count);		if (count == 0)	    done = TRUE;	else	{	    starttime = p4_clock();	    start_ustime = p4_ustimer();	    while (count > 0)	    {		p4_sendx(DATA, 1, msg, veclen*sizeof(int), P4INT);		type = -1;		from = -1;		incoming = NULL;		p4_recv(&type, &from, &incoming, &size);		compare_vec(msg,incoming,veclen);		p4_msg_free(incoming);		count--;	    }	    end_ustime = p4_ustimer();	    endtime = p4_clock();	    printf("time %d milliseconds\n",endtime-starttime);	    printf("time %d microseconds\n",end_ustime-start_ustime);	}    }    p4_send(END, 1, msg, 0);    type = -1;    from = -1;    incoming = NULL;    p4_recv(&type, &from, &incoming, &size);    p4_msg_free(incoming);    p4_wait_for_end();    printf("master exiting normally\n");}compare_vec(a,b,len)int a[], b[];int len;{    int i;    for (i=0; i < len; i++)    {	if (a[i] != b[i])	    printf("a[%d] = %d, b[%d] = %d\n",i,a[i],i,b[i]);    }}	    

⌨️ 快捷键说明

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