我正在运行一个 jupyter 笔记本 (3.6),并且在启动时启用了 20 个从服务器
"env":{"JUPYTERQ_SERVERARGS":"s-20"}
如果我在笔记本上检查一下,看起来一切都很好
\s
20i
但是,当我运行并行进程时,例如,
\t:100 {sqrt (200000?x) xexp 1.7} peach 10?1.0
我可以看到所有从站都使用相同的CPU。
如果我使用我在 runkernel .py 中指定的相同 q 二进制文件在从命令行启动的 q session 中运行相同的命令,它会将从属设备分布到所有可用的 cpu 上。
有人知道为什么 jupyterlab q session 只使用 1 个 cpu 吗?
编辑: 感谢卡勒姆和特里向我指出任务集。因此,最初任务集设置为掩码 8000000。我更改了该设置
system "taskset -cp 30-40 ",(string .z.i)
"pid 193048's current affinity list: 27"
"pid 193048's new affinity list: 30-40"
并重新运行上面的过程。现在所有任务仍在 cpu 28 上运行(这是之前使用的 cpu,尽管掩码将其设置为 27)。我还尝试设置 jupyter lab 本身的亲和性,但这对此也没有任何影响。
最佳答案
尝试以不同的方式指定服务器参数,它们会被解析为
SERVERARGS:getenv`JUPYTERQ_SERVERARGS
因此请尝试按如下方式指定它们
"env":{"JUPYTERQ_SERVERARGS":"-s 20"}
关于KDB Q 和 jupyterlab 不在 peach 上使用从属设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57751435/