Again: Just wondering: any AI kernel/system optimization cq. control projects?

Alex Ninaber (anina01@mail.cryst.bbk.ac.uk)
Wed, 24 Jun 1998 12:39:48 +0100 (BST)


Rik van Riel wrote:

> There are several pieces of self-tuning code inside the
> kernel. The most obvious ones are in the TCP code and
> in the mmap() readahead (mm/filemap.c)...
> It might not be AI, but it'll pass the AI Turing test nicely :)

I guess self-tuning code is pretty good as well, but I am thinking in
terms of usage pattern recognition. For instance: during the day my disk
is NFS mounted onto several other computers, supplying them with Linux
software. If I start playing Quake on my machine, the others should still
have enough speed for starting up their applications. During the night I
use the machine solely for number crunching purposes, and no one would
ever use the machine for anything else. That would be a typical usage
pattern of my machine, and I can imagine that both situations would be
better optimized with totally different settings. The optimum setting of a
parameter can be depended on several things: f.i specific system usage and
setting of other parameters. In this multidimenional 'parameter space' it
is not trivial to find a optimum path, certainly not with ordinary single
parameter solutions. I would guess the Linux parameters are optimized for
the typical average Linux user? Or are they much more flexible and change
according to settings of other parameters...

I do not think it is terribly difficult to implement some sort of a AI
optimizing system, it does not have to be inside the kernel. As long there
is a way to read and change the parameters, it can be done. The AI
implementation would have a learning phase, testing optimum settings
during a period of time and learning about the typical usage of the
system, and a production phase, where it would change the settings as soon
it recognizes a certain state of the computer. Two possible problems are:
the time consumed during the production phase by the AI implementation
should be as little as possible, and the AI implementation would never
guess certain wishes of the user. Pherhaps the owner of the system is a
selfish b. and would wish to give as little as possible time to the other
people using his system. This would require a completely different type of
AI.... or just user input for setting up the boundaries. The good thing is
that if a computer is used for one task only, the system would optimize
itself to serve this task completely, and the production phase would cost
almost nothing (only checking whether the pattern has changed).

Anyway, little do I know of kernels, so most of what I just said is just
waving hands. That is why I posed the question in the first place, I have
no clue, but would love to play around with something like that.

Alex

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu