LoginSignup
0
0

More than 3 years have passed since last update.

parallelの並列数の決め方

Posted at

parallel の並列数の決め方を調べたのでメモしておきます。下記の1から順に評価されて並列数が決定されます。

1.システムのプロセッサコア数

Etc.nprocessors の返すプロセッサコア数です。1CPU のシステムでは parallel を使っても後述の指定のいずれも行わなかった場合は並列数1になってしまいます。逆にサーバ機で多コアの Xoen などを使っている場合には並列数が多くなりすぎて CPU やメモリを圧迫してしまうこともあり得ます。

2. 環境変数 PARALLEL_PROCESSOR_COUNT

環境変数 PARALLEL_PROCESSOR_COUNT が設定されていると、その値が採用されます。parallel を呼び出す都度に指定する必要がないので、常に同じ並列数でよい場合には便利でしょうか。

3. in_processes/in_threads で指定する並列数

map メソッドの in_processes/in_threads オプションで都度並列数を指定できます。ここで指定するケースが一番多いですかね。

4. map/each メソッドの source 数

Parallel.map([1, 2, 3], in_process: 10)... としても並列数は3にしかならないわけですね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0