資料介紹
腳本語言已經(jīng)為很多科學計算器的構(gòu)建提供了很多強有力的工具,因為他們提供了其他解釋型語言的接口。和很多用C,C++,F(xiàn)ortran,等編寫的軟件進行集成,也可以為他們提供框架單元構(gòu)建。在這篇論文中,我主要描述腳本語言到科學計算工程中的進程,我強調(diào)的是使用python在科學動態(tài)研究中采用的大規(guī)模模塊動態(tài)代碼,實驗在在洛斯阿拉莫斯國家實驗室進行的。雖然這個應用程序和天文數(shù)據(jù)分析,問題,解決方案和經(jīng)驗教訓等不想關(guān),但是可能感興趣的研究人員正在考慮在自己的項目中使用腳本語言。
1. 簡介
作為科學的軟件開發(fā),最大的障礙之一是如何使科學軟件靈活,使用方便,維護簡單,易于適應規(guī)模擴大和復雜性增高的新問題。當然,是有很多原因希望這些高品質(zhì),其中很重要的一點是,他們允許科學家花費更少的時間爭取更多的時間去亞牛軟件,投入更多的時間在科學上。
很不幸的事,當前科學計算軟件的現(xiàn)狀很不理想。首先,增加的計算能力已使科學家解決了空前的規(guī)模和復雜性的問題。但是,有一個副作用,就是需要執(zhí)行這些任務(wù)的軟件也已成為龐大而復雜的。二是科學家們普遍使用各種各樣的系統(tǒng),從模擬代碼,數(shù)據(jù)分析軟件包,數(shù)據(jù)庫,可視化工具,到與每一個代表不同的接口和文件格式的本土軟件。因此,科學家可能會花費大量的時間,只是想把所有這些組件以某種方式共同工作。最后,努力運用現(xiàn)代科學軟件工程原理去重寫軟件,充其量只能產(chǎn)生不同的結(jié)果。第一,科學家不愿意去拋棄原有的軟件。其次,這種努力對第二系統(tǒng)的影響也是很脆弱的,設(shè)計者想建造一個足夠龐大的系統(tǒng)以至于不可能去實施,也不可能去滿足特定問題的需要。
盡管存在這些困難,較有前景的技術(shù)之一,是近年來出現(xiàn)的常見的腳本語言,如Python,Perl和Tcl(Python, 1999; Perl, 1999; Tcl, 1999)。,它們作為一種工具,能創(chuàng)造更好的科研軟件。在這篇文章中,我要重點強調(diào)腳本語言,尤其是python,源于我對一種特定的應用新程序4年的跟蹤研究。我特別希望來說明腳本語言是多么適合的科學軟件項目,以及它們可提供的開發(fā)方式去解決重要的軟件工程問題,如可靠性,元器件,重用和項目管理工程。盡管討論將集中在Python中,我想強調(diào)這些原則適用于一般的腳本語言。
2. 科學軟件開發(fā)的特點
考慮到科學軟件主流派別。一方面有諸如IDL和MATLAB等封裝包。另一方面也有一些特定軟件去解決特定問題(多數(shù)是研究人員自己寫的)。即使是封裝包更精致,對于更有意思的科學內(nèi)容來說,更有可能被本土軟件包含。例如,一個特殊用途的程序可能被寫入為了解決偏微分方程,而像IDL這樣的包可能會錯誤百出。大多數(shù)新的科學軟件創(chuàng)建都是一個研究小組決定的,以解決新的計算問題。最初,他們的目標只是要解決一個非常具體的問題,由一組特定的方程,初始條件,邊界條件和數(shù)值技術(shù)定義。在許多情況下,這個問題可以通過編寫C或Fortran與一些數(shù)值方法和一些編程庫援助的小程序就可以搞定。
剛開始時,程序很小。但是一旦它們成功了,就會被擴大去解決一些類似的問題。為了處理這些差異,額外的靈活性通常被添加到一個的用戶界面,無論是用戶查詢各種問題參數(shù)或要求用戶提供一個系列的命令行選項的形式系統(tǒng)。不幸的是,隨著更多的功能以這種方式被添加到工程中,科學家會在眾多命令行和神秘的輸入腳本中崩潰。當程序到達這個階段,開發(fā)者可能會決定徹底改革其結(jié)構(gòu)和用戶界面。很多時候,往往會導致本土的命令解釋器,它允許用戶設(shè)置參數(shù)和執(zhí)行簡單的命令。當然,這并不是一個驚奇。其一,實施一個簡單的命令解釋器對有能力的程序員來說并不是十分艱巨。其次,這種界面可以模仿那些更精美得科學軟件。不幸的是,這通常代表了許多項目開發(fā)的最后階段。其一,超越了簡單的解釋器將涉及廣泛的編程技能,而這正是很多編程者不具備的技能。例如,把一個完整的編程語言的命令解釋器都需要一些語言解析器的設(shè)計施工和技術(shù)知識。例如,把一個命令行解釋器變?yōu)檎麄€編程語言,需要解釋器構(gòu)造技術(shù)和一些語言設(shè)計技巧。同樣,建設(shè)一個圖形用戶界面需要一個同樣復雜的編程技能。然而更可能的情況是,科學家們沒有看到這些功能被加入所獲得收益是佛值得開發(fā)。因此,科學家的工具箱全部充滿了各種各樣的程序,每個都是他們自己寫的奇怪的語言。然而,糟糕的用戶界面只是問題的一部分。相反,關(guān)鍵的一點是,最有用的科學軟件開始時比較小,在一個相對長一段時間后變得比較零散。此外,這些項目在開始時很少創(chuàng)建通用軟件包-雖然隨著時間的推移軟件的使用目的變得更加普遍。
由于存在這些問題,努力提高科學軟件將面臨重大的挑戰(zhàn)。首先,科學家們很少愿意放棄現(xiàn)有的軟件,特別是如果他們熟悉其運作,并對其結(jié)果的準確性充滿信心。第二,努力去吧非結(jié)構(gòu)話得程序改造成正是的軟件設(shè)計也是失敗的。最后,需要強調(diào)簡單的解決方案,也要提產(chǎn)剛和鼓勵軟件在最初創(chuàng)建時的發(fā)展和實驗。
3. Python
Python是一種解釋性的面向?qū)ο缶幊陶Z言,在科學應用中開始受到極大關(guān)注。因為python,和其他腳本語言一樣,為許多科學工程提供了下一個道路。Python提供了一種解釋型編程語言 ,可以看做是科學工學中已經(jīng)使用的簡單命令語言的擴展。第二,python和容易和用其他語言編寫的軟件進行集成。因此,它既可以作為一個控制語言驅(qū)動現(xiàn)有的程序,也可以作為將不同的系統(tǒng)結(jié)合在一起的膠水語言 。最后,Python提供了大量的第三方模塊集合,已經(jīng)建立的用戶群,以及以圖書和其在線參考等形式的文檔。 出于這個原因 ,可以把python作為一種擴展,當科學家寫他們自己的命令行時。
4. 集成動態(tài)應用
為了說明python的使用,這篇論文的最后部分將重點集中在把python加入到動態(tài)米快代碼中獲得的經(jīng)驗,這次試驗在在洛斯阿拉莫斯國家實驗室 進行的。這個應用程序最初在1992年被開發(fā),為了實現(xiàn)大規(guī)模的模塊動態(tài)的三維展示。最遲,程序用在1024處理器,在巨型計算機上運行。后來程序也可以在SUN公司的多核處理器T3D,上運行。雖然在這些領(lǐng)域取得了一些很大的成功,但是這個程序在實踐當中很難使用。尤其是,當趨勢線科學項目的目標時問題總會變得相當復雜。
考慮到這些因素,加入python就被提上日程。首先,高度解釋的語言將為問題規(guī)范和盡可能減少C源碼的改變提供了出色的機制。第二,為了解決數(shù)據(jù)分析問題,我們計劃集成模擬代碼和數(shù)據(jù)分析和可視化功能。然而,為了使這項工作,一個非常強大的,簡單的用戶界面將是必需的。 最終,python作為一種系統(tǒng),從表面上看就像matlab和IDL一樣。從持久性和性能上考慮,python也是很好的選擇。舉例來說,他可移植大各種系統(tǒng),對用戶來說不閉有很多概念,python 也可以被加入到已經(jīng)存在的代碼中去。
- 用Python學習科學編程 0次下載
- Python科學計算利器Anaconda
- Python科學計算與數(shù)據(jù)分析 22次下載
- 基于科學計算程序的物理模型蛻變關(guān)系 5次下載
- Python數(shù)據(jù)科學手冊的PDF電子書免費下載 4次下載
- Python進行配置文件的教程免費下載 6次下載
- Python的學習和使用經(jīng)驗說明 16次下載
- Python語言的特點和使用Python對XML文件的數(shù)據(jù)進行解析說明 6次下載
- 使用Python做科學計算的PDF電子書免費下載 2次下載
- 用于數(shù)據(jù)科學的python必學模塊之Matplotlib的資料說明 14次下載
- 用于數(shù)據(jù)科學的python必學模塊之Keras的資料說明 9次下載
- 用Python做科學計算中文版PDF電子書免費下載 0次下載
- python基礎(chǔ)教程之如何使用python進行環(huán)境搭建 32次下載
- Python網(wǎng)頁爬蟲,文本處理,科學計算,機器學習和數(shù)據(jù)挖掘工具集 37次下載
- 數(shù)據(jù)科學的完整學習路徑(Python版) 0次下載
- 使用Python進行Ping測試 232次閱讀
- 使用Python進行自然語言處理 246次閱讀
- phpy:PHP與Python互調(diào)用庫 827次閱讀
- Python多進程學習 455次閱讀
- 如何安裝Python包管理工具 987次閱讀
- 如何搭建Python編程環(huán)境 4945次閱讀
- 詳談Python的數(shù)據(jù)模型和對象模型 2452次閱讀
- 淺談如何進行的量子計算 1485次閱讀
- 干貨 數(shù)據(jù)科學入門指南 3108次閱讀
- R和Python到底誰更好如何將Python與R同時應用在同一個項目 3963次閱讀
- 如何快速學習Python?學習Python有哪些坑? 3808次閱讀
- 17個非常有用的 Python 技巧 4821次閱讀
- 分析、數(shù)據(jù)科學和機器學習平臺最熱語言_Python 1747次閱讀
- 如何快速學會Python?利用Python進行數(shù)據(jù)分析 1w次閱讀
- 一種可以優(yōu)雅編程的語言Python知識點匯總 4823次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費下載
- 0.00 MB | 1491次下載 | 免費
- 2單片機典型實例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實例詳細資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機和 SG3525的程控開關(guān)電源設(shè)計
- 0.23 MB | 4次下載 | 免費
- 8基于AT89C2051/4051單片機編程器的實驗
- 0.11 MB | 4次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費
- 5555集成電路應用800例(新編版)
- 0.00 MB | 33562次下載 | 免費
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費
- 8開關(guān)電源設(shè)計實例指南
- 未知 | 21539次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191183次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183277次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138039次下載 | 免費
評論
查看更多