Cache the raw, unfiltered groups.

Compute them in parallel and store the threads in a Map.