Haskell 标准是否可以用于跨多个核心分析并发性?

Haskell 标准是否可以用于跨多个核心分析并发性?,haskell,concurrency,ghc,criterion,Haskell,Concurrency,Ghc,Criterion,我注意到,当我运行使用-O2-rtsopts-threaded-eventlog和+RTS-N2-ls编译的标准基准测试(不执行forkIO或par)时,真正的工作(不仅仅是GC)分布在两个核心上。Criteria源的快速grep没有显示并行性的起源 我想做一些仔细的基准测试,例如在两个线程之间对MVar进行有争议的更新;我能用Criteria准确地做到这一点吗(例如,如果所有的并行都发生在测试之间)?我在测试的每个IO操作之前和之后都插入了一个traceEventIO,在测试代码执行期间,它看

我注意到,当我运行使用
-O2-rtsopts-threaded-eventlog
+RTS-N2-ls
编译的标准基准测试(不执行
forkIO
par
)时,真正的工作(不仅仅是GC)分布在两个核心上。Criteria源的快速grep没有显示并行性的起源


我想做一些仔细的基准测试,例如在两个线程之间对MVar进行有争议的更新;我能用Criteria准确地做到这一点吗(例如,如果所有的并行都发生在测试之间)?

我在测试的每个IO操作之前和之后都插入了一个
traceEventIO
,在测试代码执行期间,它看起来完全是单线程的,所以我认为我应该很好。

你能在基准测试开始时在事件日志中写一个通知吗?@JohnL好建议;我试过了,但Criteria似乎并没有在测试代码执行期间尝试任何并行性。