Re: Use of AI for process scheduling

From: Timothy Miller
Date: Mon Sep 08 2003 - 17:42:47 EST




Felipe Alfaro Solana wrote:
On Mon, 2003-09-08 at 21:28, Timothy Miller wrote:


Basically, we need to write and install into the kernel an AI engine
which uses user feedback about the "feel" of the system to adjust
heuristics dynamically. For instance, if the user sees that the system
is misbehaving, they can pause the system in the kernel debugger,
examine process priorities, and indicate what "outputs" from the AI
engine are wrong. It then learns from that. Heuristics can be tweaked
until things run as desired. At that point, scheduler developers trade
emails in the AI heuristic language.


I'm no kernel expert but I think that doing what you suggest would take
an enormous amount of time and resources to do. Also, the scheduler must
be a real-time piece of software, and needs to take decisions as fast
and as accurately as possible. I think that implementing an IA-like
engine would take an great deal of resources. By the time the IA-like
scheduler has taken its decision, the whole world could have changed
since.

The AI scheduler is only used for _development_.

For deployment, the rules learned from the AI scheduler are converted to C code (or compiled directly to machine language) and used in real-time. I don't expect the rules to be so complex that the C version would use much more CPU than the current interactive schedulers being worked on by Con, Ingo, and Nick.

During development, the AI scheduler would be used in real-time, and that would have a significant effect on the performance of the system. But since it's a constant, the relative interactive behavior should be about the same between AI and deployed versions, even though the AI version uses a lot more CPU time in the kernel. That is, if the system works well with the AI scheduler, it'll work even BETTER with the compiled version.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/