Transactional Memory

Transactional Memory

Mit Transactional Memory bezeichnet man ein neues Hauptspeicherkonzept für parallele Berechnungseinheiten, welche auf gemeinsame Speicherbereiche zugreifen, wie z. B. Threads oder Mehrprozessorsysteme. Ziel ist es, die Schwierigkeiten der Synchronisierung und Koordination, die bei parallelen Berechnungen entstehen, vom Programmierer in den Compiler und Hardware zu verlagern. Bisher befindet sich Transactional Memory noch im Forschungsstadium. Mit seiner Serienreife wird erst in einigen Jahren gerechnet. Transactional Memory kann entweder komplett in Software (STM), als Hardware (HTM) oder mit Hardware-Unterstützung (Hybrid-HTM) implementiert werden. Bestehende Systeme mit Hardware Transactional Memory gibt es zurzeit nur als Forschungsprototypen, zum Beispiel das ATLAS-System der Universität Stanford.[1]

Inhaltsverzeichnis

Motivation

Moderne Desktop-Computer und Notebooks haben einen Hauptprozessor mit mehreren Prozessorkernen, doch nur wenige Programme sind in der Lage diese auch auszunutzen. Bei bisherigen Speicherkonzepten hatte ein Prozessor oder ein Programm seine Speicherbereiche stets exklusiv für sich beansprucht. Andere, parallel laufende Software konnten darauf nicht zugreifen. Darüber hinaus bieten gemeinsame Speicherbereiche Möglichkeiten der parallelen Programmierung, was jedoch oft zu Deadlocks oder Livelocks führt und schlecht skaliert. Transactional Memory soll diese Probleme reduzieren und die Parallelisierung vereinfachen.

Die Idee des Transactional Memory stammt aus der Architektur von Datenbanksystemen. Eine Transaktion bündelt Befehle, die auf gemeinsame Ressourcen zugreift. Falls zwei Transaktionen auf die gleiche Ressource zugreifen möchten, wird eine der beiden Transaktionen abgebrochen. Diese gibt die besetzten Ressourcen frei und setzt alle gemachten Änderungen zurück. Welche Transaktion abgebrochen wird, entscheidet ein intelligenter Verwaltungsmechanismus, das Herzstück eines Transactional-Memory-Systems.

Transaktion

Eine Transaktion ist eine Sequenz von Aktionen, die für den außenstehenden Beobachter atomar erscheint. Sie muss drei grundlegende Eigenschaften erfüllen:

  • Atomarität verlangt, dass die Aktionen einer Transaktion entweder komplett und erfolgreich ausgeführt werden oder aber bei einem Abbruch keine Spuren davon im System übrig bleiben.
  • Konsistenz sorgt dafür, dass das System immer in einem konsistenten Zustand ist. Eine Transaktion hat keine Information darüber, welche Transaktionen bisher ausgeführt wurden. Wenn eine Transaktion beginnt, geht sie davon aus, dass das System in einem konsistenten Zustand ist, und konsistent muss das System auch wieder sein, wenn die Transaktion endet.
  • Isolation erfordert, dass jede Transaktion ein korrektes Resultat produziert, ganz egal, wie viele andere Transaktionen parallel dazu ausgeführt werden.

Verschachtelte Transaktionen

Eine verschachtelte Transaktion ist eine Transaktion, die vollständig von einer anderen Transaktion umschlossen wird. Die innere Transaktion sieht die Veränderungen, die von der äußeren gemacht werden. Für das Verhalten der beiden Transaktionen gibt es mehrere Varianten.

Falls die Transaktionen flach sind, führt der Abbruch der inneren Transaktion auch zu einem Abbruch der äußeren Transaktion. Die Änderungen der inneren Transaktion sind nicht gültig falls die äußere Transaktion nicht erfolgreich abgeschlossen wird.

Sind die Transaktionen geschlossen, führt ein Abbruch der inneren Transaktion nicht automatisch zu einem Abbruch der äußeren Transaktion. Schließt die innere Transaktion ihre Aktionen erfolgreich ab, sind die gemachten Änderungen nur für die äußere Transaktion sichtbar. Für das ganze System ist die Änderung erst sichtbar, wenn die äußerste Transaktion erfolgreich terminiert.

Im Gegensatz dazu wird bei offenen Transaktionen die Änderung der inneren Transaktion sofort nach deren Termination im ganzen System sichtbar. Diese Änderungen bleiben bestehen auch wenn die äußere Transaktion später abgebrochen wird.

Verfügbarkeit

Bisher existieren nur softwarebasierte Verfahren zur Verwaltung parallel genutzten Speichers, sog. Software Transactional Memory. Diese sind jedoch naturgemäß langsamer als hardwarebasierte Konzepte und zeigen keine gute Skalierbarkeit. Der Overhead, der bei den Programmen, die STM nutzen, entsteht ist im Moment noch zu groß um den Systemen mit traditionellen Locks Konkurrenz zu bieten.

Der Computerchiphersteller Intel demonstrierte den Geschwindigkeitsvorteil von Transactional Memory erstmals auf einer Entwicklerkonferenz Anfang 2006, allerdings nur anhand einer Software-Simulation. Bis zur Verfügbarkeit von handelsüblichen Speicherbausteinen und Geräten werden noch mehrere Jahre vergehen.

Auf der ISSCC 2008 stellte Sun Microsystems mit dem ROCK-Prozessor[2] Details eines 16-kernigen Sparc-Prozessors mit Hardware-Transactional-Memory vor. Dessen Entwicklung wurde jedoch mit der Übernahme von Sun durch Oracle im Jahr 2010 eingestellt[3][4].

Forschungsmodelle

  • UTM - Unbounded Transactional Memory [5]
  • LTM - Large Transactional Memory
  • VTM - Virtual Transactional Memory
  • LogTM - Log-based Transactional Memory
  • TCC - Transactional Memory Coherence and Consistency

Literatur

  • Maurice Herlihy, J. Eliot B. Moss: Transactional memory: Architectural support for lock-free data structures. In: Proceedings of the 20th International Symposium on Computer Architecture (ISCA). 1993, S. 289–300 (pdf).
  • Larus, J.R. and Rajwar, R. Transactional Memory, Morgan & Claypool, 2006.

Einzelnachweise

  1. TCC Prototypes
  2. vgl. Artikel in der englischsprachigen Wikipedia
  3. http://www.opensparc.net/pubs/preszo/08/RockISSCC08.pdf
  4. Special Report: Can that guy in Ironman 2 whip IBM in real life?. Reuters (12. Mai 2010). Abgerufen am 21. Mai 2011.
  5. http://www.cs.wisc.edu/trans-memory/

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Transactional memory — attempts to simplify parallel programming by allowing a group of load and store instructions to execute in an atomic way. It is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in… …   Wikipedia

  • Software transactional memory — In computer science, software transactional memory (STM) is a concurrency control mechanism analogous to database transactions for controlling access to shared memory in concurrent computing. It is an alternative to lock based synchronization. A… …   Wikipedia

  • SXM (transactional memory) — SXM is a software transactional memory system under development at Microsoft Research. The SXM API is exposed via managed code and is used to synchronize access to shared memory without using locks. It achieves mutual exclusion using database… …   Wikipedia

  • Commitment ordering — In concurrency control of databases, transaction processing (transaction management), and related applications, Commitment ordering (or Commit ordering; CO; (Raz 1990, 1992, 1994, 2009)) is a class of interoperable Serializability techniques …   Wikipedia

  • Программная транзакционная память — Для улучшения этой статьи желательно?: Проверить качество перевода с иностранного языка. В компьютерных технологиях, программная транзакционная память ( …   Википедия

  • Transaktionaler Speicher — Mit Transactional Memory bezeichnet man ein neues Hauptspeicherkonzept, das bei Mehrprozessorsystemen zum Einsatz kommen soll. Ziel ist es die Schwierigkeiten der Synchronisierung und Koordination, die bei parallelen Berechnungen entstehen, vom… …   Deutsch Wikipedia

  • Transaktionsspeicher — Mit Transactional Memory bezeichnet man ein neues Hauptspeicherkonzept, das bei Mehrprozessorsystemen zum Einsatz kommen soll. Ziel ist es die Schwierigkeiten der Synchronisierung und Koordination, die bei parallelen Berechnungen entstehen, vom… …   Deutsch Wikipedia

  • Memoire transactionnelle logicielle — Mémoire transactionnelle logicielle En informatique, la mémoire transactionnelle logicielle, en anglais software transactional memory (STM), est un mécanisme de contrôle de concurrence analogue aux transactions de base de données pour contrôler l …   Wikipédia en Français

  • Mémoire Transactionnelle Logicielle — En informatique, la mémoire transactionnelle logicielle, en anglais software transactional memory (STM), est un mécanisme de contrôle de concurrence analogue aux transactions de base de données pour contrôler l accès à la mémoire partagée dans la …   Wikipédia en Français

  • Mémoire transactionnelle logicielle — En informatique, la mémoire transactionnelle logicielle, en anglais software transactional memory (STM), est un mécanisme de contrôle de concurrence analogue aux transactions de base de données pour contrôler l accès à la mémoire partagée dans la …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”