freenode/#sicl - IRC Chatlog
Search
4:07:36
no-defun-allowed
Today I found out the new university has had an outage with approximately everything, due to a phishing attack, and that Cliff Click did a nice presentation describing how to design non-blocking data structures.
4:09:21
no-defun-allowed
The latter can be found at <https://www.dropbox.com/s/agrzifhhahva4kg/2008_CodingNonBlock.pdf> and it explains how one doesn't go mad with this kind of thing.
4:13:39
no-defun-allowed
Yes, and it also describes a concurrent bit-vector set as an introduction, and then a nearly FIFO queue.
4:16:32
beach
I envy Ira Baxter who started Semantic Designs maybe 20 years ago or so, when I spent my year in Austin. I "worked" for him briefly then. His company was based on the idea that multi-processor threading was going to be huge some day. He and his company must be way ahead of everyone.
4:18:29
beach
He created PARLANSE, a parallel programming language that superficially looked like Lisp.
4:25:06
beach
I think I need to either listen to his talk or find a more complete written presentation in order to understand this stuff.
4:27:17
beach
There seems to be important information in there about CAS failure and how now to design the API for CAS.
4:37:14
no-defun-allowed
That's news to me; I thought the RISC-V specification(?) said that CAS could livelock and not LL/SC.
4:37:18
Bike
"depending on the hardware's LL-SC implementation, though" according to some random google
4:38:26
Bike
C++ exposes a CAS that can spuriously fail and one that can't. i can imagine the spurious failure one being more efficient sometimes, but it's a bit arcane
4:41:33
no-defun-allowed
Speaking of, can you compare-and-swap a byte on AMD64? I only saw instructions for 8-byte and 16-byte CAS.
4:41:57
Bike
i haven't looked at the machine level much honestly, beyond one paper on the x86 memory model
4:42:33
no-defun-allowed
Worst-case is I have to emulate CAS for just that byte somehow, which is ironically almost what I do with the non-concurrent hash table.
4:43:18
no-defun-allowed
I found a thread about byte CAS on a Java implementation on ARM, where they mention that.
4:44:08
Bike
is there a reason for a byte CAS beyond saving space? like i guess if you also want to CAS the word as a whole or something
4:45:03
no-defun-allowed
To update the compact metadata table, which is supposed to be cache-friendly and also quite SIMD-friendly (when probing).
4:45:24
no-defun-allowed
ACTION goes to see what a C++ compiler generates for std::atomic<uint8_t> or something like that.