Java(Fork/Join)でのMIDACOの並列化
CPU時間を要する目的関数をもつ事例での
直列モードと並列モードによるMIDACOの実行
Example_parallel.java ▶ Midaco.java ▶ [並列化バージョン] ・ | ||
直列モード (P=1) | 並列モード (P=2) | 並列モード (P=4) |
合計時間:75 秒 | 合計時間:22秒 | 合計時間:13 秒 |
オリジナル:x1 | スピードアップ:x3.4 | スピードアップ: x5.7 |
結果はMIDACO制限版で再現できます(こちらで入手▷)
Javaでの並列処理には、「java.util.concurrent」パッケージが必要です。
特にMidaco.java[並列化バージョン]では、以下のインポートが必要です
import |
|
超線形スピードアップに関するメモ Note on Super-Linear Speedup
MIDACOのJavaゲートウェイに実装された非常に効率的な並列化方式のおかげで、並列化の効果が超線形のスピードアップとなります。たとえば、並列化係数P=2を使用した場合、実際のスピードアップは3.4倍(2倍ではなく)になります。超線形スピードアップは珍しく、非常に喜ばしい結果です。超線形スピードアップの詳細は、たとえば以下のリンクをご参照ください。https://en.wikipedia.org/wiki/Speedup#Super-linear_speedup