中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

為并行處理和云計(jì)算而生 Julia誕生記

2019-02-26    來源:多智時代

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

用一句話來說,因?yàn)槲覀兦笾艨、不斷追求?/p>

我們擁有Matlab核心用戶,有擅長Lisp方面的黑客,Pythonistas和Rubyists方面的專家也有不少;此外,還有一些是Perl方面的大牛,有一部分開發(fā)者在我們剛略懂皮毛前便使用了Mathematica。換句話說,他們懂的不僅僅是皮毛,比起其他人,開發(fā)R語言要多的多。而C語言對我們來說卻是一塊荒島。

我們非常熱愛這些語言,他們是如此的完美和強(qiáng)大。我們在科學(xué)計(jì)算、機(jī)器學(xué)、數(shù)據(jù)挖掘,大型線性代數(shù)和分布式并行計(jì)算做了大量的研究工作——可以說每個項(xiàng)目都有各自的優(yōu)勢,甚至給其他人產(chǎn)生畏懼。任何一個項(xiàng)目都會權(quán)衡考量。

我們需要有一門開源語言,這門語言在行業(yè)內(nèi)是被公認(rèn)許可的(基于許可證情況下)。我們希望這門語言能夠有C語言一樣的速度,Ruby一樣得活力(dynamism)。我們需要像homoiconic一樣的語言,它像Lisp一樣有宏,但是也像Matlab一樣有顯而易見、熟悉的數(shù)學(xué)標(biāo)記。

我們希望傳統(tǒng)的編程語言像Python一樣適用,像R語言一樣適用于統(tǒng)計(jì),像Perl一樣適用于字符串處理,像線性代數(shù)Matlab一樣強(qiáng)大,像DOS命令一樣擅長粘合程序。這似乎看起來簡單易學(xué),但是想要讓黑客樂意去迎合它卻不是簡單之事。我們希望它具有互動性且能夠被編譯。

希望提供的需求:Hadoop分布式核心,因?yàn)闆]有Java和XML千字節(jié)的樣板文件,無法在數(shù)百臺機(jī)器上通過千兆字節(jié)的日志文件進(jìn)行篩選查找Bug。

拒絕復(fù)雜化的操作權(quán)限。我們想寫一段簡單的分等級的循環(huán)(代碼),這段循環(huán)(代碼)通過一個單核CPU上的寄存器利用嚴(yán)密的機(jī)器代碼就可以編譯。比如寫一個A*B的代碼,然后用一千臺計(jì)算機(jī)進(jìn)行1000次計(jì)算,這些計(jì)算機(jī)放在一起就是一個巨大的矩陣產(chǎn)品。

當(dāng)我們不喜歡類型時,永遠(yuǎn)不會提起它。當(dāng)需要動態(tài)函數(shù)時,需要利用泛型編程來編寫算法并將其應(yīng)用到類型中,尋求最佳方法從多重角度且有效的為所有函數(shù)挑選參數(shù),通過數(shù)十種方法來定義不同類型間的共同特性,付出這么多的努力,我們無非是想語言變得更加簡單、干凈。

大約兩年半前,開始著手開發(fā)這門語言,那時還不是完整版,隨著發(fā)布時間臨期將至,最終1.0版醞釀而生——我們將其命名為Julia。

1.0版基本上90%達(dá)到了我們的“無理”要求。而現(xiàn)在需要您來提出“無理”要求并進(jìn)一步改造它。因此,如果您也是一名積極進(jìn)取、求知若渴的程序員,您不妨來試一試。

Julia是一個新的高性能動態(tài)高級編程語言。語法和其他編程語言類似,易于其他語言用戶學(xué)習(xí)。Julia擁有豐富的函數(shù)庫,提供了數(shù)字精度、精致的增幅器(sophisticated amplifier)和分布式并行運(yùn)行方式。核心函數(shù)庫等大多數(shù)庫是由Julia編寫,但也用成熟的C和FORTRAN庫來處理線性代數(shù)、隨機(jī)數(shù)產(chǎn)生和字符串處理等問題。Julia語言可定義函數(shù)并且根據(jù)用戶自定義的參數(shù)類型組合再進(jìn)行重載。

Julia使用的JIT(Just-in-Time)實(shí)時編譯器很有效地提高了它的運(yùn)行效率,在某些地方甚至能比得上C和C++。

下面通過標(biāo)準(zhǔn)測試程序來測試下它的效率,你可以自己比較下各語言的運(yùn)行效率。

為并行處理和云計(jì)算而生 Julia誕生記

注:運(yùn)行環(huán)境是MacBook Pro,2.53GHz,Intel Core2 Duo CPU和8G 1066MHz,DDR3內(nèi)存。

上表中只有C++運(yùn)行時間是絕對時間,其它都是相對于C++的相對時間,數(shù)值越小代表用時越少。除少數(shù)幾項(xiàng)測試Julia惜敗于Matlab和JavaScript外,Julia完勝其他高級語言,甚至在pi summation上,成功以25%的優(yōu)勢擊敗C++。通過使用Intel核心數(shù)學(xué)庫(MKL),MatLabs在矩陣乘法運(yùn)算中稍占便宜,但是擁有MKL授權(quán)的Julia同樣可以使用Intel MKL庫,不過默認(rèn)的開源BLAS庫性能也不錯。

這個測試表是通過編譯器性能對一系列常用代碼模式進(jìn)行分析而得出的。比如:字符串解析、函數(shù)調(diào)用/回調(diào)、排序和數(shù)值循環(huán)、生成隨機(jī)數(shù)和數(shù)組運(yùn)算等。

Julia克服了高級語言一直難以逾越的難關(guān):標(biāo)量算數(shù)循環(huán)(在pi summation上就能體現(xiàn)出來。)。Matlab的浮點(diǎn)運(yùn)算JIT和 V8 JS引擎對此也處理得很好。但JS不支持LAPACK等線性代數(shù)庫導(dǎo)致了在矩陣運(yùn)算中的低性能,而Julia有比較多的方法消除負(fù)載(overhead),使得它可以輕松支持任何函數(shù)庫。

矩陣統(tǒng)計(jì)的Julia代碼雖然性能上比不上C++但卻要簡潔得多。然而,規(guī)范和編制太過隨意可能會在將來成為一個問題。

Julia為分布式計(jì)算提供很多關(guān)鍵模塊,使得它可以更加靈活地支持多種并行處理。

雖然還是早期版本,Julia已經(jīng)支持了云計(jì)算。下面是基于交互性的Julia會話截圖:

為并行處理和云計(jì)算而生 Julia誕生記

Julia將提供更加完整的性能支持云計(jì)算操作,比如分享和編輯,包括數(shù)據(jù)管理、數(shù)據(jù)挖掘和可視化操作等。它還允許用戶操作大數(shù)據(jù)類型而不用關(guān)心數(shù)據(jù)操作行為。

TJulia的核心代碼遵循MIT協(xié)議,而其他庫各自遵循GPL/LGPL/BSD等協(xié)議。用戶還可以方便地將Julia作為核心功能共享庫與C/FORTRAN代碼聯(lián)合使用。

在不久的將來,云計(jì)算一定會徹底走入我們的生活,有興趣入行未來前沿產(chǎn)業(yè)的朋友,可以收藏云計(jì)算,及時獲取人工智能、大數(shù)據(jù)、云計(jì)算和物聯(lián)網(wǎng)的前沿資訊和基礎(chǔ)知識,讓我們一起攜手,引領(lǐng)人工智能的未來!

標(biāo)簽: isp 大數(shù)據(jù) 代碼 開發(fā)者 權(quán)限 云計(jì)算

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:盛大云即將亮相中國工博會 展示行業(yè)多項(xiàng)“第一”

下一篇:中國云計(jì)算產(chǎn)業(yè),未來幾年面臨的良好機(jī)遇