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

📄 waitany.c

📁 MPICH是MPI的重要研究,提供了一系列的接口函数,为并行计算的实现提供了编程环境.
💻 C
字号:
/* * This code tests waitany; in one version of MPICH, it uncovered some * problems with the ADI Test calls. *//* #define i_ntotin 256  */ /* ok    *//* #define i_ntotin 257  */ /* fails */#define i_ntotin 256  /* fails */#include <stdio.h>#include "mpi.h"#if defined(NEEDS_STDLIB_PROTOTYPES)#include "protofix.h"#endif#define DAR 32  /* ``Data: ARray''  */int main( int argc, char **argv ) {  int locId ;  int data [i_ntotin] ;  MPI_Init(&argc, &argv) ;  MPI_Comm_rank(MPI_COMM_WORLD, &locId) ;  if(locId == 0) {    /* The server... */    MPI_Status status[2] ;    MPI_Request events [2] ;    int eventId ;    int dstId = 1 ;    int i ;    for(i = 0 ; i < i_ntotin ; i++)      data [i] = i + 1 ;    events [0] = MPI_REQUEST_NULL ;    events [1] = MPI_REQUEST_NULL ;    MPI_Isend(data, i_ntotin, MPI_INT, dstId, DAR,              MPI_COMM_WORLD, events + 1) ;        /* enable send of data */    /*_begin_trace_code  */    /* printf("locId = %d: MPI_Isend(%x, %d, %x, %d, %d, %x, %x)\n",      locId, data, i_ntotin, MPI_INT, dstId, DAR, MPI_COMM_WORLD, events [1]);       */    /*_end_trace_code  */    /*_begin_trace_code  */    /* printf("locId = %d: MPI_Waitany(%d, [%x, %x], %x %x)...",      locId, 2, events [0], events [1], &eventId, &status) ; */    /*_end_trace_code  */    MPI_Waitany(2, events, &eventId, status) ;    /*_begin_trace_code  */    printf("done.  eventId = %x\n", eventId) ;    /*_end_trace_code  */  }  if(locId == 1) {    /* The Client...  */    MPI_Status status ;    int srcId = MPI_ANY_SOURCE ;    /*_begin_trace_code  */    /*    printf("locId = %d: MPI_Recv(%x, %d, %x, %d, %d, %x, %x)...",      locId, data, i_ntotin, MPI_INT, srcId, DAR, MPI_COMM_WORLD, &status) ;      */    /*_end_trace_code  */    MPI_Recv(data, i_ntotin, MPI_INT, srcId, DAR,             MPI_COMM_WORLD, &status) ;    /*_begin_trace_code  */    /*printf("done.\n") ;*/    /*_end_trace_code  */    /*    printf("locId = %d: data [0] = %d, data [%d] = %d\n",      locId, data [0], i_ntotin - 1, data [i_ntotin - 1]) ;       */  }  MPI_Barrier( MPI_COMM_WORLD );  if (locId == 0)      printf( "Test complete\n" );  MPI_Finalize() ;  return 0;}

⌨️ 快捷键说明

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