User: Password:
Subscribe / Log in / New account

Transactional Memory

Transactional Memory

Posted Jun 5, 2009 17:29 UTC (Fri) by wahern (subscriber, #37304)
In reply to: Transactional Memory by ekmett
Parent article: A look at two new languages: Vala and Clojure

I am/was aware of that paper.

There are other DCAS algorithms, too, including (IIRC) one which is probabilistic (but strong). One problem I encountered is that early Opterons don't implement a 128-bit CAS.

Also, my particular task was implementing POSIX signals for pthreads-win32, which ruled out dynamic allocation (requiring locking) of context structures--required by many (all?) of these CAS algorithms.

(Log in to post comments)

Transactional Memory

Posted Jun 6, 2009 1:34 UTC (Sat) by ekmett (guest, #58940) [Link]

You can get by with the 8 byte version of cmpxchg by using an array of slots
rather than raw pointers, it is just less elegant.

But even so thats a far cry from no implementation being possible. ;)

Transactional Memory

Posted Jun 8, 2009 19:52 UTC (Mon) by wahern (subscriber, #37304) [Link]

How many slots?

Should I just tell pthread-win32 users, "POSIX signals work without any trouble... just don't use more than N threads"?

That's not STM per the theory, is it? That's something very close to STM, but still requires workarounds and caveats. And w/ that attitude, Intel or AMD will never give us the hardware support that's needed.

Unless STM is simple and straightforward (which, even if the algorithm is complicated, it's _universal_, and so you won't have to roll your own everytime), then people will still mostly just _talk_ about STM rather than actually _using_ real STM, w/ the concomitant _realized_ benefits.

Transactional Memory

Posted Jun 11, 2009 12:33 UTC (Thu) by ekmett (guest, #58940) [Link]

Well, ~4 billion slots seems pretty flexible. ;)

Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds