glibc 2.18 unterstützt TSX Lock Elision

Die Laufzeitbibliothek für C-Programme unterstützt in ihrer aktuellen Ausführung unter anderem Transactional Synchronization Extension und stellt ergänzende API-Funktionen zur Verfügung.

In Pocket speichern vorlesen Druckansicht 16 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Julia Schmidt

Version 2.18 der GNU C Library (glibc) steht zur Verfügung. Die mit Blick auf Portabilität und hohe Performance entwickelte Laufzeitbibliothek für C-Programme findet in GNU- und den meisten Linux-Systemen Verwendung, wo sie Systemaufrufe und verschiedene grundlegende Funktionen (zum Beispiel malloc, open, printf) bereit stellt.

Mit den neuen API-Funktionen pthread_getattr_default_np und pthread_setattr_default_np lassen sich die voreingestellten pthread-Attribute eines Prozesses setzen und abfragen. Außerdem kann nun bei pthread-Mutexen auf i386- und x86-64-Systemen mit TSX Lock Elision gearbeitet werden. TSX steht für Transactional Synchronization Extensions und bezeichnet eine Erweiterung der x86-Architektur, die transaktionalen Speicher in Hardware unterstützt. Damit sollen sich Anwendungen mit mehreren Threads beschleunigen lassen. Befehle für TSX Lock Elision zielen insbesondere darauf ab, Threads vor Mehrfachzugriff in entsprechenden Systemen zu schützen (PDF), ohne aufgrund der Threadanzahl längere Wartezeiten zu generieren.

Um die Leistungsfähigkeit der Funktionen zu prüfen, ergänzten die Entwickler darüber hinaus ein Benchmark-Framework. Detailliertere Informationen zu den Neuerungen, zu denen auch Unterstützung für die POWER8-Plattform und für das Aufrufen eines thread_local-Objektdestruktoren beim Verlassen eines Threads oder Programms in C++11 zählen, sind in der Ankündigung zu finden. Im Downloadbereich der Projektseite sind darüber hinaus Anweisungen zum Herunterladen gelistet. (jul)