2016-01-20 9 views
5

私のsparkconfでは、使用するコアの数を設定できます。私は4つの物理的なものがあります。私のラップトップには8つの論理があります。私より多くのコアを使用しようとするとどうなりますか?

+1

sparkをローカルモードで実行した私の実験では、 'master =" local [4 * physical cores] "を設定すると良い結果が得られました。私のCPUの使用率は約40%から約80%に倍増しました。使用可能な物理コアよりも2,4,8倍のスレッドを使用するようにSparkを構成することは、間違いなく価値があります。 – asmaier

答えて

7

コアの数には物理コアはなく、実行中のスレッド数が記述されています。これは、数が利用可能なコアの数よりも多い場合、実際には何も起こらないことを意味します。

設定に応じて、実際には、一般的に推奨される設定の2倍の数の使用可能なコアを使用することが好ましい設定になります。明らかに数が多い場合、アプリケーションは実際の処理よりスレッド間の切り替えに多くの時間を費やします。

0

これは、クラスタマネージャによって大きく異なります。私はあなたが約local[n]実行モードを求めていると仮定します。

この場合、ドライバと唯一のエグゼキュータは同じスレッド番号のnのJVMと同じです。

DAGScheduler - Spark実行プランナーは、nスレッドを使用して、必要な数のタスクをスケジュールします。

コアよりも多くのタスク、つまりスレッドがある場合、OSはコアより多くのスレッドを処理し、適切にスケジューリングする必要があります。

関連する問題