Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if (myid == server) { /* I am the rand server */
- do {
- MPI_Recv(&request, 1, MPI_INT, MPI_ANY_SOURCE, REQUEST, world, &status);
- if (request) {
- int even = (status.MPI_SOURCE % 2) == 0;
- int size_to_send = even ? CHUNKSIZE2 : CHUNKSIZE;
- for (i = 0; i < size_to_send; i++) {
- rands[i] = random() % INT_MAX;
- }
- // fprintf(stderr, "Send to %d with size %d\n", status.MPI_SOURCE, size_to_send);
- if(even)
- MPI_Send(rands, size_to_send, MPI_INT, status.MPI_SOURCE, REPLY, workers_even);
- else
- MPI_Send(rands, size_to_send, MPI_INT, status.MPI_SOURCE, REPLY, workers_odd);
- }
- } while(request > 0);
- } else { /* I am a worker process */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement