基本5の補足(並列処理での速度向上例)
提供: Eospedia
ルールを組み合わせ方次第で並列処理できるところ増やして速度アップをはかることができます。
しかし、ルール間ではファイルのやり取りが行われるので、処理の短いルールを何度も呼んでしまうとこの部分の割合が多くなってしまいます。
そこで1ファイルについて並列処理できない部分のルールはまとめて長く処理されるようにすると、そのルールを各ファイル毎で並列処理すればよいので速度を改善できます。
コード | 処理結果(ProM) | |
---|---|---|
(1) |
Rule Main input '*.in'.all output '*.out'.all Flow rule First rule Second End Rule First input '*.in' output '{$I[1][1]}.route' Action awk '{ print $1*2 }' {$I[1]} > {$O[1]} End Rule Second input '*.route' output '{$I[1][1]}.out' Action awk '{ print $1+1 }' {$I[1]} > {$O[1]} End |
![]() |
(2) |
Rule Main input '*.in'.all output '*.out'.all Flow rule FirstSecond End Rule FirstSecond input '*.in' output '{$I[1][1]}.out' Action awk '{ print $1*2 }' {$I[1]} > {$I[1][1]}.route awk '{ print $1+1 }' {$I[1][1]}.route > {$O[1]} End |
![]() |