Re: [心得] 完全使用免費軟體的學術研究生活
※ 引述《caseypie (吟遊詩人)》之銘言:
恕刪,
我也有些心得想分享
: 領域:理論/計算生物物理
: 應用程式:Mac,不過大部分Linux也通用,不通用的我會加上Linux替代方案
: 十年沒用Windows所以不是很清楚通用情況
: 1.寫文章:Latex (TexShop)
我覺得TeX在這年代還能發光發熱,最重要的是能夠跟版本管理做結合
像是git搭配TeX很強大,寫個LaTeX可也搞得跟開發軟體一樣像在做工程
而且由於TeX文檔也就是純文字而已,
所以如果使用git的圖形界面或是GitHub,不同版本間的差異一目瞭然
如果是使用指令行界面,簡單的diff/vimdiff/git diff也很好用
尤其當合寫paper的人也用git跟GitHub時,合作寫作會變得很有效率
所以我強烈推薦,就算跟寫程式無關的人,只要有用TeX,也要學個版本管理程式
目前最流行的應該就是git了,然後再搭配個GitHub,就會非常強大
: 2. 文獻管理:BibDesk
我們團隊是使用I, Librarian
( https://github.com/mkucej/i-librarian )
他的特色是團隊的資料庫是合併共享的,很適合團隊合作的project
另外所有資料庫(PDF/references等等)都是存放在自己架設的伺服器上
他不像其他文獻管理都是本地資料庫爲核心,然後使用者只是把資料庫上傳到雲端備份
所以I, Librarian提供的是伺服器端的程式,他本身並沒有本地的客戶端程式,也不需要
他所謂的使用者界面就是網頁罷了
使用者用瀏覽器去登入自己架的網站就可以使用I, Librarian了
他第一個缺點是使用者界面不好用,對用慣Mendeley或Zetero的人來說很難適應
而且畢竟只是php網頁,速度沒辦法跟Mendeley那種真正的客戶端比
通常只適合管理團隊共享的文獻資料庫跟產生bibtex,不適合直接使用他看PDF檔
雖然他也跟Mendeley一樣可以看PDF 寫筆記 畫重點等等就是了
第二個缺點是,雖然他是開源的,但是他缺乏詳細說明文件
因爲那間公司就是靠提供服務來賺錢,所以不會免費提供太多資訊
有點類似一間公司免費提供各式汽車零件,但是不會免費教你怎麼組裝一臺車子跟保養
如果不想付錢,就必須自己要懂一些架站跟管理的知識
尤其如果打算伺服器完全對外網開放,就那就複雜多了,要考慮很多安全問題
: 3. 數值工作:Python(Anaconda package)
很高興看到認同使用python取代matlab的同好
我們團隊一直致力於推廣使用python取代matlab
但是即使到這年代了,一堆科系大學部還是只教matlab,所以我們頗挫折的
在數值模擬領域,傳統使用C/C++/Fortran的人還是瞧不起直譯式語言
(但的確,python在高校能計算領域也只是剛起頭而已)
而就教學或入門級程式課程而言,很多教授還是覺得matlab是唯一,不願意嘗試新東西
我們系甚至發生過有教授得到好處,想要把大學部python課程改回matlab
Python是一種程式語言,能做很多事,或者說想用來做什麼都可以(?)
在科研上,畫圖跟資料分析,原Po已經介紹了一些
基本上只要把握numpy, scipy, matplotlb, sympy, pandas就可以解決很多科研的事情
python的東西講都講不完,所以這邊我只想針對大規模的數值模擬
傳統上都認爲Python/Matlab/Java這類直譯語言跟高校能計算(HPC)無緣
但其實現在已經開始有python程式在超級電腦上使用了
去年一個計算流力程式,PyFR,成功在ORNL的Titan上,執行了使用超過1萬張GPU的計算
(Titan是2012年世界排名第一的超級電腦,現在第五名)
雖然PyFR這個程式用了很多trick,不是普通的python程式
而且需要Titan的工作人員做一些系統上的特殊處理後,才能達到效能標準
但是相較於matlab,
我還真沒聽過top10超級電腦裏,美國聯邦政府擁有的那幾臺,有哪臺跑過matlab程式
而至少python成功登陸這個直譯式語言的禁區了
(超級電腦耗電量很驚人,所以就聯邦政府擁有的超級電腦而言,
效能達不到標準的程式是不會被允許在超級電腦上執行,除非有管道走後門)
至於小規模的數值模擬,很多平行化模型都已經有python界面
譬如MPI有mpi4py,然後CUDA有pycuda,OpenCL有PyOpenCL
然後熱門的分散式計算的涵式庫,像是PETSc跟Trilinos也有python binding
也有像numba這種無需自己寫gpu kernel,就可以自動幫你使用GPU加速迴圈的工具
而非得寫C/Fortran kernel的時候,python呼叫這些kernel也很方便
畢竟早期python就被稱爲glue language,容易跟其他語言結合
如果對設計互動式教學教材或是想自動產生報告,則可以參考Jupyter Notebook
Python很有趣,就算我們只針對科研來說,畫圖/數據分析/數值模擬都只是冰山一角
Python在不同的學術領域還有更多不同的應用,希望有更多人來分享跟推廣
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 71.206.47.136
※ 文章網址: https://www.ptt.cc/bbs/PhD/M.1519893619.A.639.html
→
03/01 17:59,
6年前
, 1F
03/01 17:59, 1F
→
03/01 18:00,
6年前
, 2F
03/01 18:00, 2F
→
03/01 18:00,
6年前
, 3F
03/01 18:00, 3F
我的確是蠻想寫一些git跟合作寫paper的經驗,
因爲這些經驗是我們團隊幾次合作寫paper時摸索出來的,不是直接從哪裏學到的
但我目前還想不出要怎麼跟完全沒有經驗的人解釋版本管理的概念
所以可能還有得等XD
至於python的東西,我覺得就像樓下m大說的,用關鍵字搜尋到的資料已足夠
如果找到的資料看不懂,那可能需要先入門python,入門可以參考
https://www.coursera.org/learn/python
https://courses.edx.org/courses/MITx/6.00.1_3x/2T2014/course/
如果想入門python特定在數值研究的應用,我們有設計3門結合python的學術課程
放在我們自己的mooc平臺上 https://openedx.seas.gwu.edu
分別是大學數值分析,空氣動力學,以及數值微分方程
這幾門課都降低了數學理論的比重跟深度,但是加強了python實作,對象是大學生
課程涵蓋了前述提到的numpy, scipy, matplotlib, pandas,以及一點numba
如果已經有數值分析背景,透過這些教材可以很快熟悉python
不想在mooc平臺開帳號的話,三門課的原始教材可以從下面網址得到
https://github.com/engineersCode/EngComp
https://github.com/barbagroup/AeroPython
https://github.com/numerical-mooc/numerical-mooc
這三門課本身就是使用Jupyter Notebook設計教材的範例
另外我們還有針對計算流體力學的12-steps to Navier-Stokes的python教材
http://lorenabarba.com/blog/cfd-python-12-steps-to-navier-stokes/
但已經很久沒有人去維護教材裏的程式碼了,因爲這門課沒在開了
至於實務使用python在數值相關研究上的例子,除了PyFR之外
可以在The Journal of Open Source Software上找到很多:尋找用py開頭的程式
https://joss.theoj.org/
推
03/01 20:02,
6年前
, 4F
03/01 20:02, 4F
推
03/01 20:29,
6年前
, 5F
03/01 20:29, 5F
推
03/01 20:41,
6年前
, 6F
03/01 20:41, 6F
→
03/01 20:41,
6年前
, 7F
03/01 20:41, 7F
→
03/01 20:42,
6年前
, 8F
03/01 20:42, 8F
→
03/01 20:43,
6年前
, 9F
03/01 20:43, 9F
→
03/01 20:43,
6年前
, 10F
03/01 20:43, 10F
→
03/01 20:47,
6年前
, 11F
03/01 20:47, 11F
→
03/01 20:47,
6年前
, 12F
03/01 20:47, 12F
→
03/01 20:49,
6年前
, 13F
03/01 20:49, 13F
→
03/01 20:50,
6年前
, 14F
03/01 20:50, 14F
→
03/01 20:52,
6年前
, 15F
03/01 20:52, 15F
→
03/01 20:54,
6年前
, 16F
03/01 20:54, 16F
我不是大大.. 我只是不務正業不專心做研究很久了,所以反而對工具使用很有心得..
然後又剛好加入了一個對python還有open source很有愛的研究團隊...
其實我自己也是C/C++派,但是除了production code外,其他我都使用python處理
譬如後處理或是建立數值方法prototype等等
※ 編輯: ives0228 (161.253.72.248), 03/02/2018 04:02:15
推
03/02 09:49,
6年前
, 17F
03/02 09:49, 17F
→
03/02 09:50,
6年前
, 18F
03/02 09:50, 18F
→
03/02 09:53,
6年前
, 19F
03/02 09:53, 19F
→
03/02 09:54,
6年前
, 20F
03/02 09:54, 20F
→
03/02 09:55,
6年前
, 21F
03/02 09:55, 21F
→
03/02 13:50,
6年前
, 22F
03/02 13:50, 22F
推
03/02 14:27,
6年前
, 23F
03/02 14:27, 23F
推
03/02 15:15,
6年前
, 24F
03/02 15:15, 24F
推
03/02 17:30,
6年前
, 25F
03/02 17:30, 25F
推
03/02 20:47,
6年前
, 26F
03/02 20:47, 26F
→
03/02 20:48,
6年前
, 27F
03/02 20:48, 27F
→
03/02 20:49,
6年前
, 28F
03/02 20:49, 28F
→
03/03 01:13,
6年前
, 29F
03/03 01:13, 29F
→
03/03 01:14,
6年前
, 30F
03/03 01:14, 30F
→
03/03 01:18,
6年前
, 31F
03/03 01:18, 31F
→
03/03 01:20,
6年前
, 32F
03/03 01:20, 32F
→
03/03 01:21,
6年前
, 33F
03/03 01:21, 33F
→
03/03 01:22,
6年前
, 34F
03/03 01:22, 34F
→
03/03 01:27,
6年前
, 35F
03/03 01:27, 35F
→
03/03 01:28,
6年前
, 36F
03/03 01:28, 36F
→
03/03 01:29,
6年前
, 37F
03/03 01:29, 37F
還有 154 則推文
→
03/04 05:30,
6年前
, 192F
03/04 05:30, 192F
→
03/04 05:32,
6年前
, 193F
03/04 05:32, 193F
→
03/04 05:32,
6年前
, 194F
03/04 05:32, 194F
→
03/04 05:33,
6年前
, 195F
03/04 05:33, 195F
推
03/04 05:33,
6年前
, 196F
03/04 05:33, 196F
→
03/04 05:36,
6年前
, 197F
03/04 05:36, 197F
推
03/04 05:39,
6年前
, 198F
03/04 05:39, 198F
→
03/04 05:41,
6年前
, 199F
03/04 05:41, 199F
be cool please~
雖然討論好像篇題了,但是覺得我作為原PO好像該回些什麼...
我自己認知是,數值方法的確不是美國大學應數系的主流,至少我申請博班的時候不是
美國做數值研究有名的大學,不少另開了專門的單位
譬如史丹佛 奧斯汀 普林斯頓等等,這些都有數值研究的專門單位
而沒有專門單位的學校,數值方法的研究則常集中在傳統工學院,或是大氣海洋領域
畢竟數值模擬的實用化,以及超級電腦的發展,都從計算流力及計算力學開始
題外話
跟大學不同,美國國家實驗室裡,應數部門卻是專注數值方法跟高效能運算的研究
ANL/ORNL/LBNL/LLNL都是。我在ORNL打雜過,所以我肯定ORNL的情況
至於該把程式效能這事放在什麼地位,或該怎麼看待,我就不評論了,人各有志(??)
至少那些雖然自己寫程式 但是覺得程式能跑就好的人,他們創造了很多就業機會
ORNL/ANL/LLBL都有種單位,在幫那些程式隨便寫的研究者,改寫他們的程式
最後我想再拉回免費的研究工具的討論:使用python不要錢,不怕沒funding!
※ 編輯: ives0228 (71.206.47.136), 03/04/2018 17:30:41
推
03/05 16:23,
6年前
, 200F
03/05 16:23, 200F
→
03/05 16:23,
6年前
, 201F
03/05 16:23, 201F
→
03/05 16:24,
6年前
, 202F
03/05 16:24, 202F
→
03/05 16:24,
6年前
, 203F
03/05 16:24, 203F
→
03/05 16:25,
6年前
, 204F
03/05 16:25, 204F
推
03/05 16:26,
6年前
, 205F
03/05 16:26, 205F
→
03/05 16:27,
6年前
, 206F
03/05 16:27, 206F
→
03/05 16:28,
6年前
, 207F
03/05 16:28, 207F
→
03/05 16:28,
6年前
, 208F
03/05 16:28, 208F
→
03/05 16:28,
6年前
, 209F
03/05 16:28, 209F
→
03/05 16:29,
6年前
, 210F
03/05 16:29, 210F
→
03/05 16:29,
6年前
, 211F
03/05 16:29, 211F
→
03/05 16:29,
6年前
, 212F
03/05 16:29, 212F
→
03/05 16:30,
6年前
, 213F
03/05 16:30, 213F
→
03/05 18:40,
6年前
, 214F
03/05 18:40, 214F
→
03/05 18:41,
6年前
, 215F
03/05 18:41, 215F
推
03/05 21:15,
6年前
, 216F
03/05 21:15, 216F
→
03/05 21:15,
6年前
, 217F
03/05 21:15, 217F
→
03/05 21:16,
6年前
, 218F
03/05 21:16, 218F
→
03/05 21:16,
6年前
, 219F
03/05 21:16, 219F
推
03/05 21:26,
6年前
, 220F
03/05 21:26, 220F
→
03/05 21:27,
6年前
, 221F
03/05 21:27, 221F
推
03/05 22:32,
6年前
, 222F
03/05 22:32, 222F
→
03/05 22:33,
6年前
, 223F
03/05 22:33, 223F
→
03/05 22:34,
6年前
, 224F
03/05 22:34, 224F
→
03/05 22:34,
6年前
, 225F
03/05 22:34, 225F
推
03/05 22:36,
6年前
, 226F
03/05 22:36, 226F
→
03/05 22:37,
6年前
, 227F
03/05 22:37, 227F
→
03/05 22:38,
6年前
, 228F
03/05 22:38, 228F
→
03/05 22:39,
6年前
, 229F
03/05 22:39, 229F
推
10/02 09:14,
6年前
, 230F
10/02 09:14, 230F
討論串 (同標題文章)
PhD 近期熱門文章
PTT職涯區 即時熱門文章