在 WSL 下运行的 Ubuntu 18.04 检测到我的 CPU 错误:
$ cat /proc/self/status | grep Cpus_allowed
Cpus_allowed: 00000001
CPU是i7-4510U(2核/4线程)所以我期望:
Cpus_allowed: f
或类似的(ff、ffffffff、0000000f)。
奇怪的是,当我运行 4 个进程时,每个进程都会获得一个 CPU 线程,因此以 400% 的 CPU 利用率运行。所以就好像 CPU 掩码没有受到尊重。
也taskset
不受尊重。这应该使用单个线程 (100%),但它使用全部 4 个线程 (400%):
taskset 2 parallel -j4 'bzip2 < /dev/zero >' ::: {1..10}
这是 WSL 中的错误吗?如果是这样:我该在哪里举报?
背景
问题描述于https://arstechnica.com/civis/viewtopic.php?f=15&t=1442563如上所述:GNU Parallel 检测到错误的 CPU 线程数,因为它查看 CPU 掩码以/proc/*/status
确定允许使用多少个 CPU 线程。