QuakeTM

Download: 

Please find below list of all releases for this particular tool:

QuakeTM is the first complex, real world application that was parallelized from sequential version using transactional memory.

QuakeTM is a parallel version of Quakeworld server application (a multiplayer version of the Quake game server) . It is parallelized from the sequential version using OpenMP and transactional memory.

QuakeTM consist of three applications:

  • the transactional server
  • the TraceBot client, for running traces
  • the VideoClient client, for visual testing and production of traces

The behavior of the server can be controlled by changing the macro definitions. It can be run in a serial, lock based or transactional version. It also supports two synchronization granularities: coarse-grained and fine-grained. Transactional nesting can be controlled by macros or it can be handled by the TM runtime system. Using macros, it is also easy to adopt the code to any TM implementation.

Currently the code is written to support the prototype version of the Intel STM compiler 3.0. The parallelization is done using OpenMP.

Please cite the following reference if you use QuakeTM in your research:

Vladimir Gajinov, Ferad Zyulkyarov, Adrián Cristal, Osman S. Unsal, Eduard Ayguadé, Tim Harris, Mateo Valero, QuakeTM: Parallelizing a Complex Serial Application Using Transactional Memory, 23rd ACM/SIGARCH International Conference on Supercomputing (ICS'09) - June 2009

The research leading to these results has received funding from the European Community's Seventh Framework Programme [FP7/2007-2013]
under the VELOX Project, grant agreement n°216852.