平行運算
Julia 支援這四類並行和平行程式設計
非同步「工作」,或協程:
Julia 工作允許暫停和重新開始運算,以進行 I/O、事件處理、生產者消費者程序和類似模式。工作可以透過
wait
和fetch
等操作進行同步,並透過Channel
進行通訊。雖然它們本身並非平行運算,但 Julia 允許您在多個執行緒上排程Task
。多執行緒:
Julia 的 多執行緒 提供了在多個執行緒或 CPU 核心上同時排程工作的能力,並共用記憶體。這通常是在個人電腦或單一大型多核心伺服器上獲得平行運算的最簡單方法。Julia 的多執行緒是可組合的。當一個多執行緒函式呼叫另一個多執行緒函式時,Julia 會在可用的資源上全球排程所有執行緒,而不會過度認購。
分散式運算:
分散式運算執行多個具有獨立記憶空間的 Julia 程序。這些程序可以在同一台電腦或多台電腦上執行。
Distributed
標準函式庫提供遠端執行 Julia 函數的能力。有了這個基本建構塊,就可以建立許多不同種類的分散式運算抽象。像DistributedArrays.jl
等套件就是這種抽象的一個例子。另一方面,像MPI.jl
和Elemental.jl
等套件提供對現有 MPI 函式庫生態系統的存取。GPU 運算:
Julia GPU 編譯器提供在 GPU 上原生執行 Julia 程式碼的能力。有一個針對 GPU 的豐富 Julia 套件生態系統。JuliaGPU.org 網站提供功能、支援的 GPU、相關套件和文件清單。