Matthew Fulmer | 9 Jul 04:00

Re: Message queues: TIsland vs TIslandController

On Tue, Jul 08, 2008 at 06:38:47PM -0700, Andreas Raab wrote:
> This is exactly how it works. The island's event queue is a priority 
> queue of messages, sorted by time. TIsland methods like #decode:, 
> #scheduleMessage:at:, and #advanceTo: can be used to deliver, schedule 
> and execute messages up to any time you'd like to. TIslandController and 
> friends use this API to "run" the islands by controlling the flow of 
> time coming from the router. It is utterly trivial to write a little 
> loop that executes all outstanding messages right away but it is also 
> utterly pointless ;-) 

Well, that is exactly what I want to do. I want to use islands
to handle parallel computation, like a higher-level MPI.
Computation is timeless. I am working on how to demo this by
writing a parallel raytracer using islands as the units of
parallism.

It would also be useful to have a controller that released
messages under user controll, so that islands could be stepped,
one message at a time, like the Tweak debugger can do, except
with an entire island.

I guess it's just a simple matter of programming.

> A more realistic thing to try is to run the 
> messages based on the local wall clock which TLocalController does.
> 
> And just in case you are wondering why this is being factored into the 
> various controllers instead of subclassing TIsland - that's because you 
> can't snapshot an image segment for replication with all that crap in it ;-)

TIslandControllers do not run inside an island, as they are
external to the island abstraction. 

--

-- 
Matthew Fulmer -- http://mtfulmer.wordpress.com/


Gmane