如何在运行时设置线程数(避免+ RTS -N#)

jos*_*uan 7 parallel-processing haskell

我希望运行我的并行程序

$ myprogram <args> -n 4 <args>
Run Code Online (Sandbox Code Playgroud)

代替

$ myprogram <args> +RTS -N4 -RTS <args>
Run Code Online (Sandbox Code Playgroud)

主要原因是规范我的程序的参数格式.

我知道它可以做到

$ myprogramwrapper <args> -n 4 <args>
$ cat myprogramwrapper
#!/bin/bash
ARG1=parse args
ARG2=...
NCORES=....
myprogram $ARG1 ... +RTS -N$NCORES
Run Code Online (Sandbox Code Playgroud)

但它很难看.

非常感谢!:)

Fed*_*lev 8

您可以在运行时使用函数setNumCapabilities.