基本介紹
- 外文名:The Julia Language
- 類別:高級程式語言
- 特點:使用實時編譯器
簡介,特點,並行性和雲計算,開源,編譯器,
簡介
The Julia Language是一個新的高性能動態高級程式語言。語法和其他程式語言類似,易於其他語言用戶學習。Julia擁有豐富的函式館,提供了數字精度、精緻的增幅器(sophisticated amplifier)和分散式並行運行方式。核心函式館等大多數庫是由Julia編寫,但也用成熟的C和FORTRAN庫來處理線性代數、隨機數產生和字元串處理等問題。Julia語言可定義函式並且根據用戶自定義的參數類型組合再進行重載。
(概述圖片和內容來源:)
特點
並行性和雲計算
The Julia Language並沒有強加任何特定的風格的並行用戶。相反,它提供了大量的分散式計算的關鍵組成部分,它具有足夠的靈活性,以支持一些風格的並行,允許用戶添加更多。下面這個簡單的例子演示了如何計算並聯了大量的擲硬幣的磁頭數。
nheads = @平行(+)= 1:100000000randbit()結束此計算自動分布在所有可用的計算節點,並在調用節點的結果,減少了由“求和(+),則返回。
開源
核心執行的Julia的MIT許可證下授權。所使用的Julia環境的各種庫包括他們自己的許可證,如GPL,LGPL,BSD (環境,其中包括語言,用戶界面和庫,是根據GPL)。可以建立的語言,作為一個共享庫,使用戶可以結合朱莉婭用自己的C / Fortran代碼或專有的第三方庫。此外,朱莉婭使得它簡單的 C和Fortran共享庫,而無需編寫任何包裝代碼,甚至重新編譯現有代碼中調用外部函式。您可以嘗試直接調用外部庫函式從Julia的互動提示,獲得即時反饋。
編譯器
The Julia Language使用的JIT(Just-in-Time)實時編譯器很有效地提高了它的運行效率,在某些地方甚至能比得上C和C++。
只有C++運行時間是絕對時間,其它都是相對於C++的相對時間,數值越小代表用時越少。除少數幾項測試Julia惜敗於Matlab和JavaScript外,Julia完勝其他高級語言,甚至在pi summation上,成功以25%的優勢擊敗C++。通過使用Intel核心數學庫(MKL),MatLabs在矩陣乘法運算中稍占便宜,但是擁有MKL授權的Julia同樣可以使用Intel MKL庫,不過默認的開源BLAS庫性能也不錯。
Julia克服了高級語言一直難以逾越的難關:標量算數循環(在pi summation上就能體現出來。)。Matlab的浮點運算JIT和 V8 JS引擎對此也處理得很好。但JS不支持LAPACK等線性代數庫導致了在矩陣運算中的低性能,而Julia有比較多的方法消除負載(overhead),使得它可以輕鬆支持任何函式館。
矩陣統計的Julia代碼雖然性能上比不上C++但卻要簡潔得多。然而,規範和編制太過隨意可能會在將來成為一個問題。