Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.programming > #4237
| From | Ivan Godard <ivan@ootbcomp.com> |
|---|---|
| Newsgroups | comp.programming.threads, comp.programming, comp.arch |
| Subject | Re: About lockfree and waitfree... (2nd try) |
| Date | 2014-04-17 17:04 -0700 |
| Organization | A noiseless patient Spider |
| Message-ID | <lipq6r$l97$1@dont-email.me> (permalink) |
| References | (4 earlier) <lihjlm$q0$1@speranza.aioe.org> <lihr02$g62$2@dont-email.me> <lijor8$a3k$1@speranza.aioe.org> <lijqjp$ri0$1@dont-email.me> <lipog6$raa$1@speranza.aioe.org> |
Cross-posted to 3 groups.
On 4/17/2014 4:35 PM, Chris M. Thomasson wrote: >> "Ivan Godard" wrote in message news:lijqjp$ri0$1@dont-email.me... >> I ask because the Mill is strict sequential concurrency, but we >> have heard of cases in which that is insufficient for certain >> lock-free algorithms, which are only correct with a global strict >> ordering (i.e. global timestamps), but potentially fail with an >> arbitrary interleaving of local strict ordering (i.e. sequential >> consistency). > > If you have a hard core setup where you execute the equivalent of > an: > > MEMBAR #StoreLoad | #StoreStore| #LoadStore | #LoadLoad; > > SPARC instruction before and after each atomic operation, and the > algorithm still fails, then I would look into errors in the actual > algorithm logic itself. IMVHO, it is probably not keeping sync with > the global timestamp. Or, there may be a problem in the monotonic > timestamp generator, wrt overflow or something... > > This does not sound Kosher! There is no global timestamp, although the participating programs can create one using suitable locking protocols. There are also no atomic (pessimistic concurrency) operations. The Mill defines a total order among load/store operations in any particular core; there is no overtaking of requests of any form. That is, if within any single core a load issued after a store (for suitable definition of "after" given that the Mill is a wide-issue machine which can have several load and/or store operations in each instruction) will always see the result of that store, while one issued before a store (ibid.) will never see the result of the store, and of two stores (one after the other) the latter store will be the one seen by a subsequent load. Amongst cores there is no total ordering. However, all cores will see an ordering that is an arbitrary interleaving of the orderings of the individual cores. That is, within the multicore ordering each core will see its own actions in its local total order. This behavior is the definition of sequential consistency (https://en.wikipedia.org/wiki/Sequential_consistency), which is weaker than global total ordering (such as use of a global hardware timestamp). The Mill does not use pessimistic atomic operations such as T&S, CAS, etc. Instead, it supports optimistic concurrency primitives using the caching hardware (similar to those primitives also offered by IBM and Intel), with hardware backoff support when contention happens. The optimistic primitive can be used to implement the pessimistic primitives if those are the desired interface, and a library for such use is provided. We elected to use sequential concurrency because it is the intuitive model; many programs are written under the assumption od sequential consistency; and it is very difficult to get programs correct under weaker models. We elected to use optimistic concurrency because it removes the hardware single-point-of-contention that are present in pessimistic primitives such as bus locking. We expect that low-contention multicore will scale better on a Mill as a result of this choice, although high-contention scaling is still bounded by the contention, as on any other CPU. More info on the Mill at http://millcomputing.com/docs.
Back to comp.programming | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
About lockfree and waitfree... aminer <aminer@toto.net> - 2014-04-13 19:54 -0700
Re: About lockfree and waitfree... "Chris M. Thomasson" <no@spam.invalid> - 2014-04-13 19:38 -0700
Re: About lockfree and waitfree... "Chris M. Thomasson" <no@spam.invalid> - 2014-04-13 19:47 -0700
Re: About lockfree and waitfree... aminer <aminer@toto.net> - 2014-04-13 22:56 -0700
Re: About lockfree and waitfree... "Chris M. Thomasson" <no@spam.invalid> - 2014-04-14 14:08 -0700
Re: About lockfree and waitfree... "Chris M. Thomasson" <no@spam.invalid> - 2014-04-14 14:23 -0700
Re: About lockfree and waitfree... Ivan Godard <ivan@ootbcomp.com> - 2014-04-14 16:27 -0700
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-14 16:29 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-04-15 10:04 -0700
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-15 10:34 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-04-17 16:35 -0700
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-17 17:04 -0700
Re: About lockfree and waitfree... (2nd try) nmm@needham.csi.cam.ac.uk (Nick Maclaren) - 2014-04-18 09:54 +0100
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-18 02:31 -0700
Re: About lockfree and waitfree... (2nd try) nmm@needham.csi.cam.ac.uk (Nick Maclaren) - 2014-04-18 11:56 +0100
Re: About lockfree and waitfree... (2nd try) rpw3@rpw3.org (Rob Warnock) - 2014-04-18 11:26 +0000
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-18 13:30 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-04-21 14:25 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-04-21 14:31 -0700
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-21 14:53 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-04-22 14:21 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-04-22 14:36 -0700
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-22 15:30 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-05-01 00:48 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-05-25 13:16 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-04-21 14:34 -0700
Re: About lockfree and waitfree... (2nd try) Robert Wessel <robertwessel2@yahoo.com> - 2014-04-21 16:42 -0500
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-21 15:02 -0700
Re: About lockfree and waitfree... (2nd try) nmm@needham.csi.cam.ac.uk (Nick Maclaren) - 2014-04-22 09:05 +0100
Re: About lockfree and waitfree... (2nd try) Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2014-04-22 09:27 -0700
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-22 09:45 -0700
Re: About lockfree and waitfree... (2nd try) nmm@needham.csi.cam.ac.uk (Nick Maclaren) - 2014-04-22 18:08 +0100
Re: About lockfree and waitfree... (2nd try) Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2014-04-23 12:08 -0700
Re: About lockfree and waitfree... (2nd try) nmm@needham.csi.cam.ac.uk (Nick Maclaren) - 2014-04-23 20:32 +0100
Re: About lockfree and waitfree... (2nd try) Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2014-04-23 13:21 -0700
Re: About lockfree and waitfree... (2nd try) nmm@needham.csi.cam.ac.uk (Nick Maclaren) - 2014-04-23 21:51 +0100
Re: About lockfree and waitfree... (2nd try) Chris Gray <cg@GraySage.COM> - 2014-04-24 10:53 -0600
Re: About lockfree and waitfree... (2nd try) nmm@needham.csi.cam.ac.uk (Nick Maclaren) - 2014-04-24 18:02 +0100
Re: About lockfree and waitfree... (2nd try) Stephen Fuld <SFuld@alumni.cmu.edu.invalid> - 2014-04-25 13:39 -0700
Re: About lockfree and waitfree... (2nd try) "Chris M. Thomasson" <no@spam.invalid> - 2014-04-22 22:08 -0700
Re: About lockfree and waitfree... (2nd try) George Neuner <gneuner2@comcast.net> - 2014-04-17 21:15 -0400
Re: About lockfree and waitfree... (2nd try) George Neuner <gneuner2@comcast.net> - 2014-04-17 21:25 -0400
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-17 19:17 -0700
Re: About lockfree and waitfree... (2nd try) George Neuner <gneuner2@comcast.net> - 2014-04-18 00:46 -0400
Re: About lockfree and waitfree... (2nd try) Ivan Godard <ivan@ootbcomp.com> - 2014-04-17 18:52 -0700
Re: About lockfree and waitfree... aminer <aminer@toto.net> - 2014-04-13 22:54 -0700
csiph-web