kdb - 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 实验室本身设置亲和力,但这也没有任何影响。
解决方案
尝试以不同的方式指定您的服务器参数,它们会被解析为
SERVERARGS:getenv`JUPYTERQ_SERVERARGS
所以尝试如下指定它们
"env":{"JUPYTERQ_SERVERARGS":"-s 20"}
推荐阅读
- git - 为什么使用 git 从 powershell 复制的二进制文件与原始文件不同?
- google-apps-script - 谷歌脚本根据数据变化改变行颜色,工作表排序
- go - Go test 可以访问生产函数但不能访问测试函数
- javascript - 如何将数字或字符转换为 MathML 格式?
- python - 有没有一种简单的方法让 python 列表只包含给定类型的对象
- angular - Angular Microfrontend - 需要添加强制更改检测以在插入时刷新视图
- rest - 用于 protobuf 定义的 RESTful 服务契约
- javascript - google 或 facebook 如何检测客户端中的网络连接可用性
- extjs - GWT-GXT 3.0 图表
- sql - Postgres 有没有办法生成跳过周末的每日报告?