51436


Rubyで記述されたプログラムを複数プロセスによる並列処理を行いたいです．  
`MPI`であれば，`mpirun`というコマンドがあります．

Rubyにも同様なコマンドがありますでしょうか？


CC BY-SA 4.0
2018-12-21T12:08:03.127
51424
2018-12-22T07:23:24.427
30173
question
ruby-on-rails ruby
Rubyにおけるジョブの投げ方を知りたい


私が知る限り、一番「プロセス並列処理」に近い gem は [Parallel](https://github.com/grosser/parallel)
です。

[code]

    require 'parallel'
    Parallel.map([1,2,3]) do |i|
        heavy_task_on(i)
    end
    
[/code]

この形式で記述されたとき、この gem は何をやってくれるかというと、最大 CPU コア数分まで自身の複製 (fork) を作成し、引数の
enumerable の各要素をそれぞれの複製に Serialize
を経由して引き渡します。それぞれの複製は、個別のプロセスとして計算を進め、最終的にブロックの返り値を Serialize
を経由し、親に返却します。親は、すべての要素に対してこれをおこない、最終的に得られた値たちを Array として返してくれる、便利な gem です。


CC BY-SA 4.0
2018-12-22T07:23:24.427
51436
2018-12-22T07:23:24.427
754
51424
answer