Using Hardware Transactional Memory for High-Performance Computing

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


Abstract:

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.