From: Nick Piggin <piggin@cyberone.com.au>
To: Piet Delaney <piet@www.piet.net>
Cc: Jamie Lokier <jamie@shareable.org>,
George Anzinger <george@mvista.com>,
Clayton Weaver <cgweav@email.com>,
linux-kernel@vger.kernel.org
Subject: Re: Circular Convolution scheduler
Date: Thu, 16 Oct 2003 19:03:45 +1000 [thread overview]
Message-ID: <3F8E5EF1.8000807@cyberone.com.au> (raw)
In-Reply-To: <1066293245.1481.150.camel@www.piet.net>
Piet Delaney wrote:
>On Tue, 2003-10-14 at 03:28, Nick Piggin wrote:
>
>>
>>Jamie Lokier wrote:
>>
>>
>>>Nick Piggin wrote:
>>>
>>>
>>>>I don't know anything about it, but I don't see what exactly you'd be
>>>>trying to predict: the kernel's scheduler _dictates_ scheduling behaviour,
>>>>obviously. Also, "best use of system resources" wrt scheduling is a big
>>>>ask considering there isn't one ideal scheduling pattern for all but the
>>>>most trivial loads, even on a single processor computer (fairness, latency,
>>>>priority, thoughput, etc). Its difficult to even say one pattern is better
>>>>than another.
>>>>
>>>>
>>>Hmm. Prediction is potentially useful.
>>>
>>>Instead of an educated ad-hoc pile of heuristics for _dictating_
>>>scheduling behaviour, you can systematically analyse just what is it
>>>you're trying to achieve, and design a behaviour which achieves that
>>>as closely as possible.
>>>
>>>
>>Maybe, although as I said, I just don't know what exactly you would
>>predict and what the goals would be.
>>
>>And often you'll be left with an ad-hoc pile of heuristics driving
>>(or being driven by) your ad-hoc analysis / prediction thingy. Analysing
>>the end result becomes very difficult. See drivers/block/as-iosched.c :P
>>
>>
>>>This is where good predictors come in: you feed all the possible
>>>scheduling decisions at any point in time into the predictor, and use
>>>the output to decide which decision gave the most desired result -
>>>taking into account the likelihood of future behaviours. Of course
>>>you have to optimise this calculation.
>>>
>>>This is classical control theory. In practice it comes up with
>>>something like what we have already :) But the design path is
>>>different, and if you're very thoroughly analytical about it, maybe
>>>there's a chance of avoiding weird corner behaviours that weren't
>>>intended.
>>>
>
>I was wondering about an application in user space that monitors
>various time series within the system. It would periodically
>perform System Identification by placing the samples
>into a matrix and find the cross correlation coefficients by
>minimizing the noise of their combination. This matrix would then
>by run in real time, perhaps in the kernel, to crank a Kalman Filter
>to predict the least squares best estimate for the values of the
>system time series. Here is where ad-hoc algorithms then use these
>precicted values to dynamically change the system behavior. I would
>expect the scheduler and pageout code could do better if they knew
>that the odds are high that in 10 seconds a huge demand is going
>to be made on the system memory for example.
>
I don't expect the scheduler would benefit at all from this sort of future
knowledge or knowledge of each task's patterns.
>
>Things like effects of lunch and dinner breaks, weekend, holidays,
>stock market activity, number of servers up, could be combined with
>the servers time series. System Identification and Kalman filters
>could be run in Long Term, Medium Term, and Sort Term time frames
>to predict in these various time frames; similar to how some commodity
>traders trade in multiple time frames.
>
>You can get very fancy and even add seasonal and non-linear support
>like Dr.Harvey did at the London School of Economics.
>
I fail to see how this would be simpler or more provably "right" than a
manually designed system.
I would rather not continue in this discussion as I'm not at all
qualified to give further input, and I'm just speculating. I'd love to
see a working implementation though.
next prev parent reply other threads:[~2003-10-16 9:05 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-10-06 16:17 Circular Convolution scheduler Clayton Weaver
2003-10-07 22:19 ` George Anzinger
2003-10-14 8:37 ` Piet Delaney
2003-10-14 9:46 ` Jamie Lokier
2003-10-14 10:06 ` Nick Piggin
2003-10-14 10:18 ` Jamie Lokier
2003-10-14 10:28 ` Nick Piggin
2003-10-16 8:34 ` Piet Delaney
2003-10-16 9:03 ` Nick Piggin [this message]
2003-10-21 18:09 ` bill davidsen
-- strict thread matches above, loose matches on Subject: below --
2003-10-07 20:47 Clayton Weaver
2003-10-16 1:51 Clayton Weaver
2003-10-21 18:44 ` bill davidsen
2003-10-21 20:15 ` Richard B. Johnson
2003-10-21 20:54 ` bill davidsen
2003-10-19 8:50 Clayton Weaver
2003-10-21 18:51 ` bill davidsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=3F8E5EF1.8000807@cyberone.com.au \
--to=piggin@cyberone.com.au \
--cc=cgweav@email.com \
--cc=george@mvista.com \
--cc=jamie@shareable.org \
--cc=linux-kernel@vger.kernel.org \
--cc=piet@www.piet.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox