Threading

The DaCapo-9.12-bach benchmark suite, released in 2009, has a range of multithreaded benchmarks. The following table characterizes the nature of the threading in the existing benchmarks

avrora
Driven by a single external thread, but it is internally multithreaded with each simulated element using a thread (i.e. each node in a grid of simulated nodes is threaded). Avrora demonstrates a high volume of fine granularity interactions between simulator threads.
batik
Driven by a single external thread and the bulk of its internal work is single threaded. It does use worker threads for transcoding and rendering images and the use of Java2D also greats a worker thread.
eclipse
Driven by a single external thread it is internally multithreaded. However, some worker thread activity seems to be serialised, while others seem to engage in some fine granularity interactions. As such, eclipse exhibits periods of little concurrency and brief periods of moderate granularity concurrency (further investigation is required).
h2
Multithreaded, it is driven by one client thread per hardware thread and internally has a server thread for each client thread as well as other support threads. The number of client threads for the default benchmark size is set a one per hardware thread.
jython
Driven by a single thread. Internally it uses one thread per hardware thread, but the bulk of the Jython tests are single threaded.
luindex
Driven by a single external thread. Internally it uses some helper threads to a limited degree displaying limited concurrency.
lusearch
Multithreaded, it is driven by one client thread per hardware thread, requiring little interaction between threads.
pmd
Driven by a single client thread it is internally multithreaded using one worker thread per hardware thread.
sunflow
Multithreaded, driven by a client thread per hardware thread, each thread processing an available tile of work at a time and another thread created due to the use of Java2D.
tomcat
Multithreaded, driven by a client thread per hardware thread, each client thread performing a series of requests which are dealt with by a server thread for that client thread.
tradebeans
Multithreaded, driven by a client thread per hardware thread, each client thread performs requests from an effective queue of requests. Those requests are dealt with by corresponding server threads. The pool of server threads created by the geronimo server is large, most threads are idle.
tradesoap
Same as for tradebeans.
xalan
Multithreaded, explicitly driven by the number of hardware threads available, each thread taking an element from a work queue.


The DaCapo benchmark suite, initially released in 2006, has a handful of multithreaded benchmarks. The following table characterizes the nature of the threading in the existing benchmarks

hsqldb
20 threads during the later (query) part of the workload
lusearch
32 threads
xalan
8 threads