Hello all, "dsimcha" <dsim...@yahoo.com> wrote in message news:im8d3b$j78$1...@digitalmars.com... >A few posts deep in the discussion on std.parallelism have prompted me to > double-check an assumption that I made previously. Is writing to adjacent > but > non-overlapping memory addresses concurrently from different threads safe > on > all hardware we care about supporting? > > I know this isn't safe on some DS9K-like architectures that we don't care > about, like old DEC Alphas. This is because the hardware doesn't allow > addressing of single bytes. I'm also aware of the performance > implications of > false sharing, but this is not of concern because, for the cases where > adjacent memory addresses are written to concurrently in std.parallelism > or > its examples, these are only a tiny fraction of writes and would not have > a > significant impact on performance.
The main architectures (x86 and ARM) are both byte granular. Most embedded platforms are also byte granular. Alpha is the only architecture I am aware of that had this problem. Possibly other old/high performance ones... (Cray, 360, etc.) Ned