
Peter Dimov wrote:
As an aside, does anyone have a success story about active objects? I can't seem to grasp their significance; in particular, how are they supposed to scale to many cores/HW threads if every access is implicitly serialized?
I don't know if this applies directly, but I've recently looked at Intel's Thread Building Blocks and I must say I'm quite impressed how they've handled things. (It's free to download for evaluation, see http://www.intel.com/software/products/tbb/) Their library is solely aimed at parallellizing cpu-limited algorithms to many cores, by means of a task scheduler and some nifty breath-first/depth-first evaluation schemes. It's different from the concept of an 'active object' which may reside on different threades/processes/cpus/machines/planets, but I think it could be one direction to think of in terms of futures and how they spawn recursively to create job objects that are handled by a thread-pool (typically one thread per core). The two problems are a bit different, but I just thought I should mention it here as I liked it a lot and I think a boost-ish implementation of something similar would be of great value to the world. Cheers, /Marcus