Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] "self scheduled" work & mpi receive???
From: Bowen Zhou (bwzhou_at_[hidden])
Date: 2010-09-23 13:18:23


> Hi All:
>
> I’ve written an openmpi program that “self schedules” the work.
>
> The master task is in a loop chunking up an input stream and handing off
> jobs to worker tasks. At first the master gives the next job to the
> next highest rank. After all ranks have their first job, the master
> waits via an MPI receive call for the next free worker. The master
> parses out the rank from the MPI receive and sends the next job to this
> node. The jobs aren’t all identical, so they run for slightly different
> durations based on the input data.
>
>
>
> When I plot a histogram of the number of jobs each worker performed, the
> lower mpi ranks are doing much more work than the higher ranks. For
> example, in a 120 process run, rank 1 did 32 jobs while rank 119 only
> did 2. My guess is that openmpi returns the lowest rank from the MPI
> Recv when I’ve got MPI_ANY_SOURCE set and multiple sends have happened
> since the last call.
>
>
>
> Is there a different Recv call to make that will spread out the data better?
>
>
How about using MPI_Irecv? Let the master issue an MPI_Irecv for each
worker and call MPI_Test to get the list of idle workers, then choose
one from the idle list by some randomization?

>
> THANXS!
>
> amb
>
>
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users