Ich habe nicht verwendet Intels Compiler jedoch Herb Sutter auf es einige interessante Kommentare hatte ...
Von Sutter Speaks: The Future of Concurrency
Sehen Sie eine Menge Interesse und Nutzung von Transaktionsspeicher, oder ist das Konzept zu schwer für die meisten Entwickler zu begreifen?
Es ist noch nicht möglich zu beantworten, wer es benutzt, weil es noch nicht auf den Markt gebracht wurde. Intel hat einen Software-Transaktionsspeicher-Compiler-Prototyp. Aber wenn die Frage ist "Ist es zu schwer für Entwickler zu verwenden?" Die Antwort ist, dass ich sicherlich nicht hoffe. Der springende Punkt ist, dass es einfacher ist als Schlösser. Es ist die einzige große Sache auf dem Forschungshorizont, die die Hoffnung aufdrängt, unseren Gebrauch von Schlössern stark zu reduzieren. Es wird Schlösser niemals komplett ersetzen, aber es ist unsere einzige große Hoffnung, sie teilweise zu ersetzen.
Es gibt einige Einschränkungen. Insbesondere sind einige E/A von Natur aus nicht transaktional - Sie können keinen atomaren Block verwenden, der den Benutzer nach seinem Namen fragt und den Namen von der Konsole ausliest, und den Block einfach automatisch abbrechen und erneut versuchen, wenn er mit einer anderen Transaktion in Konflikt gerät; Der Benutzer kann den Unterschied erkennen, wenn Sie ihn zweimal auffordern. Der Transaktionsspeicher eignet sich hervorragend für Dinge, die nur den Speicher berühren.
Jeder große Hardware- und Softwareanbieter, den ich kenne, hat mehrere Transaktionsspeicher-Tools in R & D. Es gibt Konferenzen und wissenschaftliche Arbeiten zu theoretischen Antworten auf grundlegende Fragen. Wir sind noch nicht auf der Model T-Bühne, wo wir es ausliefern können. Sie werden wahrscheinlich frühe, begrenzte Prototypen sehen, bei denen Sie keinen unbegrenzten Transaktionsspeicher haben können - wo Sie nur 100 Speicherplätze lesen und schreiben können. Das ist immer noch sehr nützlich, um mehr Lock-Free-Algorithmen zu aktivieren.
Sind diese Frage und ihre Antworten noch aktuell? –
@ JanusTroelsen prüfen Sie die verfügbaren Implementierungen in https://en.m.wikipedia.org/wiki/Transactional_memory –
Related: https://www.realworldtech.com/haswell-tm/ für David Kanter schreiben von einigen unter -Hood-Details darüber, wie es tatsächlich auf Intel-CPUs implementiert ist. Und auch ein paar nette Dinge über das Transaktionsgedächtnis im Allgemeinen. –