Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming > #4237

Re: About lockfree and waitfree... (2nd try)

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.

Show all headers | View raw


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


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