[Mpi3-hybridpm] MPI thread requirements (was RE: Telecon: 06/23)

Pavan Balaji 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.

  -- Pavan

-- 
Pavan Balaji
http://www.mcs.anl.gov/~balaji



More information about the mpiwg-hybridpm mailing list