im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs....

29
Transactional Memory: An Overview im Rahmen des Proseminars „Technische Informatik von Julian Nagel 1

Transcript of im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs....

Page 1: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Transactional Memory: An Overview

im Rahmen des Proseminars „Technische Informatik“

von Julian Nagel

1

Page 2: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Gliederung

● Geschichte● Konzept● Sperren vs. TM● Hard- und Software Transactional Memory● Implementation von STM● Ausblick

2

Page 3: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Geschichte

1992 Erwähnung als Hardware-Mechanismus von Herlihy und Moos in „Architectural Support for Lock-Free Data Structures“ [1]

→Erste Idee des Transaktionalen Speichers

1995 Erwähnung als Software-Mechanismus von Shavit and Touitou in „Software Transactional Memory“ [2]

→Theoretische Umsetzung als STM

2007 Konzeptpräsentation von Intel [3]

→Kommerzielles Interesse an TM

3

Page 4: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Geschichte

2007-2010 ROCK Prozessor von Sun sollte mit Hardwareunterstützung kommen

→Durch Oracle eingestellt

2009 Bibliothek für C# von Microsoft enthält Transaktionalen Speicher [4]

→Frühe kommerzielle Implementation von STM

2012 Experimentelle Implementation in gcc [5]

→Beispiel folgt

Juni 2013 Intels Prozessoren unterstützen Hardware Transactional Memory (Haswell)

→Erster kommerzieller Einsatz von HTM

4

Page 5: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Konzept Flugplatzreservierung

5

Anfrage

Rückmeldung

Wartezeit

1 2

Page 6: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Lock als Lösung

6

1

2

1. 1 sperrt Flugzeug

2. 1 reserviert

3. 1 gibt Flugzeug frei

4. 2 sperrt Flugzeug

5. 2 reserviert

6. 2 gibt Flugzeug frei

Page 7: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Granularität

7

● „Feinkörnigkeit“● Datenstruktur aufteilen

● Beispiel:– Zwei Zugriffsbereiche

Page 8: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Granularität und Locking

8

1 2 1

2

50%50%

BCS WCS

Page 9: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Max. Granularität

9

● Gezieltes Sperren möglich● Performancegewinn

● Programmieraufwand– Umsetzbarkeit

Page 10: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Sperren

10

● Pessimistisches Konzept– Sicherheit

– Wartezeiten

– Granularität aufwendig● Hoher Programmieraufwand

– Deadlocks

Page 11: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Transaktionen

11

● Andwendung in Shared Memory

● Optimistisches Konzept– Transaktionen laufen parallel

– Konfliktlösung im Nachhinein

– Prioritätsregeln definierbar

Page 12: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Beispiel Transaktionen

12

1 2 1

2

BCS WCS

2%98%2

Ausführzeit Ø Rechenzeit Ø

Lock 1,5x 2x

Transaktionen 1,02x 2,02x

Page 13: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Contra TM

● Kosten einer Kollision können sehr hoch sein● Overhead verursacht Kosten

– Erkennen von Kollisionen ● Logging● Isolation

– Auflösen von Kollisionen● Bewerten/Abwägen

● Deadlock möglich

13

Page 14: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Deadlock in STM

bool a = false;

bool b = false;

//Thread 1: //Thread 2:

atomic atomic

{ {

while (!a); a = true;

b = true; while (!b);

} }

14

Page 15: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Transaktionaler Speicher

15

HardwareTransactional

Memory

HybridTransactional

Memory

SoftwareTransactional

Memory

Page 16: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Hardware Transactional Memory

● CPU unterstützt TM

● Intel Haswell (2013) bietet Hardwareunterstützung (Restricted Transactional Memory)– XBEGIN

● Beginne Transaktion

– XEND● Commit (Übergabe des Caches)

– XABORT● Verwerfen der Transaktion

16

Page 17: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Hardware Transactional Memory

● Konflikte werden durch Software behoben

● HTM nicht immer ausreichen– Rückfall auf STM

=> Hybrid Transactional Memory

17

Page 18: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Software Transactional Memory

● Programmierer erstellt Transaktionen– Einfaches Programmiermodell

● Compiler konvertiert in unterstützte Routinen– z. B. einen Lock-Mechanismus

● Rückmeldung über Erfolg oder Misserfolg

18

Page 19: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Eigenschaften TM

● Atomarität (Atomicity)– Jede Transaktion ist abgeschlossen

● Erfolg oder Misserfolg

● Konsistenzerhaltung (Consistency)– Korrupte Transaktionen werden abgebrochen

● Isolation (Isolation)– Transaktionen werden verwaltet

● Vereinfachte Anwendung

19

Page 20: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Implementation in GCC

● __transaction_atomic { }– Nur atomare Operationen erlaubt

● Erschwertes Logging

● __transaction_relaxed { }– Kompromiss

● Nicht atomare Operationen erlaubt● Gefahr durch Benutzerfehler

20

Page 21: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Implementation in GCC

__transaction_atomic { x = a + b;cout << x; }

● Cout ist keine atomare Operation!– Nicht rückgängig zu machen

=> Compilerfehler

21

Page 22: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Implementation in GCC

__transaction_atomic {__transaction_relaxed {

x = a + b;cout << x; }

● Erlaubt nicht atomare Operationen

=> Compilier- und Ausführbar

22

Page 23: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Implementation in GCC

● __transaction_atomic { c = a-b; }– Einfacher Befehl

● __transaction_atomic { if (a>b) b++; }– Kontrollstrukturen

● __transaction_atomic { g++; h = i-j; }– Mehrere Befehle

23

Page 24: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

24

4 Core Performance

ACHTUNG: Support ist noch immer experimentell

Page 25: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

25

8 Core Performance

ACHTUNG: Support ist noch immer experimentell

Page 26: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Forschungsmodelle

● TCC - TM Coherence and Consistency– 2004 [c]

● UTM - Unbounded TM– 2005 [d]

● VTM - Virtual TM– 2005 [e]

● LogTM - Log-based TM– 2006 [a]

● LTM - Large TM– 2008 [b]

26

Page 27: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Zusammenfassung

● TM steckt noch in den Kinderschuhen

● Großes Performancepotential

● Integration in Programmiersprachen

27

Page 28: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Quellen● [1] http://www.cs.utexas.edu/~pingali/CS395T/2009fa/lectures/herlihy93transactional.pdf (08.07.14)

● [2] http://web.cse.ohio-state.edu/~agrawal/788-su08/Papers/week4/shavit95software.pdf (08.07.14)

● [3] https://www.youtube.com/watch?v=YfTkHopSkKs (08.07.14)

● [4] http://www.microsoft.com/germany/visualstudio/aktuell/news/show.aspx?id=msdn_de_34342 (08.07.14)

● [5] https://gcc.gnu.org/wiki/TransactionalMemory (08.07.14)

● [a] http://research.cs.wisc.edu/multifacet/papers/hpca06_logtm.pdf

● [b] http://research.cs.wisc.edu/multifacet/papers/isca08_tokentm.pdf

● [c] http://tcc.stanford.edu/publications/tcc_isca2004.pdf

● [d] http://supertech.csail.mit.edu/papers/xaction.pdf

● [e] http://pages.cs.wisc.edu/~isca2005/papers/08A-02.PDF

● https://en.wikipedia.org/wiki/Transactional_memory (27.06.14)

● https://de.wikipedia.org/wiki/ACID (27.06.14)

● http://www-users.cs.umn.edu/~boutcher/stm/ (27.06.14)

● https://gcc.gnu.org/wiki/TransactionalMemory (27.06.14)

● http://www.microsoft.com/germany/visualstudio/aktuell/news/show.aspx?id=msdn_de_34342 (27.06.14)

● http://www.ipd.uka.de/Tichy/uploads/folien/138/Cluster05STM.pdf (27.06.14)

● http://www.betriebssysteme.org/Aktivitaeten/Treffen/2009-Bommerholz/Programm/docs/Talks/schoettner.pdf (27.06.14)

● https://gcc.gnu.org/wiki/TransactionalMemory?action=AttachFile&do=view&target=Intel-TM-ABI-1_1_20060506.pdf

28

Page 29: im Rahmen des Proseminars „Technische Informatik“ · Gliederung Geschichte Konzept Sperren vs. TM Hard- und Software Transactional Memory Implementation von STM Ausblick 2

Bildquellen● http://www-users.cs.umn.edu/~boutcher/stm/chart_1.png

● http://www-users.cs.umn.edu/~boutcher/stm/chart_3.png

● http://img.welt.de/img/panorama_original/crop105349756/2468624551-ci16x9-w580/111105-ferrari-DW-Sonstiges-Shimonoseki.jpg

http://www-users.cs.umn.edu/~boutcher/stm/rbtree.svg

● http://www.seatmaestro.com/images/newmaps/1662_Iberia%20Airbus%20A319%20Config1.png

● http://www.abload.de/img/randomc72xs770.png

29