[dmd-concurrency] catching up
Sean Kelly
sean at invisibleduck.org
Mon Jan 4 07:51:13 PST 2010
On Jan 4, 2010, at 6:27 AM, Andrei Alexandrescu wrote:
> The most significant bits are:
>
> * D's concurrency approach flagship is a message passing architecture similar to Erlang's. The message passing design must work across (a) threads within the same address space; (b) processes within the same machine; (c) machines within the same subnet; (d) arbitrary remote machines. Depending on cases (a)-(d) there are different strategies of passing data around, e.g. within the same address space immutable data may be shared and shared objects may be aliased. To some extent, however, user code should be able to send a message to a concurrent entity without knowing or caring where the entity is, and what transport method is used. We don't yet have a detailed design for this.
I think it's fair to assume that an initial implementation will begin with just internal message passing, then a TCP/IP method will be added for everything out of process, and additional methods will be added for performance or other reasons later on. So long as the API is designed with transport flexibility in mind I think we'll be okay, though it would help to know whether any future possibilities only accept specific data types rather than a pre-encoded blob (MPI perhaps?).
More information about the dmd-concurrency
mailing list