Julia程式語言助力天氣/氣候模式

2021-02-09 氣象學家

歡迎訂閱微信公眾號:『氣象學家』

閱讀觀看建議

基於Julia的工作,視頻建議PC端觀看,原文PDF回復「posit」可以獲取!

TitlePosits as an alternative to floats for weather and climate models



標題天氣和氣候模式中,Posits數制(基於Julia語言)成為浮點型數制的一種替代方案



作者:Milan Klöwern1,  Peter D. Düben2, and    Tim N. Palmer3



1Atmospheric, Oceanic and Planetary Physics, University of Oxford, Oxford, UK

2European Centre for Medium-Range, Weather Forecasts, Reading, UK

3Atmospheric, Oceanic and Planetary Physics, University of Oxford, Oxford, UK



會議:Proceedings of the Conference for Next Generation Arithmetic 2019. ACM,    2019: 2



DOIhttps://doi.org/10.1145/3316279.3316281

Abstract

Posit numbers, a recently proposed alternative to floating-point numbers, claim to have smaller arithmetic rounding errors in many applications. By studying weather and climate models of low and medium complexity (the Lorenz system and a shallow water model) we present benefits of posits compared to floats at 16 bit. As a standardised posit processor does not exist yet, we emulate posit arithmetic on a conventional CPU. Using a shallow water model, forecasts based on 16-bit posits with 1 or 2 exponent bits are clearly more accurate than half precision floats. We therefore propose 16 bit with 2 exponent bits as a standard posit format, as its wide dynamic range of 32 orders of magnitude provides a great potential for many weather and climate models. Although the focus is on geophysical fluid simulations, the results are also meaningful and promising for reduced precision posit arithmetic in the wider field of computational fluid dynamics.

原文摘要

Posit數制號稱在許多領域的應用中具有更小的算術捨入誤差,成為了替代浮點數制的一種方案。通過研究天氣和氣候領域中低複雜度的模式,譬如,Lorenz系統和淺水模型,相比於傳統的float16數制能夠取得良好的效果。儘管一款標準化的數制處理器並不存在,但是我們可以利用傳統的CPU來模擬數制算法。基於1或2指數位的Posit16數制在進行淺水模型模擬的時候,模擬結果表明,Posit16數制明顯要比半精度浮點型數制更高的精度。我們因此推薦使用具有2指數位的16位作為標準的Posit格式,其32個數量級的寬動態範圍為天氣和氣候模式提供了巨大的潛力。雖然主要集中於地球物理流體的模擬,但研究結果也表明對於在計算流體力學的廣闊領域中應用精度較低的Posit數制具有重要的意義和應用前景。

圖文

第一部分

第二部分

補充

在2018年8月8日,MIT正式發布程式語言Julia 1.0,號稱:Python、R、C++三合一。據 Julia Computing 的宣傳,在七項基礎算法的測試中,Julia 比 Python 快 20 倍,比 R 快 100 倍,比 Matlab 快 93 倍。

Julia 語言的官網:https://julialang.org/

Julia中文社區:https://cn.julialang.org/

Julia 語言項目地址:https://github.com/JuliaLang

MIT 開發的 Julia 語言是全球熱度上升最快的程式語言之一,下載量超過 200 萬次,下載者包括谷歌、Facebook、FAA 和美國能源部等各個部門的開發者。近日,MIT CSAIL 實驗室正式發布了 Julia 1.0,該語言期望結合 C 的速度、Matlab 的數學表徵、Python 的通用編程與 Shell 的膠水命令行,並構建開源、自由與便捷的程式語言。具有以下特點:

快速:Julia 為高性能而生。Julia 程序通過 LLVM 為多個平臺編譯高效的本地代碼。

通用:它使用多分派作為範例,使得表達許多面向對象和函數式的編程模式變得容易。標準庫提供異步 I/O、進程控制、日誌記錄、性能分析、包管理器等。

動態:Julia 是動態型語言,與腳本語言類似,並且支持交互式使用。

專業:它擅長數值計算,其語法適用於數學,支持多種數值數據類型,並具有良好並行性。Julia 的多分派天生適合定義數字和類數組的數據類型。

多樣:Julia 擁有豐富的描述性數據類型,類型聲明使程序條理清晰且穩定。

可組合:Julia 的包可以很好地組合在一起。單位數量的矩陣,或者貨幣和顏色的數據列表,都可以組合——而且性能很好。

參考:

1.https://www.youtube.com/watch?v=wp7AYMWlPLw

2.Klöwer M, Düben P D, Palmer T N. Posits as an alternative to floats for weather and climate models[C]//Proceedings of the Conference for Next Generation Arithmetic 2019. ACM, 2019: 2.

3.https://web.stanford.edu/class/ee380/Abstracts/170201-slides.pdf

4.https://www.cl.cam.ac.uk/research/srg/han/hprls/orangepath/kiwic-demos/kiwi-posit-unum-and-custom-arithmetics/posits-gustafson-137-897-1-PB.pdf

5.https://www.oschina.net/news/98846/julia-1-0-released

歷史文章推薦(點擊閱讀)


Julia語言在氣候系統模式中的應用

並行下載最新ERA-5數據的Python腳本

利用PyCINRAD處理、顯示天氣雷達基數據

Python中如何使用NCL的全部色表Colormaps?

GMT5(The General Mapping Tools)初探の安裝、配置、運行

任何問題都歡迎交流探討,共同學習進步!

點個試試! ↓❤↓۞↓➹↓♨↓۞↓

Still waters run deep!

相關焦點

  • 程式語言新寵兒——Julia誕生記
    讓我們來一同走進它:為什麼要創建Julia程式語言?用一句話來說,因為我們求知若渴、不斷追求。我們希望傳統的程式語言像Python一樣適用,像R語言一樣適用於統計,像Perl一樣適用於字符串處理,像線性代數Matlab一樣強大,像DOS命令一樣擅長粘合程序。這似乎看起來簡單易學,但是想要讓黑客樂意去迎合它卻不是簡單之事。我們希望它具有互動性且能夠被編譯。像C語言一樣運行速度之快?
  • 超火的程式語言,Julia中文社區夏季會議開放報名
    本次大會將會有 Julia 程式語言的核心創作者之一亮相,給為 Julia 中文文檔翻譯做出過傑出貢獻的用戶頒獎噢(猜猜會是誰?)!Yao.jl: 量子計算遇上機器學習演講者:劉金國可微分編程是一個有趣的概念。為了能夠應用近期的量子硬體,變分量子線路這一個新領域在最近幾年吸引了大量的注意。我將介紹我們是如何在 Julia 裡通過 Yao 來實現對量子線路的可微分編程的。此外我還將展示 Yao 卓越的模擬性能。
  • 科研一對一 | NASA&馬裡蘭大學 | 大氣科學、氣候模式、數據分析:CMIP6全球氣候模式中極端天氣事件的時空演變
    CMIP6全球氣候模式中極端天氣事件的時空演變
  • 如何使用 Julia 語言實現「同態加密+機器學習」?
    本文介紹了使用 Julia 語言進行基於同態加密數據機器學習的全過程,對於入門者具有極大的參考價值。注意:本文討論了最前沿的密碼學技術,旨在提供一種利用「Julia Computing」進行研究的視角。請不要將文中的任何示例用於生產應用程式。在使用密碼學之前一定要諮詢專業的密碼學專家。
  • 有人要為ML定製程式語言,你的Python白學了?
    誠然,重新開創一種語言成本很高,但是考慮到機器學習在未來的廣闊應用前景,為其在程式語言上花些功夫,磨刀不誤砍柴工,未嘗不是一個好的辦法。如果這種語言真的被創建出來,你辛辛苦苦學的 Python 不是白學了? 隨著機器學習(ML)的發展,作為程式語言(PL)學習者和從業者,我們非常關注 ML 模型的複雜性,以及其建模框架的複雜性。
  • Julia中文社區夏季會議
    Julia中文社區會在每年的4月~8月之間舉辦一次大型的線下活動,其主要目的是為Julia中文社區的用戶提供一個相互認識、分享技術和交流心得的平臺,促進Julia請掃描二維碼填寫報名表本次大會將會有Julia程式語言的核心創作者之一亮相,給為Julia中文文檔翻譯做出過傑出貢獻的用戶頒獎噢(猜猜會是誰?)!
  • ——地球系統模式會讓天氣-氣候模式走向統一嗎?
    NGGPS模式被定位為5年後美國氣象部門支撐所有預報產品的全球耦合模式,能應用於短期天氣、延伸期(1周到4-6周)和季節及年預報的幾乎所有天氣氣候預報產品。  一旦NGGPS如期完成,且在2020年前後實現其目標,將意味著氣象界耳熟能詳的無縫隙預報在預報中心全球模式層面上將成為現實;由於NGGPS加入了大氣化學、空間天氣等要素,實際上已經升級到地球系統模式,這也暗示著地球系統模式從研究到應用的轉化;伴隨NGGPS的研發,NWS的軟體平臺也將升級換代,適應新天氣氣候預報系統和最新高性能計算設備的模擬平臺等也將一併實現,而這一切在全球具有示範意義
  • 除了Python,為什麼機器學習還需要一種新的程式語言?
    編者按:任何足夠複雜的機器學習系統都需要一個特定的、非強制要求、優弊共存的程式語言。 如今 Python 雖然在人工智慧領域應用廣泛,但是也存在一定的弊端,那麼是否有必要為機器學習量身打造一門新的程式語言?而究竟什麼樣的程式語言才是最適合機器學習呢?接下來,本文將為大家一一揭曉答案。
  • 計算機程式語言的發展簡史,人工智慧與雲計算程式語言!
    學習一兩門計算機程式語言也如當初學習英文一樣的火熱,隨著人工智慧AI和雲計算的不斷發展,Python語言和Scala語言已經成為這兩個領域裡面最為火熱的程式語言了,可以預知未來學習計算機程式語言的人也一樣會如同學習英文一樣的成為一種新常態,並且成為一種穩定的常態。以下筆者將以自己的學習認知,簡單的闡述一下計算機程式語言的發展。
  • C語言編程培訓好嗎
    C語言編程培訓好嗎,美裡湖校區位於槐蔭區西沙路490號,校園環境優美,現代化設施先進。C語言編程培訓好嗎, 精通遊戲開發中的常用算法和數據結構,對面向對象編程有深刻理解,熟練使用各種設計模式。多年項目開發經驗,精通C、OC、JAVA等多種程式語言,了解Windows、Linux、Mac OS等作業系統環境。
  • 假如女人是一種程式語言
    假如女人是一種程式語言,也許每個男人心中都有自己最喜歡的那一個吧?我認為女人可分兩類,「面向過程」和「面向對象」。「面向對象」的女人以尋找終身伴侶為目標,而「面向過程」的,則以經歷難以忘懷的愛情時光為己任。各位程序猿當然也要按需選擇最適合自己的「程式語言」,不要因為時髦而盲目追求「面向對象「,有時候過程可能比結果更重要。
  • 世界程式語言排行榜
    導讀:TIOBE 程式語言社區排行榜是程式語言流行趨勢的一個指標,每月更新,這份排行榜排名基於網際網路上有經驗的程式設計師、 課程和第三方廠商的數量。排名使用著名的搜尋引擎(諸如 Google、MSN、Yahoo!、Wikipedia、YouTube 以及 Baidu 等)進行計算。
  • 電腦入門程式語言
    今天和大家介紹一下電腦入門編程學什麼語言更合適。首選python語言,python 是一門開源免費、通用型的腳本程式語言,現在社會上會python語言的人很吃香的。它上手簡單,功能強大,堅持「極簡主義」。
  • 貝爾編程2019TCC編程挑戰杯正式啟動,為少兒編程教育普及助力!
    貝爾編程2019TCC編程挑戰杯正式啟動,為少兒編程教育普及助力! 2019TCC國際少兒編程挑戰杯於 6 月 21 日正式啟動報名通道。
  • 現代程式語言終極測評:五星篇
    學習時需要付出的代價因為ReasonML不準備成為JS的超集,所以這門語言比JS簡單很多。任何有過用JS進行函數式編程經驗的人,都可以在差不多一周之內上手ReasonML。ReasonML真的是這裡提到的最簡單的程式語言之一了。
  • 開發者眼中的程式語言……
    本文為大家簡述下當前流行的八款入門神器,看看各位開發者眼中的程式語言是怎樣的。 Pascal 儘管頗有些廉頗老矣的味道,不過在C,Java,Python盛行的今天,Pascal仍不失為初學者最佳入門語言的選擇之一。作為良好編程實踐的典範語言,Pascal對於初學者來說是挺適合的。
  • 最適合人工智慧開發的程式語言優缺點對比
    就像大多數軟體應用程式的開發一樣,開發人員也在使用多種語言來編寫人工智慧項目,但是現在還沒有任何一種完美的程式語言是可以完全速配人工智慧項目的。程式語言的選擇往往取決於對人工智慧應用程式的期望功能。關於最佳人工智慧程式語言的爭論從未停止,所以本文就來比較5種人工智慧項目最常用的程式語言,並列出它們的優缺點。
  • 程式語言這麼多,為什麼就只有C 語言能一直得到 SQLite 的青睞?
    C 語言是最好的 SQLite 在 2000 年 5 月 29 日發布,並一直使用 C 語言實現。C 語言一直是實現 SQLite 這類軟體庫的最佳語言,目前還沒有計劃使用其他程式語言重新開發 SQLite。
  • 程式語言Python的重要性
    Python是近年來最流行的程式語言之一。其清晰的語法和可讀性使其成為初學者的完美編碼語言。考慮到它的廣泛用途,認為學習Python是必不可少的,這是可以學習的。這提出了一個問題:Python什麼時候不是正確的答案?什麼時候Python程式語言是學習和/或使用的錯誤語言?