Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] MPI_Finalize() maintains load at 100%.
From: Iván Cores González (ivan.coresg_at_[hidden])
Date: 2014-05-23 04:45:48


Hi all,
I have a performance problem with the next code.

int main( int argc, char *argv[] )
{
            MPI_Init(&argc, &argv);

            int myid;
            MPI_Comm_rank(MPI_COMM_WORLD, &myid);

        //Imagine some important job here, but P0 ends first.
           if (myid != 0)
           {
                   sleep(20);
           }
                
            printf("Calling MPI_Finalize() ...\n");
            // Process 0 maintain core load at 100%.
            MPI_Finalize();
            printf("Ok\n");
            
            return 0;
}

If some MPI threads call MPI_Finalize() while others threads are still
"working", the MPI_Finalize() function maintains the core load in 100%
and not allows other threads or jobs in the processor to run faster.

Any idea to avoid the load or force the P0 to sleep?

Thanks,
Ivan Cores.