Hi, 

I'm using Open-MPI 1.0.2 on a debian system.

I'm testing the MPI_recv function with a small C program (source code at the 
end of the message). And I see that when I'm waiting a message, calling 
MPI_recv, the CPU is used at 100 %.

Is that normal ?
Is there other ways to use a recv function (irecv, etc) that is not using the 
CPU ?

        Laurent.

Source code :

#include <mpi.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
        int rc;
        int numtasks, rank;
        int myint = 0;

        rc = MPI_Init(&argc, &argv);
        if(rc != 0) {
                printf("open error\n");
                MPI_Abort(MPI_COMM_WORLD, rc);
        }

        MPI_Comm_size(MPI_COMM_WORLD, &numtasks);
        MPI_Comm_rank(MPI_COMM_WORLD, &rank);

        printf("from cpu_test : number of tasks : %d. My rank :%d\n", numtasks, 
rank);


        MPI_Recv(&myint, 1, MPI_INT, MPI_ANY_SOURCE, MPI_ANY_TAG, 
MPI_COMM_WORLD, NULL);

        printf("message received\n");

        MPI_Finalize();

        exit(0);
}


Reply via email to