[comp.os.mach] Threads and concurrency

kab@myrias.com (Kenneth Bobey) (12/27/89)

Consider an application where multiple threads exist within a
single task. On a multiprocessor, when does Mach permit these
threads to execute in parallel? Is a specific architecture
(e.g. tightly coupled shared memory) required?

-- 
Ken Bobey, Myrias Research		kab@myrias.com OR uunet!myrias!kab
#900 10611-98 Ave. Edmonton Canada	DDD: 403-428-1616  FAX: 403-421-8979

af@spice.cs.cmu.edu (Alessandro Forin) (12/28/89)

In article <630775301.11467@myrias.com>, kab@myrias.com (Kenneth Bobey) writes:
> Consider an application where multiple threads exist within a
> single task. On a multiprocessor, when does Mach permit these
> threads to execute in parallel? Is a specific architecture
> (e.g. tightly coupled shared memory) required?
> 

Threads are independently scheduled by the kernel, therefore they can
all run in parallel, on any multiprocessor type.

New additions to the scheduler also permit now user control over
scheduling, by assigning threads to "processor-sets".  A processor
set contains a number of processors, all threads in a pset will be 
concurently scheduled on a corresponding set of real processors.
Also new is the handling of priorities, which could be (on a given pset)
both the regular 'timesharing'-like, or fixed priorities 'real-time'-like.
The RealTime-Mach project is using this new scheduler, among other things,
for their system.  The scheduler has also been a proven success in
parallel algorithm work (both teaching and research), since it
allows precise mesuring of parallel execution times on an otherwise
timeshared machine (Encore Multimax).

So far the bulk of the multiprocessors on which Mach runs have been tightly
coupled ones, which we call UMA (Uniform Memory Access time) multis.
The best known example of a NUMA (Non-UMA) multi is at this point the IBM ACE
multiprocessor, see the proceedings of the recent SOSP (OS Review V23,5)
for a description of their work.  The BBN Butterfly was the first such
machine to run Mach, and I believe BBN still commercially supports it 
along with their version of Mach.

To my knowledge, there is not yet any port of Mach to NORMA (NO Remote
Memory Access) multis, e.g. hypercubes and such.  Work in this area is
quite active though, we'll probably see one soon.

sandro-