Multicores and Publication Safety

Walter Bright walter at nospammm-digitalmars.com
Tue Aug 5 20:58:25 PDT 2008


Jb Wrote:

> 
> "Walter Bright" <newshound1 at digitalmars.com> wrote in message 
> news:g795mq$25jq$1 at digitalmars.com...
> > Jb wrote:
> >> What Bartoz said.. "writes to memory can be completed out of order and"
> >>
> >> Is not true on x86.
> >
> > It's risky to write such code, however, because:
> >
> > 1. someone else may try to port it to another processor, and then be 
> > mystified as to why it breaks
> 
> You cant design / write your code based on the idea that someone who doesnt 
> know what they are doing will try and modify it later. And if they are 
> unaware of memory ordering they are likely unaware of alignment atomicity, 
> and probably dont understand the subtleties of syncronization, and a whole 
> bunch of other issues.
> 
> I'm not saying every joe blogs programmer should know about memory ordering 
> and use it where they can to avoid more expensive syncronization primatives. 
> But the compiler and stdlib, or multithreding librarys, should know about 
> it. I dont think the compiler should be dumping memory fences all over the 
> place on the assumtion that they might be needed by the x86 processors of 
> 2012.

The model the compiler uses is to generate code "as if" fences were inserted everywhere. The compiler may, however, as part of optimization and generating code for a particular CPU, elide as many as it can.


> > 2. Intel may change this behavior on future x86's, which means your code 
> > will break years from now
> 
> I dont think they could because i think a lot of code probably already relys 
> on it. And i think it's likely that the new comitment to strong memory 
> ordering, from both AMD and INTEL (both have pdfs regarding 64 bit that 
> specify it), is mainly because they realize it is needed to help progress 
> with multi core.

I think that is because the current language technology is deficient. We aim to fix that with D :-)




More information about the Digitalmars-d mailing list