Computer Science Department
School of Computer Science, Carnegie Mellon University
Hardware Transactional Memory in C++
Mario Dehesa Azuara, Nick Stanley
This report was originally produced as part of Computer Science Course 15-618
We implemented various data structures and algorithms using Intel TSX (Transactional Synchronization Extensions) in order to determine how well TSX performs, how to optimize programs with TSX, and when TSX is an appropriate tool. We could not find general guidelines for when TSX is the appropriate solution to a problem, so we investigated when TSX is the appropriate tool and when it is less feasible. We discuss the challenges associated with implementing concurrent data structures with transactions, our solutions to some of these problems, and empirical evaluations of different heuristics and the performance of various data structures with TSX.