web-dev-qa-db-ja.com

LinuxでRを使用したマルチスレッドはありません

Ubuntu15.10オペレーティングシステムでRを使用して統計分析を行っています。私のRスクリプトは完了するのに非常に長い時間がかかります。約2〜3時間。

その間、CPUの負荷を確認しました。 1つを除いてすべてのCPUがほとんどアイドル状態であることに気づきました。下の図では、ご覧のとおり、CPU 8のみが100%です。

enter image description here

LinuxカーネルがすべてのCPUのワークロードのバランスをとらないのはなぜですか?

2
frogatto

Linuxは、すべてのCPU間でワークロードのバランスを取ります。ただし、そのためには、ワークロードをマルチスレッド化する必要があります。シングルスレッドのワークロードを複数のCPUに分散することはできません。実際、シングルスレッドのタスクを単一のCPUに保持するのが最も効率的です。

ここでの問題は、問題のRスクリプトがマルチスレッド用に作成されていないことです。

4
ChrisInEdmonton

プロセスがmapReduceにつながる場合は、スクリプトを断片に分割し、各断片を異なるCPUで実行できます。

0
tkg