Using Hardware Transactional Memory for High-Performance Computing

Martin Tillenius
Division of Scientific Computing
Department of Information Technology
Uppsala University


In parallel software, when several processors update the same shared variable, such updates must be atomic or data may get corrupted. A classical way to achieve atomicity is to introduce a lock that must be held before writing to the variable. A different approach is to perform the update from within an atomic transaction.

We have had the opportunity to evaluate a unique prototype system that implements atomic transactions in hardware, which we have used to investigate if performance can be gained by replacing locks by transactions.