57
Virendra J. Marathe, William N. Scherer III, and Michael L. Scott Department of Computer Science University of Rochester Presented by: Armand R. Burks Fall 2008

Design Tradeoffs in Modern Software Transactional Memory Systems

Embed Size (px)

DESCRIPTION

Virendra J. Marathe , William N. Scherer III, and Michael L. Scott Department of Computer Science University of Rochester. Design Tradeoffs in Modern Software Transactional Memory Systems. Presented by: Armand R. Burks Fall 2008. - PowerPoint PPT Presentation

Citation preview

Page 1: Design Tradeoffs in Modern Software Transactional Memory Systems

Virendra J. Marathe, William N. Scherer III, and Michael L. ScottDepartment of Computer ScienceUniversity of Rochester

Presented by: Armand R. Burks Fall 2008

Page 2: Design Tradeoffs in Modern Software Transactional Memory Systems

Classic lock-based implementations of concurrent objects suffer from several important drawbacks: Deadlocks Priority inversion Convoying Lack of fault tolerance

Page 3: Design Tradeoffs in Modern Software Transactional Memory Systems

Increased interest in nonblocking synchronization algorithms Failure of a thread can never prevent the

system from making forward progress

Page 4: Design Tradeoffs in Modern Software Transactional Memory Systems

A concurrent object is a data object shared by multiple threads of control within a concurrent system.

Page 5: Design Tradeoffs in Modern Software Transactional Memory Systems

Section 1 – IntroductionSection 2 – DSTMSection 3 – FSTMSection 4 – Comparative Evaluation

Section 5 – Related WorkSection 6 - Conclusions

Page 6: Design Tradeoffs in Modern Software Transactional Memory Systems

Section 1:

Introduction

Page 7: Design Tradeoffs in Modern Software Transactional Memory Systems

STM – an approach to construct nonblocking objects Simplifies task of implementing concurrent

objects Software Transactional Memory (STM) is

a generic non-blocking synchronization construct that enables automatic conversion of correct sequential objects into correct concurrent objects.

Page 8: Design Tradeoffs in Modern Software Transactional Memory Systems

Transaction A finite sequence of instructions (satisfying

the linearizability and atomicity properties) that is used to access and modify concurrent objects

Page 9: Design Tradeoffs in Modern Software Transactional Memory Systems

This paper focuses on discussing two approaches to STM

Compares and evaluates strengths and weaknesses of the approaches

Page 10: Design Tradeoffs in Modern Software Transactional Memory Systems

Section 2:

Dynamic Software Transactional Memory

Page 11: Design Tradeoffs in Modern Software Transactional Memory Systems

Definition... DSTM is a low-level application

programming interface (API) for synchronizing shared data without using locks. (Herlihy)

Uses early release ( a transaction can drop a previously opened object)

Invisible reads Example follows...

Page 12: Design Tradeoffs in Modern Software Transactional Memory Systems

Start

TMObject Locator

Committed Transaction

Shared Object-Old

Version

Shared Object-New

Version

Transaction

Old Object

New Object

Transaction

New Object

Old Object

New Locator

Old Locator

New Active Transaction

Shared Object-New

Version

Copy

Atomic Compare & Swap (CAS)CAS FAILURE

X

Other transaction

has acquired

object

Opening a TMObject (in write mode) recently modified by a committed transaction

Page 13: Design Tradeoffs in Modern Software Transactional Memory Systems

Most recent previous transaction may still be ACTIVE Wait/retry, abort, or force competitor to

abort Ask contention manager to make decision

Page 14: Design Tradeoffs in Modern Software Transactional Memory Systems

Full acquire operation Unnecessary contention between

transactions How do we avoid this contentention?

Each transaction maintains private (read-list) of objects opened in read-only mode

Must recheck validity before committing

Page 15: Design Tradeoffs in Modern Software Transactional Memory Systems

What about stale data (from a not yet

committed transaction)? May lead to unwanted behavior ( addressing

errors, infinite loops, division by zero, etc.) Transaction would have to revalidate all

open read-only objects Current version does this automatically

when opening

Page 16: Design Tradeoffs in Modern Software Transactional Memory Systems

Section 3:

Fraser’s Software Transactional Memory

(FSTM)

Page 17: Design Tradeoffs in Modern Software Transactional Memory Systems

Named after Keir Fraser (Cambridge) Unlike DSTM, FSTM is lock-free

Guarantees forward progress for system (within a bounded number of steps, some thread is guaranteed to complete a transaction)

How? Recursive helping

Page 18: Design Tradeoffs in Modern Software Transactional Memory Systems

When transaction detects conflict with another, it uses the conflicting transaction’s descriptor to make updates, then aborts/restarts itself. Example follows:

Page 19: Design Tradeoffs in Modern Software Transactional Memory Systems

B

B A

COMMITTED

AAbort & Restart

A

Concurrent Object

A

COMMITTED

Page 20: Design Tradeoffs in Modern Software Transactional Memory Systems

Concurrent Object

Shadow Copy

Object Header

Transaction Descriptor

UNDECIDED

Status

Read-onlyRead-write

Object Handles

Unlike DSTM, multiple transactions can open the same object in write mode because each has its own shadow copy.

Page 21: Design Tradeoffs in Modern Software Transactional Memory Systems

UNDECIDED ABORTED COMMITTED READ-CHECKING

Page 22: Design Tradeoffs in Modern Software Transactional Memory Systems

UNDECIDED Transaction opens object headers while in

this state Open is not visible to other transactions

COMMITTEDIf open by another transaction, will be detectedIf conflict is detected, the transaction uses

recursive helping

Page 23: Design Tradeoffs in Modern Software Transactional Memory Systems

Transaction acquires all objects it opened in write mode in some global total order (virtual address) Uses atomic Compare and Swaps

Each CAS swings object header’s pointer to transaction descriptor

If pointer already points to another transaction’s descriptor, conflict is detected

Example follows

Page 24: Design Tradeoffs in Modern Software Transactional Memory Systems

Concurrent Object

Shadow Copy

Object Header

Transaction Descriptor

UNDECIDED

Status

Read-onlyRead-write

Object Handles

CAS

Recursively help competitor

Page 25: Design Tradeoffs in Modern Software Transactional Memory Systems

Only proceeds if competitor precedes in in global total order (thread/transaction id)

If not, competitor will be aborted Also, competitor must be in READ-

CHECKING state (for validating)

Page 26: Design Tradeoffs in Modern Software Transactional Memory Systems

Validates objects in read-only list Verify object header still points to version of

object as when handle was created If not, abort If pointing to another transaction, recursively

help

After successful validation, switch to COMMITTEDDone automatically by transactionRelease object by swinging handle to new version

Page 27: Design Tradeoffs in Modern Software Transactional Memory Systems

Section 4:

Comparative Evaluation

Page 28: Design Tradeoffs in Modern Software Transactional Memory Systems

Both DSTM and FSTM have significant overhead Simpler than previous approaches

This section does the following Highlight design tradeoffs between the two Highlight impact on performance of various

concurrent data structures

Page 29: Design Tradeoffs in Modern Software Transactional Memory Systems

16-processor SunFire 6800 Cache-coherent multiprocessor

1.2 GHz Processors Environment – Sun’s Java 1.5 beta 1

HotSpot JVMAugmented with JSR166 update from Doug Lea

Page 30: Design Tradeoffs in Modern Software Transactional Memory Systems

Simple Benchmarks A stack 3 variants of a list-based set

More Complex Benchmark Red-black tree

Page 31: Design Tradeoffs in Modern Software Transactional Memory Systems

In list and Red-black tree benchmarks Repeatedly/Randomly insert/delete integers 0-255

Keeping this range small increases probability of contention

Measured total throughput over 10 seconds

Vary number of worker threads between 1-48

Six test runs

Page 32: Design Tradeoffs in Modern Software Transactional Memory Systems

DSTM Transaction acquires exclusive access when it

first opens it for write access Makes transaction visible to potential competitors

early in its lifetime (eager acquire)

FSTM Transaction acquires exclusive access only in

commit phase Makes transaction visible to potential

competitors later in its lifetime (lazy acquire)

Page 33: Design Tradeoffs in Modern Software Transactional Memory Systems

Eager acquire Enables earlier detection & resolution of

conflicts

Lazy acquire May cause transactions to waste computational

resources on doomed transactions before detecting a conflict

Tends to reduce amount of transactions identified as competitors If application semantics allow both transactions to commit, lazy

acquire may result in higher concurrency

Page 34: Design Tradeoffs in Modern Software Transactional Memory Systems

Red-black Tree Performance Results

Page 35: Design Tradeoffs in Modern Software Transactional Memory Systems

FSTM outperforms due to lazy acquire semantics

Page 36: Design Tradeoffs in Modern Software Transactional Memory Systems

Number of Contention Instances

Page 37: Design Tradeoffs in Modern Software Transactional Memory Systems

FSTM outperformed again Difference remained more or less constant

Page 38: Design Tradeoffs in Modern Software Transactional Memory Systems

DSTM has extra level of indirection (Fig 1. & 2) TMObject points to Locator which points to

object data FSTM object header points directly to object

data

Extra indirection may result in slower reads/writes

Slower transactions (particularly if most are read-only)

Page 39: Design Tradeoffs in Modern Software Transactional Memory Systems

Indirection eliminates overhead of inserting object handles into descriptor chains Transactions with large number of writes

may be faster in DSTM Lazy acquire requires extra bookkeeping

Page 40: Design Tradeoffs in Modern Software Transactional Memory Systems

Testing Benchmarks Stack, IntSet, IntSetRelease

Page 41: Design Tradeoffs in Modern Software Transactional Memory Systems

Stack Performance Results

Page 42: Design Tradeoffs in Modern Software Transactional Memory Systems

Stack illustrates very high contention (top-of-stack pointer)

DSTM outperformance Due to FSTM extra bookkeeping in write

mode

Page 43: Design Tradeoffs in Modern Software Transactional Memory Systems

IntSet maintains sorted list Every insert/delete opens (write mode) all

objects from beginning of list Successful transactions are serialized

Page 44: Design Tradeoffs in Modern Software Transactional Memory Systems

IntSet Performance Results

Page 45: Design Tradeoffs in Modern Software Transactional Memory Systems

Higher throughput for DSTM FSTM suffers extra bookkeeping

overhead, sorting overhead, and extra CASes

Page 46: Design Tradeoffs in Modern Software Transactional Memory Systems

IntSetRelease – variant of IntSet Only the object to be modified is opened in

write mode All others opened temporarily in read

mode Then either released (moving on to next node

in list) Or upgraded to write mode

Page 47: Design Tradeoffs in Modern Software Transactional Memory Systems

IntSetRelease Performance Results

Page 48: Design Tradeoffs in Modern Software Transactional Memory Systems

FSTM more than a factor of 2 better DSTM’s indirection is to blame

Page 49: Design Tradeoffs in Modern Software Transactional Memory Systems

Invisible reads & lazy acquire (FSTM) may allow transaction to enter inconsistent state during execution This may lead to memory access violations,

infinite loops, arithmetic faults, etc. DSTM- performs incremental validation at

open time FSTM- proposes mechanism based on

exception handling (catch problems when they arise rather

than prevent them)

Page 50: Design Tradeoffs in Modern Software Transactional Memory Systems

On a memory access violation, exception handler validates the transaction that caused the exception

Responsibility of detecting other inconsistencies is left to the programmer

Page 51: Design Tradeoffs in Modern Software Transactional Memory Systems

IntSetUpgrade Similar to IntSetRelease

Opens in write mode only if object needs to be changed

The fact that most objects are read-only introduces some concurrency

Page 52: Design Tradeoffs in Modern Software Transactional Memory Systems

IntSetUpgrade Performance Results

Page 53: Design Tradeoffs in Modern Software Transactional Memory Systems

Incremental validation introduces dramatic overhead in both systems Results suggest potential benefits from

using application-specific reasoning to eliminate need (or at least frequency of) incremental validation

Page 54: Design Tradeoffs in Modern Software Transactional Memory Systems

Related Work&

Conclusions

Page 55: Design Tradeoffs in Modern Software Transactional Memory Systems

Harris & Fraser – word-based STM Hashes shared memory words into

ownership records Transaction acquires records before

updating Harris & Fraser – novel stealing mechanism

Avoids cache thrashing that might result from recursive helping

Cole & Herlihy – optimization to DSTM to reduce bookkeeping overhead in read mode

Page 56: Design Tradeoffs in Modern Software Transactional Memory Systems

Paper evaluated tradeoffs in design of practical, object-based STM systems

DSTM tends to do better for transactions in write mode Early detection & avoidance of bookkeeping Both systems incur significant overhead for

read-only Acquire semantics play key role in

performance

Page 57: Design Tradeoffs in Modern Software Transactional Memory Systems