2016-03-29 22 views
1

私はローカルマシンにクアッドコアCPUを持っています。私はJuliaのプロセス数

julia -p 4 

と実行の並列コンピューティングとスクリプトとしてjuliaを実行する場合は、私の理解は次のとおりです。

  • コア1:スクリプトとすべての非並列コンピューティング+パラレル労働者を実行している1
  • コア2:パラレルワーカー2
  • コア3:パラレルワーカー3
  • コア4:パラレルワーカー4

これは間違いありませんか?

さらに、コアの数より多くの処理を行うとどうなりますか?たとえば、

julia -p 8 

次のようなものですか?

  • コア1:パラレルワーカー2 +パラレルワーカー6
  • コア3:パラレルワーカー3 +パラレルスクリプトおよびすべての非並列計算+パラレルワーカー1 +パラレルワーカー5
  • コア2を実行しています作業員7
  • コア4:手動で特定のコアを持つ労働者を関連付けない限り、並列作業員4 +パラレル作業員8
+2

閉じる。 'julia -p 4'は4つの_worker_プロセスを開始します。つまり、 'nprocs()'を実行すると5になります。id 1のプロセスは計算を指示し、2から5までのプロセスは並列計算を行う作業者になります。 – spencerlyon2

答えて

5

、関連付けは、お使いのOSが決定し、それが時間の経過とともに変化することがあり何でもなります。

3

これは読み込まれた質問ですが、要するにJuliaに残されていません。スケジューラは、どのリソースが作業を行うかを決定する必要があります。プロセス(労働者)はコアを切り替えることさえできます(つまり、作業員2はコア3で開始し、後でコア4で継続できます)。あなたのプロセッサのワーカーとコアとの間には関係がありません。

一般に、スケジューラは、コンテキスト切り替えのコスト増加を避けるために、可能であれば同じコアでプロセスを実行させようとします。

関連する問題