Transactional Memory (TM)
Transactional Memory (TM) is a novel programming model for multicore architectures that allows concurrency control over multiple threads. Its main goals are to increase code productivity by providing a simple programming model to the programmer, and achieve higher performance through optimistic parallelism. It has been proposed as an alternative to synchronization through locks, which are pessimistic and complex to use (error-prone, difficult to compose) in a fine-grain scheme.
Our research interests mainly cover the following topics :
- Employing TM to re-engineer applications that have been traditionally difficult to parallelize and speedup. We are currently focusing on fundamental graph algorithms. More specifically, we are working on the inherently serial Dijkstra's algorithm and BFS.
- Finding an effective way to efficiently combine it with other programming models that have been proposed in the literature. We are currently looking at combining it with Speculative Multithreading.
Publications
- K. Nikas, N. Anastopoulos, G. Goumas, N. Koziris : "Employing Transactional Memory and Helper Threads to Speedup Dijkstra's Algorithm". In Proceedings of International Conference on Parallel Processing (ICPP), Vienna, Austria, September 22-25, 2009.
- N. Anastopoulos, K. Nikas, G. Goumas, N. Koziris : "Early Experiences on Accelerating Dijkstra's Algorithm Using Transactional Memory". In Proceedings of 3rd Workshop on Multithreaded Architectures and Applications (MTAAP 2009).