3577827a

By: Tom Sydney Kerckhove <syd@cs-syd.eu>

Run mutation children in parallel: N workers = getNumCapabilities

Uses mapConcurrently with a QSem to bound concurrency to the number of
RTS capabilities (set via +RTS -N).  Each child process is independent
so no synchronisation is needed between them beyond the semaphore.

Suite timing

Time to Start Worker time Duration Time to finish
Config 0s 2s 2s 2s
Eval 3s 36s 36s 39s
Build 10s 41m27s 15m47s 15m58s
Test - - - -
Deploy - - - -
Suite 0s 42m06s 15m58s 15m58s

Timeline

0s1m2m3m4m5m6m7m8m9m10m11m12m13m14m15m