OK, now I see a clouded path to follow: use Asynchronous Steppable just for
a certain time-consuming display and leave the rest GUI unchanged.
From: Maciej M. Latek [mailto:[log in to unmask]]
Sent: Tuesday, October 10, 2006 12:31 PM
To: 'MASON Multiagent Simulation Toolkit'
Subject: Make things more parallel
I've got a question concerning parallelization of visualization inspired by
parallel version of Heatbugs (which works very nicely on a Core Duo by the
way, one can really see the difference) and Mr. Ong's problem.
My understanding is that, as the GUI thread repaints displays, the SimState
thread is put on hold. When we consider really computationally expensive GUI
tasks as laying out a graphs, this seems to be suboptimal solution. I was
wondering if it would be possible to put the two thread on separate
processors, have the GUI thread probe the other one for information and
afterwards to detach and free the SimState thread to go ahead while GUI is
doing its job. After GUI is done, the process would repeat.
I realize that in general I would loose synchronization, but if I'm laying
something out let's say each 50 time-steps and still have to wait few second
for the simulation to resume, this path would provide me with much smoother
and faster performance.
The questions are:
1) Is it doable?
2) Would it violate some important MASON design principle?
3) How much modification to MASON core would one have to introduce to arrive
at such a solution?