Will D 2.0 concurrency be supported between processes?

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Tue Jan 19 14:56:35 PST 2010


retard wrote:
> Tue, 19 Jan 2010 11:02:08 -0800, Andrei Alexandrescu wrote:
> 
>> retard wrote:
>>> Tue, 19 Jan 2010 08:32:19 -0800, Andrei Alexandrescu wrote:
>>>
>>>> Michal Minich wrote:
>>>>> Will the currently-being-designed message-passing concurrency be
>>>>> supported between OS processes? Or only OS threads supported is
>>>>> planned? Others may be probably interested in: light-weight threads,
>>>>> cooperative concurrency and communication through network? If the
>>>>> implementation is not planned for initial release, is it planned for
>>>>> foreseeable future?
>>>>>
>>>>> Thank you for answer.
>>>> Right now we don't have time to focus on more than inter-thread
>>>> communication. Sean and I had a pow-wow last week and decided we don't
>>>> have the resources to address more than that. But definitely the
>>>> design has an eye on future extensibility, of which inter-process
>>>> communication is an obvious extension.
>>>>
>>>> Andrei
>>> I haven't seen a single mention of what kind of algoritms can be solved
>>> efficiently with this framework. Is it good for parallel algorithms
>>> like parallel matrix multiplication, merge sort, producer/consumer
>>> problems, serving web pages, rendering fractals, blitting images,
>>> parallel parsing, handling RPC or GUIs?
>> Must mean you haven't looked. Message passing is a well-understood
>> paradigm.
> 
> You gotta be kidding. If the message passing framework abstracts away all 
> information about communication latencies, how can one tune the algorithm 
> to take advantage of data locality? I have both knowledge of theoretic 
> models such as Hoare's CSP and practical systems such as MPI and MPI-2. I 
> just want to know how your system maps 2+ processes to data parallel SSE 
> instructions when data locality is very high, to threads with shared 
> memory when the locality is a bit lower and how it groups execution into 
> larger chunks on NUMA and multi-computer clusters. Does it handle this 
> all internally when you run a foreach loop or do you have more fine-
> grained control over data?

SIMD-style data-parallel computation is not something we are currently 
addressing explicitly in the type system and in the standard library. 
You are welcome to contribute such APIs though; your level of knowledge 
definitely makes you the most appropriate potential contributor.

Andrei



More information about the Digitalmars-d mailing list