Assign a cache to each thread.

Each thread gets its own private cache structure. At the end execution,
cache performance for all threads are merged into a single report such
that total hits to cache size N = sum(hits to thread i cache size N) for
all threads i.
Report split accesses.

Output the number of accesses that require accessing more than one
cache line to service the request.
tally accesses to a global shared cache
combine stacks and sort to create globally shared stack profile