Kamaelia Multicore Support

In response to a blog post over at Ye Olde Clue. I thought I’d write up my thoughts on this topic since I’m (hopefully) going to try to review this code and merge it into the core of Kamaelia. I say hopefully because it’s partly a matter of experience with subversion which at the minute I’m a few years behind other people on the Kamaelia project. Fortunately they’re all patient with me while I ask questions.
Okay, so, meanwhile back at the point: “Where should Multicore support sit in the Kamaelia tree?”
In my opinion the scope of what we’re calling “Multicore support”, is potentially more than just that. It potentially opens up avenues for things like distributed computing and many interesting things which require “Process Manipulation”. Of course I don’t see this happening in the near future but Kamaelia already has some very cool support for various network protocols. I think it would be reasonably trivial now we have 2 Processes working on different cores to stretch the distance of those cores to say the scale of a WAN. That sounds pretty damn cool to me, it may be a long way off or have little benefits. However with Axon I believe this kind of thing could be done in 1 line of code as opposed to several hundred. Yet again displaying how the Axon model makes concurrency so elegant and simple.
More immediate effects (pointed out by Matt on IRC) this component also applies to single core CPU’s with things like Hyperthreading, along with any other/further technologies implemented on this level of hardware.
Okay so I kinda rambled off-topic. Anyway; for things like this I think it’s a good idea to not box this into a label like “Multicore support” when we’re looking at another tool in Kamaelia arsenal :-)
This is why I would rather see this code placed in “Kamaelia.Chassis.Process” rather than “Kamaelia.Chassis.Multicore”. Hopefully this makes sense.

Organization: BBC Research Original: Source