【編者按】程式員用代碼改變世界,基于計算機硬體的迅猛發展,摩爾定律被漸漸遺忘,科學圈也受到了一系列的影響,近日,科學頂刊 Nature 發布文章,介紹了上世紀五十年代以來改變科學圈的十大計算機代碼,當然,排名不分先后,僅供參考,
編譯 | 八寶粥
出品 | CSDN(id:CSDNnews)
從 Fortran 到預印本,這些程式上的進步和平臺給生物、氣象和物理學帶來了顯著的提速,如果你帶著你的手機回到幾十年前,就是超神一樣的存在,它的計算能力比起 NASA 在 1969 年登月時候都強的多,然而,手握一個甚至多個手機的我們,可能極少數人會有自己的衛星和登月計劃吧?(這里請馬斯克同志不要發言),計算機在航空航天、物理學、化學、生物學等多個領域,起到了催化劑和加速器的作用,今天我們一起來看 Nature 上總結出來為科學變革加速的十大計算機代碼,
文章選出了以下十大名碼,分別是 Fortran、快速傅立葉變換、生物資料庫、氣候一般回圈模型、BLAS、NIH/ImageJ/Fiji、BLAST、arxiv.org、Ipython Notebook 以及 AlexNet,
![[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-tEXdQorA-1611582130254)(image/20210125_151624_40.png)]](https://img.uj5u.com/2021/01/28/219093281052241.png)
1.語言先驅:Fortran 編譯器(1957)

Fortran,全稱:Formula Translation,誕生于 1957 年,那一年,ENIAC 也才 11 歲,那個帶手機穿越回去就能當成計算之神的年代,編程真的是太太太不友好了,即使機器語言和匯編語言允許用戶利用代碼編程,仍然需要熟悉計算機結構,然而這樣的人肯定不多,不過,IBM 的工程師約翰·巴科斯(J. Backus)就給董事長斯伯特·赫德(Cuthbert Hurd)寫信,說天天寫這個太浪費青春了,我們造一個新的語言吧?董事長也是有魄力,大手一揮就決定了,也不知道真的看到了前景還是說就是不服,反正當時的顧問馮·諾依曼的強烈反對沒有用就是了,雖然就在 Fortan 誕生這一年諾依曼就去世了,但大神就是大神,即使在當時 Fortran 還沒有如后來一般名揚科學圈,諾伊曼依然對 Fortran 表示了承認,
從那時起,計算機不再只是“計算機科學家的玩具” ,其他專業的科學家們就能訪問程式進行編程,也意味著科學計算、數值計算時代的到來,幾十年來,Fortran 在工程等數值計算領域影響巨大,直到現在還有很多流體動力學、航空航天領域依然在使用,編程語言可以被后浪趕超,卻依然有自己的光芒,許多課題組的“祖傳代碼”就是 Fortran 語音寫成的,NASA 甚至在 2017 年招募 Fortran 大佬幫忙優化代碼,
2.信號處理器:快速傅立葉變換(1965)
既然說到 Fortran 就不能不說快速傅立葉變換(Fast Fourier Transform, FFT),那可是大大的有名呀,1965年,美國數學家 James Cooley 和 John Tukey 提出了一種加快傅立葉變換程序的方法,使用使用遞回方法分而治之,快速計算串行的離散傅里葉變換或其逆變換,傅里葉分析將信號從原始域轉換到頻域的表示或者逆過來轉換,從離散傅立葉變換到快速傅立葉變換,復雜度從 O[N2]優化到了O[NlogN],如果你是電氣或者自動化方向的,數字信號處理肯定是你一生難忘的課程,
這一重大發現,在數字信號處理、影像分析、結構生物學等領域均有頻繁而廣泛的應用,美國數學家吉爾伯特·斯特朗把 FFT 描述為“我們一生中最重要的數值演算法”,IEEE科學與工程計算期刊也將其列入20世紀十大演算法,
不過,英國牛津大學數學家尼克·特雷菲森(Nick Trefethen)表示,這個方法其實德國天才數學家高斯在 1805 年就完成了,只是沒有發表而已,目前該方法的潮流是"西方最快的傅立葉變換"( Fastest Fourier Transform in the West,FFTW),是快速傅立葉變換的最快的免費軟體實作,
3.分子編目:生物資料庫(1965)
讀到這篇文章的你,想必對資料庫會有一定的了解,在過去的幾十年當中,資料庫在生物學上的影響也是非常巨大而富有戲劇性的,
1965 年,三位作者合著《蛋白質序列和結構圖譜》,描述了當時 65 種蛋白質的序列、結構和相似程度,使人們對于氨基酸序列有了更深刻的了解,1971 年啟動了蛋白質資料庫,如今該資料庫已經能描述 170000 多個分子結構,
隨著科技的進步和時間的推移,也涌現出了更新、更全面的生物學資料庫,美國國家生物技術資訊中心(NCBI)前主任詹姆斯·奧斯特爾(James Ostell)表示:“這簡直就是不太了解計算機和統計學的生物學家的明燈,通過對比序列我們就能了解到關于癌癥的知識,”通過對資料集的整合,研究人員們還能發現更多的資訊,
4.預測先鋒:一般回圈模型(1969年)
二戰時期,天氣對于交戰雙方而言是無法改變的事情,率先了解天氣就可以占盡天時,在那個經驗為主預測天氣的情況下,諾伊曼創造性地采用“根據物理學定律進行"數值天氣預報",不過在早期,這些實際問題無法準確解決,算力和演算法均無法達到,
1940 年末,馮·諾伊曼在普林斯頓建立了天氣預報小組,15 年后,第二個團隊,也就是地球物理流體動力學實驗室,開始研究“無限預測”,也就是氣候建模,1958 年,Manabe 加入團隊,他的同事 Kirk Bryan 也將這些用于海洋,1969 年,他們成功地結合了二者,創造了自然界計算的里程碑,
如今,該模型已經可以將地球分成 25×25 公里的正方形,將大氣也劃分成十個層次,這比起當年來已經強了很多,
5.數字處理者:BLAS(1979)
時間到了上世紀 70 年代,雖然矩陣和向量的計算在科學計算當中很常見了,但是還沒有一套普遍認可的操作工具,于是,研究者們就開始思考如何使用代碼來解決問題,他們需要一個標準!
然后就有了 BLAS (Basic Linear Algebra Subprograms)基本線性代數子程式,這是一個設計基本現行代數操作的數學標準,主要分三級,一級是向量之間或者向量與標量、常數間的運算;第二級是矩陣與向量間的操作,而第三級就是矩陣之間操作,
德克薩斯大學奧斯汀分校的計算機科學家 Robert van de Geijn 說,BLAS “可能是為科學計算定義的最重要的介面”,
6.顯微成像伴侶:NIH Image(1987)
進入 80 年代,腦成像技術發展到了關鍵時期,由于 X 射線膠片數字化之后無法在計算機上顯示或者分析,程式員 拉斯班德(Rasband)撰寫了一個程式來解決問題,當時的計算機還是 PDP-11,價值 15萬美元,蘋果電腦出現后,對于醫學成像的顯示更加友好,
這里的 NIH 不是別的,而是美國國立衛生研究院( National Institutes of Health (NIH),也就是說這是有國家衛生研究院監督的,后來拉斯班德又撰寫了 Java 版本的 ImageJ,在插件的幫助下,ImageJ工具可以自動識別顯微鏡影像中的細胞核,拉斯班德退休之后,它的團隊依然保持對于該產品的維護,
7.序列搜索器:BLAST(1990)
上面我們提到了 BLAS,這里我們要說的是 BLAST,一字之差,意義大不同,來自美國國家生物技術資訊公司,全稱 Basic Local Alignment Search Tool ,文章作者廣告詞都想好了“要搜索,找 Google,用遺傳,BLAST",通過研究蛋白質之間的相似性,科學家們就可以發現進化關系并剖析基因功能,因而分子資訊庫就至關重要了,
經歷了”點對點突變“矩陣、FASTP、等等團隊開發了 ”GeneMyers“并在多年之后提出了更強大的改進,1990 年 BLAST 正式公布,搜一下,xiu 的一下!這種系統給當時處于萌芽狀態的基因組生物學提供了一種非常高效快捷的方法,
8.預印本大倉:arXiv.org(1991)
相當長一段時間里面,科學家們相互交流的方式就是郵寄手稿,算是早期的“同行評議”,不過這種方式很容易使得一些并不有名氣的人被埋沒,即使天才如拉瑪努金,最初寄給幾位科學家的研究成果也被無視,直到哈代和利特爾伍德慧眼識珠,1991 年,在洛斯阿拉莫斯國家實驗室的金斯伯格(Ginsparg)撰寫了電子郵件自動回復程式,使得訂閱用戶能夠每天收到預印本的清單,這個可以說是論文界的 RSS 了,
最初金斯伯格的計劃是保留三個月,并限制在高能物理領域,隨著他研究學科越來越廣,這個系統也在 1993 年被放在了萬維網上,1998 年,正式得名 arXiv.org ,如今,距離最初那個郵件訂閱已經三十個年頭,arXiv 已經有 180 萬份預印本,每月有一萬五千多投稿和三千萬次下載,同時,由于其良好的口碑,收到基礎學科和計算機科學領域研究者們的熱愛,甚至《MIT 科技評論》都有一個周更的欄目——最好的 arXiv 物理文章(The Best of the Physics arXiv)
金斯伯格表示,令人欣慰的是,三十年前被視為異端的食物,如今被廣泛地接受,從這個角度來講,也算是一個成功的研究專案,
9.資料瀏覽器:IPython Notebook(2011)
Jupyter notebook 對于初學 Python 的朋友簡直是一個無比友好的存在, 它能顯示 Markdown,也能顯示并執行代碼,比傳統的互動式和全腳本執行更加清晰和簡便,而它的前身就是來自費爾南多·佩雷斯(FernandoPérez)發明的 IPython Notebook,2001 年的佩雷斯還在讀研還是讀博,作為 Mathematica 和 MAPLE 的重度用戶,他決定給 Python 一個更好的展現互動的平臺,由于 Python 并不是為科學計算創建的語言,用戶在預加載模塊和保持資料可視化狀態上存在很多障礙,因此他就自己寫就了 IPython,2001 年 12 月,這個“互動式” 的 Python 解釋器單程了,總共 259 行,十年之后,他和物理學家布萊恩·格蘭杰(Brian Granger)和數學家埃文·帕特森(Evan Patterson)合作,將該工具遷移到Web瀏覽器,從此,Python 也有了自己的筆記本,2014 年,它演變成了一個專案 Project Jupyter, 支持 100 多種語言,用戶就可以在自己的筆記本上遠程訪問超算的算力和資料了,
2018 年,《自然》文章報道,Jupyter 已經成為了資料科學家的標準,GitHub 上的 Jupyter notebook 也已經超過千萬,包括記錄引力波和黑洞成像的那些,
10.快速學習者:AlexNet(2012)
人工智能有兩種,一種使用編碼規則,一種使用計算機通過模擬大腦的結構來學習,幾十年來人們一直忽視后者,直到 2012 年,欣頓(Hinton)的研究生亞歷克斯(Alex Krizhevsky)和伊利亞(Ilya Sutskever)在 ImageNet 的比賽中發揮出色,在包含百萬個日常物件的影像中訓練出的 AlexNet 能將錯誤率降低到 16% ,這是通常人工智能演算法的一半,
他們的成功也點燃了包括資料集、硬體設備和 GPU 等的飛躍,突然之間,人們發現可以將演算法的運行速度提升幾十倍,這些生理預示著深度學習在實驗室、診所等領域的興起,如今手機也能理解語音查詢、影像分析工具也能幫助細胞篩選, AlexNet 引領了人工智能界許多工具的質變,
文章最后,還特意做了一個調查,選出對你影響最深的 3 項作業,
截至目前為止,Fortran 編譯器以 42.8 比 35.5 的比重領先第二名 FFT,選擇“其他”選項的也占有較大比例,結果見下圖:

顯然,在眾多讀者的眼中,Fortran 和 FFT 的地位舉足輕重,這些重要的代碼,改變了科學界,也改變了世界,你是否也有一個用代碼改變世界的夢想呢?歡迎下方留言評論,對你影響最大的代碼是哪些?你最得意的事情是用代碼做了什么?
【參考資料】
1.https://www.nature.com/articles/d41586-021-00075-2
2.https://www.youtube.com/watch?v=g8xQRI3E8r8
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/253502.html
標籤:其他
上一篇:微信小程式 | canvas為你的天氣預報添加雨雪效果
下一篇:急急急!
