私は次のようにgnuパラレルを使用しています。
find conf/20230214/ -name "conf.yaml" | parallel run_backtest
このrun_backtest
関数は conf.yaml を読み、いくつかのコードを実行します。
conf / 20230214 /にconf.yamlが1つしかない場合、プロセスのCPU使用率は200%に達する可能性があります。
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
154561 xxx 20 0 1355764 1.1g 3608 R 200 0.1 0:32.25 bt_atm
conf/20230214/ に 2/3/4 conf.yaml がある場合、各プロセスの CPU 使用率は 120%/100%/80% に低下します。
答え1
ASTが書いたように、これは通常システムのボトルネックが原因で発生します。
私のシステムでは、ほぼすべてのディスクIOです。
iostat -dkx 1
ディスクの負荷を確認するのに適しています。
並列化が多すぎると処理速度が遅くなるため、最適な並列化は実際にさまざまな量の並列化を試みなければ決定できません(https://oletange.wordpress.com/2015/07/04/parallel-disk-io-is-it-faster/)。