crossbeam-rs / rfcs

RFCs for changes to Crossbeam
Apache License 2.0
147 stars 14 forks source link

Prove the correctness of a work-stealing deque #26

Open jeehoonkang opened 6 years ago

jeehoonkang commented 6 years ago

Rendered Implementation

This is a linearization proof of the Chase-Lev work-stealing deque. To the best of my knowledge, it is the first publicly available linearization proof (attempt) of the Chase-Lev deque :)

ghost commented 6 years ago

Hey, this looks amazing! :) I haven't read the proof in detail yet, but here go a few quick comments/questions:

  1. Are you going to eventually turn this RFC into a research paper?
  2. Is anyone outside the Crossbeam project aware of this proof? If so, have they read/verified it?
  3. Do you have any benchmark numbers comparing the current and the new deque implementation?
  4. Have you tried verifying the new implementation using CDS Checker? I believe it'd be easy to modify this C++ code to use the new memory orderings and run the checker on it.
jeehoonkang commented 6 years ago

I'd like to write a paper out of https://github.com/jeehoonkang/crossbeam-rfcs/blob/deque-proof/text/2017-07-23-relaxed-memory.md and this. Some of my colleagues in academia (including my supervisor) are also reading this proof.

I don't have any benchmark numbers yet.. I'll prepare soon before merging https://github.com/crossbeam-rs/crossbeam-deque/pull/2.

I couldn't properly run CDSChecker.. I followed the instruction in https://github.com/computersforpeace/model-checker, but it always say OUT OF BOOTSTRAP MEMORY when running ./run.sh. Do you have any idea?

jeehoonkang commented 6 years ago

I just fixed a few bugs, but I don't think all the bugs are squashed right now. I'll reread the proof 2-3 more times.

jeehoonkang commented 6 years ago

I think the RFC itself is now ready to be merged. I checked the proof several times, and updated it. @stjepang please have a look!

Though the implementation needs some more work:

jeehoonkang commented 6 years ago

@stjepang Thanks! I revised the document as you mentioned.

ghost commented 6 years ago

@jeehoonkang Any news on this issue? How's the review of this proof going?

jeehoonkang commented 6 years ago

Sorry for inactivity these days. My colleage and I are working on a different paper, so revising this proof had been postponed probably until mid July. I guess the merge of this PR is not urgent, right? I'll definitely come back and merge this PR :)

ghost commented 6 years ago

Just checking, take your time. :)