並列計算
Julia がサポートする並列かつ並行な計算のための機能は大きく三つのカテゴリに分けられます:
- 非同期なタスク (コルーチン)
- マルチスレッディング
- 分散計算
タスクを使うと計算の停止と再開が行えます。例えば IO・イベント処理・生産者-消費者プロセスといったパターンでタスクは利用できます。タスクの同期は wait
や fetch
で行い、タスク同士の通信は Channel
で行います。
マルチスレッディングはタスクを使って実装される機能であり、複数のタスクを複数のスレッドあるいは CPU コアでメモリを共有しながら同時に実行します。
最後の分散計算は分離されたメモリ空間を持つ複数のプロセスを実行します。プロセスが異なるマシンで実行される場合もあります。この機能は標準ライブラリの Distributed
パッケージや外部パッケージの MPI.jl や DistributedArrays.jl で提供されます。