From: Alon K. <al...@cs...> - 2002-07-31 08:40:40
|
I don't doubt the effectiveness of backward branches and method entries as effective points at which to control the running. However, there may be a large disparity in the _time_ that a thread may run -- if it has numerous tight, nested loops or performs many method calls, it will be switched out sooner (in time) than a thread with one big loop and few method calls. I'd like to bring these two types of threads closer together and am looking for more places where I can decrement the counter that will not cause a large overhead in checking. Thanks for your help, -Alon. >I'm not sure I understand why you think backward branches and method >entries are not an appropriate set of yield points. They are the minimal >that will guarantee yielding in finite time without doing further control >and/or data flow analysis. Doing more points would increase cost, doing >fewer (in the absence of analysis) might lead to looping or recursing >indefinitely without encountering a yield point. > >What kind of predictability are you seeking? Maybe you want more >sophisticated choice than just decrementing a yield point counter at each >yield point? > >-- Eliot >============================================================================== >J. Eliot B. Moss, Associate Professor http://www.cs.umass.edu/~moss >www >Department of Computer Science +1-413-545-4206 >voice >140 Governor's Drive, Room 372 +1-413-545-1249 >fax >University of Massachusetts mo...@cs... >email >Amherst, MA 01003-9264 USA +1-413-545-3733 Priscilla Coe >sec'y >============================================================================== |
From: Alon K. <al...@cs...> - 2002-07-31 18:20:51
|
Hi Perry (and everyone else), As I understand the structure of the deterministic thread switching compiler, it is not preemptive. That is, the yield points are explicit and only occur after 1000 "ticks" of the thread switch counter, which is decremented on backedges and epilogues. Could you please clarify what you meant about the 10ms quantum? The problem that I'm hitting is upon running a suite of benchmarks and profiling the time it takes to complete 10,000 context switches, such a block may vary from 5 seconds to 13 seconds on a 1.7GHz processor. I attribute this to the different benchmarks being radically different in structure. I'd like for these blocks to be more consistent in run time. Any advice would be appreciated. Thanks, -Alon. >The distribution of the yield points does affect the promptness with which >a thread responds to a request to yield. You are right that a large loop >body or any large piece of non-cyclic basic blocks would respond more >slowly than a small loop body but keep in mind that the scheduling quantum >is, by default, 10 ms which is probably much bigger than even executing a >large call-less loop body. For example, assuming the large loop body has >10,000 instructions with an average CPI of 2.0, then the delay is still 20K >cycles, which on a 1Ghz machine, is 50 us or 0.5% of the time slice. > >How large of a disparity are you observing? > >Perry |
From: Alon K. <al...@cs...> - 2002-07-31 20:13:37
|
Yes, determinism is of utmost importance in my research project. The variance I can live with but I'd like to minimize it, which is why I'm consulting with you folks ;-). -Alon. >Ah, I misunderstood you before. I had proposed using the >quasi-preemptive >system which would thread-switch every 10ms. However >this is not deterministic. Is the determinism and low variance both of >importance? > >Perry |
From: Eliot M. <mo...@fr...> - 2002-08-01 01:24:26
|
Well, if the processor has a performance counter that counts INSTRUCTIONS (as opposed to cycles), then you might be able to do something like "switch at the first deterministic point after at least N instructions have executed". Hope this notion is of some possible use .... E ============================================================================== J. Eliot B. Moss, Associate Professor http://www.cs.umass.edu/~moss www Department of Computer Science +1-413-545-4206 voice 140 Governor's Drive, Room 372 +1-413-545-1249 fax University of Massachusetts mo...@cs... email Amherst, MA 01003-9264 USA +1-413-545-3733 Priscilla Coe sec'y ============================================================================== |