[SCore-users] Re: Gang scheduling implementation

Atsushi HORI hori at swimmy-soft.com
Thu Oct 3 14:48:23 JST 2002


Hi.

>If you have an application running on multitple nodes and if it has to 
>share the processor on only some of the compute nodes then how does 
>SCore handle the scheduling and how is gang scheduling done in this 
>situation?? For instance we have one of the NAS benchmarks like CG 
>compiled for 4 nodes. We run CG on four compute nodes comp1, comp2, 
>comp3 and comp4. Also, we run another application like IS compiled for 2 
>nodes only, on comp1 and comp2 nodes. CG has to share the processor on 
>comp1 and comp2 only. But on comp3 and comp4 it has the processor for 
>itself. How does gang scheduling work in this situation.

Just comp3 and comp4 are in idle when the second CG is scheduled to 
run, just because this is the way of "gang" scheduling based on the 
assumption in which distributed processes are communicating each 
other frequently, and even the processes on comp3 and comp4 are 
scheduled but they are simply waiting for the reply messages from 
comp1 and comp2.

>Typically, according to my understanding the SCore-D has a server 
>process (running on the server host) that initiates the preemption and 
>context switch on all the compute hosts (that is handled by score-d 
>processes on the compute nodes). But when there is no processor sharing 
>on some of the nodes (comp3 and comp4 in this case), does SCore-D force 
>a preemption on those nodes too?

Fisrt, there is no dedicated process as a scheduling server in 
SCore-D. SCore-D is multi-threaded program, and some of running 
processes act like a server. 

Second, SCore-D intentionally preempts user processes because of 
deadlock detection. When SCore-D detects deadlock state in user 
processes, it kills them.

----
Atsushi HORI
Swimmy Software, Inc.




More information about the SCore-users mailing list