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

📄 typedbcast.c

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 C
字号:
#include "p4.h"#define FINAL_BARRIER 4#define MESSAGE       6    main(argc,argv)int argc;char **argv;{        p4_initenv(&argc,argv);    if (p4_get_my_id() == 0)        p4_create_procgroup();    slave();    p4_global_barrier(FINAL_BARRIER); /* broadcasts may be in progress */    p4_wait_for_end();}slave()	{    int my_num, work_num;    int mtyp = MESSAGE, dummy, len, i;    int tempfrom;    float flt;    double dbl;    long lng;    char hname[100];    int hlen = 100;    gethostname(hname,hlen);    my_num = p4_get_my_id();    work_num = p4_num_total_ids();    dummy = my_num;    p4_broadcastx(mtyp, (char *) &dummy, sizeof(int), P4INT);    CheckReceives( my_num, work_num );    my_broadcastx( mtyp, (char *)&dummy, sizeof(int), P4INT);    CheckReceives( my_num, work_num );}my_broadcastx( tag, buf, size, type )int tag, size, type;char *buf;{  int myid, np, i;  myid = p4_get_my_id();  np = p4_num_total_ids();  for (i=0; i<np; i++) {    if (i!=myid) {      p4_sendx( tag, i, buf, size, type );    }  }}CheckReceives( my_num, work_num )int my_num, work_num;{  int mtyp = MESSAGE, i, len;  char *msg;  for (i=0; i<work_num; i++)    if (i != my_num)    {      msg = NULL;      p4_recv(&mtyp, &i, &msg, &len);      if (*((int *)msg) != i) {	p4_dprintf( "%d received from %d %d, not %d.\n", my_num, i,		   *((int *)msg), i );      } else {	p4_dprintf( "%d received from %d correctly.\n", my_num, i );      }    }}  

⌨️ 快捷键说明

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