[LLVMdev] Tool support for generation of transactional code

Torvald Riegel torvald at se.inf.tu-dresden.de
Sun Aug 19 17:47:58 PDT 2007


On Sunday 19 August 2007 22:52, Vikram S. Adve wrote:
> Torvald,
>
> This is nice work.  Do you have a set of applications or benchmarks
> that you have transactionalized at the source level?  If so, have you
> reported performance numbers for them somewhere?

The absence of such a tool is the reason why there are not many benchmarks 
around, especially no applications that are used by real users. There are two 
microbenchmarks in the release and I have performance numbers in my slides 
for the Transact presentation 
(http://wwwse.inf.tu-dresden.de/presentations/slides-felber2007tanger.pdf). 
We currently are not doing any TM-specific optimizations as described in 
recent Intel or MSR papers, but LLVM's generic optimizations seem to be quite 
good at reducing teh number of loads and stores.
I'm currently preparing a Tanger patch for the STAMP benchmarks 
(http://stamp.stanford.edu), but I need to add some features first. A full 
list of the missing features (all, not just for STAMP) that I am aware of is 
in TODO.txt in the release archive.

So, it would be fairly easy to pick, for example, sequential implementations 
of various data structures and run them as transactions, but this is not 
necessarily what users need or how they would use TM. This problem was also 
talked about a lot at Transact's panel discussion, and the agreement was 
roughly that we need real users to be able to evaluate TM correctly.

So we can't give you benchmarks yet, but the idea is that tools such as Tanger 
can make this process much easier, both regarding benchmarks coming from 
researchers and real users. This approach and Tanger are work in progress, 
but we are working on it.
If you have any ideas for benchmarks, or know people that do have and are 
interested in using TM, please tell me.


Torvald



More information about the llvm-dev mailing list