Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

SRDC Lecture Slides

No description
by

Maurice Herlihy

on 17 June 2013

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of SRDC Lecture Slides

Original Proposal
AMD ASF
1993
Thank You!
Transactional
Memory

Amdahl's
Revenge

2013
Transactional
Boosting

The Takeaway
not scalable
hard to get right
code in block
executed atomically
what's the catch?
Thank you!
relies on conventions
locking does not compose
How Transactions Synchronize
read and writes conflict
writes and writes conflict
for example,
java.util.concur
Intel Building Blocks
C# concurrency libraries
Hardware Transactional Memory
wrapper code
treats object as black box
preserves concurrency properties
of base objects
Acquires lock for x and applies base operation
Records inverse, in case transaction aborts later
Operation on same value conflicts on abstract lock
Operation on different value does not conflict
thread-level synchronization handled by base object
Uses Bloom filters to do efficient concurrent deadlock detection on abstract locks
Abstract locks & inverses support fine-grained recovery
no need for nested transactions
If your transactions are pipelined,
you can release locks early &
track dependencies
If your transactions are pipelined,
you can release locks early
as long as you track dependencies
Where are we?
What's the catch?
It's false because the operations commute
It's false because the operations commute!
Full transcript