What I would like to be able to do is produce a graph showing when processors are active, in particular when parallelism is being achieved. I assume the rightmost column is a timestamp but in what units (I suspect it is *not* microseconds)? How do I know when a processor is active and when it is inactive? Do I need to know anything else to draw what I hope is a pretty simple graph? I have included an example eventlog below for reference.
Many thanks, Dominic.
2117000: cap 1: creating thread 1
2117000: cap 1: thread 1 is runnable
2119000: cap 1: running thread 1
2193000: cap 1: stopping thread 1 (making a foreign call)
2195000: cap 1: running thread 1
2200000: cap 1: stopping thread 1 (making a foreign call)
2200000: cap 1: running thread 1
2239000: cap 1: creating thread 2
2239000: cap 1: thread 2 is runnable
2244000: cap 1: stopping thread 1 (thread yielding)
2244000: cap 1: thread 1 is runnable
2333000: cap 1: running thread 2
2386000: cap 1: stopping thread 2 (making a foreign call)
2420000: cap 1: running thread 1
2423000: cap 1: thread 2 has label "IOManager"
2424000: cap 1: stopping thread 1 (thread finished)
2484000: cap 0: creating thread 3
2484000: cap 0: thread 3 is runnable
2484000: cap 0: running thread 3
12187000: cap 0: stopping thread 3 (thread yielding)
12187000: cap 0: thread 3 is runnable
12189000: cap 0: running thread 3
21252000: cap 0: Repa.loadP[Delayed]: start
21263000: cap 0: creating thread 4
21263000: cap 0: thread 4 is runnable
21264000: cap 0: creating thread 5
21264000: cap 0: migrating thread 5 to cap 1
21264000: cap 0: waking up thread 5 on cap 1
21275000: cap 0: stopping thread 3 (blocked on an MVar)
21285000: cap 0: running thread 4
21287000: cap 1: waking up thread 5 on cap 1
21287000: cap 1: thread 5 is runnable
21287000: cap 1: running thread 5
23445000: cap 0: waking up thread 3 on cap 0
23445000: cap 0: thread 3 is runnable
23446000: cap 0: stopping thread 4 (blocked on an MVar)
23448000: cap 1: stopping thread 5 (blocked on an MVar)