[Mpi3-hybridpm] MPI thread requirements (was RE: Telecon: 06/23)
balaji at mcs.anl.gov
Fri Jul 3 13:51:00 CDT 2009
>> Coming back to the matter of MPI requirements to the threads, I think
>> the requirement should be formulated in a functional manner, e.g.:
>> "A threading subsystem should guarantee that all threads that call MPI
>> routines will get proper attention of the processor."
>> Or better words to this effect. Please comment.
>> FYI, I'm going to be on vacation until July 27, so, you may expect
>> substantial delay in my replies.
> That's the same as defining progress. I'm not personally against that
> since progress is easy to define in formal terms. However, there seems
> to be heavy pushback from the general community. It may just be easier
> to let the MPI implementation define the thread packages it is
> compatible with.
This restriction is from the standard itself, and does not depend on
specific implementations. So, I think it is necessary that the standard
itself state what it expects from the thread library. On top of that,
each implementation is welcome to have any additional restrictions that
it cares about.
Having said that I don't particularly like the description example
provided. Primarily, it's not the processor that needs to give attention
to the threads, but the OS (e.g., if there are 4 threads on a single
core, they can still run concurrently if the OS knows how to suspend them).
As far as I can tell, the only restriction here is that when there is a
thread that is ready to run, it should eventually be allowed to run
irrespective of what any other thread or process on the system is doing.
That is, its execution cannot depend on what state another thread or
process is in.
More information about the mpiwg-hybridpm