首页 > 解决方案 > KDB Q 和 jupyterlab 不在桃子上使用奴隶

问题描述

我正在运行一个 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 二进制文件从命令行启动的 aq 会话中运行相同的命令,它会将从属服务器分配到所有可用的 CPU 上。

有谁知道为什么 jupyterlab q session 只使用 1 个 cpu?

编辑:感谢 Callum 和 Terry 将我指向任务集。所以,最初任务集被设置为掩码 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 实验室本身设置亲和力,但这也没有任何影响。

标签: kdbjupyter-lab

解决方案


尝试以不同的方式指定您的服务器参数,它们会被解析为

SERVERARGS:getenv`JUPYTERQ_SERVERARGS

所以尝试如下指定它们

"env":{"JUPYTERQ_SERVERARGS":"-s 20"}

推荐阅读