+++ /dev/null
-/*
- * 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;
-}
-
-
-