Sparkでアルゴリズムを書いたとしますが、N
のローカルモードで実行されているデータセットの1 .. X
コアを使用して、その性能を評価できるとします。ランタイムはY
ノードとデータサイズM >> N
とクラスタ上で実行されている何クラスタでのSparkパフォーマンス/スケーラビリティの予測?
- :どのようにこれらのような質問に近づくでしょうか?
- 任意の数のノードを使用して、サイズ
M >> N
のデータセットの最小ランタイムはどのくらいですか?
明らかに、これは無数の要因の影響を受け、正確な見積りを与えることはほとんど不可能です。しかし、どのように教育された推測を思い付くでしょうか?ローカルモードで実行すると、主にCPU使用率を測定できます。シャッフルでディスク+ネットワークの負荷を考慮する経験則がありますか?クラスタのパフォーマンスをシミュレートする方法さえありますか?
これは完全に有効ですが、私はディスク+ネットワークを全く無視しないようにもっと興味を持っていました。大規模なシャッフルがあることを知り、クラスタの帯域幅も知っていたらどうなりますか?並列化のオーバーヘッドを無視すると、並列実行の限界を見積もることはできません。 – bluenote10
ディスクは無視されませんでした。シャッフルがあった場合、私はM/Bandwidthになります。結果として累積される。データセット全体を1回以上シャッフルする必要がある場合は、アルゴリズムを改善することを検討します。 –