Sparkフレームワークがコアをどのように使っているのかを理解しようとしていますスタンドアロンモード。 Sparkのドキュメントによると、パラメータ "spark.task.cpus"の値は、デフォルトで1に設定されています。これは、各タスクに割り当てるコアの数を意味します。Sparkはマルチコアまたはハイパースレッドマシン上の1つのタスク内でどのように並列性を達成するのですか
質問1: マルチコアマシンの(合計8ハードウェアスレッドで、例えば、4つのコア)、 "spark.task.cpus = 4"、使用スパークます4つのコア(コアあたり1つのスレッド)またはハイパースレッドを持つ2つのコア?
"spark.task.cpus = 16"をこのマシンの使用可能なハードウェアスレッドの数より多く設定するとどうなりますか?
質問2: このタイプのハードウェア並列処理はどのように達成されますか?私はコードを調べようとしましたが、コアレベルの並列処理のためにハードウェアまたはJVMと通信するものは見つかりませんでした。たとえば、タスクが「フィルタ」機能である場合、単一のフィルタタスクを複数のコアまたはスレッドに分割する方法はありますか?
多分私は何かを逃しています。これはScala言語に関連していますか?