Exemplos de Programa em Parix |
===================================================================== /* * exm1.c - example program #1 for PARIX training */ #includeint main (void) { printf ("Hello, world !\n"); return 0; } ===================================================================== /* * exm2.c - example program #2 for PARIX training */ #include #include int main (void) { int myID, totalProcs; myID = GET_ROOT()->ProcRoot->MyProcID; totalProcs = GET_ROOT()->ProcRoot->nProcs; printf ("Hello, I am processor %d of %d !\n", myID, totalProcs); return 0; } ===================================================================== /* * exm3.c - example program #3 for PARIX training */ #include #include #include int main (void) { int myID, first, last, error; LinkCB_t *Link2You; long msg = 123456; myID = GET_ROOT()->ProcRoot->MyProcID; first = 0; last = GET_ROOT()->ProcRoot->nProcs-1; if( myID == first ) Link2You = ConnectLink( last, 42, &error ); if( myID == last ) Link2You = ConnectLink( first, 42, &error ); if( myID == first ) { printf ("Processor %d sending %ld\n", myID, msg); SendLink( Link2You, &msg, sizeof(msg) ); } if( myID == last ) { RecvLink( Link2You, &msg, sizeof(msg) ); printf("Processor %d received %ld\n", myID, msg ); } return 0; } ===================================================================== /* * exm4.c - example program #4 for PARIX training */ #include #include #include #include #define FORWARD 0 #define BACKWARD 1 int main (int argc, char **argv) { int nProcs, myID, topID, number; myID = GET_ROOT()->ProcRoot->MyProcID; nProcs = GET_ROOT()->ProcRoot->nProcs; topID = MakeRing( 42, nProcs, MINSLICE, MAXSLICE, MINSLICE, MAXSLICE, MINSLICE, MAXSLICE ); if( topID < 0 ) { printf("Error (%d) building the ring at processor %d\n", topID, myID); return( 1 ); } if( myID == 0 ) { number = 0; printf("Processor %d is nr %d in the ring\n", myID, number ); number++; Send( topID, FORWARD, &number, sizeof(number) ); Recv( topID, BACKWARD, &number, sizeof(number) ); printf("Ring completed, %d processors found\n", number); } else { Recv( topID, BACKWARD, &number, sizeof(number) ); printf("Processor %d is nr %d in the ring\n", myID, number ); number++; Send( topID, FORWARD, &number, sizeof(number) ); } return 0; } ===================================================================== #include #include #include main(int argc, char **argv) { int myID, i, darts, hits=0; double x, y; myID = GET_ROOT()->ProcRoot->MyProcID; srand( myID * 100 ); if( argc < 2 ) darts = 10000; else darts = atoi( argv[1] ); for(i=0;i
Last modified: Thu Oct 31 08:40:26 EDT 1996