並列計算
Juliaは並行および並列プログラミングに向けた,3つの主要な機能カテゴリをサポートしています:
- 非同期的な「タスク」,言い換えるとコルーチン
- マルチスレッディング
- 分散計算
Julia Tasksにより,I/O,イベント処理,producer-consumer処理,および同様のパターンの計算を, 一時停止したり再開したりすることが可能になります. Tasksはwait
やfetch
などの操作を介して同期し,Channel
を介して通信できます.
マルチスレッディング機能は,タスクを,メモリを共有しながら複数のスレッドまたはCPUコアで 同時に実行できるようにすることにより,タスクの上で構築されます.
最後に,分散計算は,場合によっては異なるマシン上で分割されたメモリ空間を用いながら,複数のプロセスを実行します. この機能は,Distributed
標準ライブラリと,MPI.jl
やDistributedArrays.jl
といった外部パッケージにより提供されます.