Skip to content

Commit e942db4

Browse files
Comment from John D. McCalpin on concurrency-costs
1 parent 4fbfee8 commit e942db4

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
_id: d3ef2c20-8d5c-11f0-b11d-51afb330cee9
2+
_parent: 'https://travisdowns.github.io/blog/2020/07/06/concurrency-costs.html'
3+
replying_to_uid: ''
4+
message: >-
5+
Hi Travis! I am not sure why it took me quite this long to find this, but I
6+
am very happy that I finally ran across it. The prototypical example that I
7+
developed when I was working on tightly-coupled accelerators at AMD was a
8+
"single-producer, single-consumer" scenario where the "data" (typically
9+
contained inside a single cache line) was protected by a "flag" in a different
10+
cache line -- as described in
11+
https://sites.utexas.edu/jdm4372/2016/11/22/some-notes-on-producerconsumer-communication-in-cached-processors/.
12+
This seems like special-case variant of your "Level 2: True Sharing" case,
13+
which avoids locking instructions while maintaining the same functionality. I
14+
absolutely agree that reasoning about concurrency is hard and prone to errors
15+
and I often keep a copy of Edward Lee's dictum "[...] non-trivial
16+
multi-threaded programs are incomprehensible to humans" posted on the wall in
17+
my office. I think that way forward is more explicit control over causal
18+
dependency (which humans reason about fairly well), but that is a much bigger
19+
topic....
20+
name: John D. McCalpin
21+
email: 663374c47c17d463c5e2f63166c9ec99
22+
hp: ''
23+
date: 1757409028

0 commit comments

Comments
 (0)