On Fri, Mar 25, 2011 at 9:19 PM, Hugo Ferreira wrote: > On 03/25/2011 06:24 PM, Martin Jambon wrote: > >> On 03/25/2011 01:10 PM, Fabrice Le Fessant wrote: >>> >>>> Of course, sharing structured mutable data between threads will not be >>>> possible, but actually, it is a good thing if you want to write correct >>>> programs ;-) >>>> >>> >> On 03/25/11 08:44, Hugo Ferreira replied: >> >>> I'll stick to my guns here. It simply makes solving certain problem >>> unfeasible. Point in case: I work on machine learning algorithms. I >>> use large data-structures that must be processed (altered) >>> in order to learn. Because these data-structures are large it become >>> impractical to copy this to a process every time I start off a new >>> "thread". >>> >> >> The solution would be to use get/set via a message-passing interface. >> >> > Cannot see how this works. Say I want to share a balanced binary tree. > Several processes/threads each take this tree and alter it by adding and > deleting elements. Each (new) tree is then further processed by other > processes/threads. > > How can get/set be used in this scenario? > > I think it won't have good performance and it won't scale, and it will fail for truly delicate shared memory architectures of the future with thousands of cores.... And neither will it support on-chip message passing facilities of those future processors. The shared memory message passing never worked too well, anyway, too many redundant copies. Not fitting for high performance computing. No need at all except for embarrassingly parallel applications. I suppose that's the target, right? Best, -- Eray Ozkural, PhD candidate. Comp. Sci. Dept., Bilkent University, Ankara http://groups.yahoo.com/group/ai-philosophy http://myspace.com/arizanesil http://myspace.com/malfunct