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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.