Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
Where's my non-classical shared memory concurrency technology?
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2008-05-27 (09:35)
From: Martin Berger <M.Berger@d...>
Subject: Re: [Caml-list] Re: Where's my non-classical shared memory concurrency technology?
>> Here I disagree. Shared  memory concurrency is a specific form
>> of message passing: Writing to a memory cell is in fact sending
>> a message to that cell carrying two items, the new value and a
>> return channel that is used to inform the writer that sending
>> has succeeded, and likewise for reading.
> This is completely wrong.  A few machines have a simple model like
> that, but they were all built in the last century.  Nowadays, writing
> to memory is more like broadcasting a message and having no idea when
> it will arrive at each destination.  And if you write to another piece
> of memory, you don't know in what order the updates will become
> visible to a given processor.
> You are neglecting a very important parameter, which is called the
> "memory model" of your multiprocessor.

But broadcasting is a form of message-passing too! I was not
forgetting the memory model, I was just arguing at a higher
level of abstraction. Moreover, asynchronous message-passing,
which is the dominant for of message passing studied in concurrency
theory, doesn't make guarantees about the order of communication.

Exactly what kind of message passing is appropriate depends on
the used processors and on the chosen level of abstraction.