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.