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/proc/*/status
前述のように、GNU ParallelはCPUマスクを調べて、許容されるCPUスレッドの数を決定するため、誤ったCPUスレッドの数を検出します。