回覆列表
  • 1 # 使用者4181415554306

    90%的時間用C/C++、Fortran。偶爾用mathematica, matlab等高階工具幹些零碎的活;最重要的是正確性,其次是速度;99%的時間花在除蟲上,其中90%的情況是陣列指標越界;大量使用各種數值演算法和線性演算法,很少使用基於複雜資料結構的演算法;程式快不快,全看會不會迭代;程式好不好,全憑文章在哪找;程式裡設定很多引數,取值都是試出來的,一般不能改動;先寫序列程式,再寫並行程式;經常訪問數學維基或百科網站(wikipedia、mathworld、planetmath等);科學計算領域的聖經是Abramowitz和 Stegun的數學手冊,譚浩強是Numerical Recipe;程式碼的長度隨著科研專案的進展不斷增長;大量使用組裡“祖傳”下來的程式,被告知不要改變裡面的引數;使用雙精度;依賴編譯器的最佳化,對硬體構架也有些瞭解;被告知儘量不要使用閉源軟體;屬於VIM或Emacs陣營之一;hostname 是個科學家的名字;有幾個從師兄師姐那兒拷來的指令碼;程式的文件就是正在寫的文章;夢想再裝塊顯示器;有作為人形高階計算器的覺悟;夢想著有一天寫個巨牛逼的指令碼把程式從編譯到執行到資料處理都自動化了;程式能跑的時候專案才完成了5%~10%;用並行(parallelism)不用併發(concurrency),用陣列不用連結串列;變數名字起的很怪,其實是從方程裡來的;程式不具有可讀性,除非你先讀懂對應的文章;不斷有新入組的學弟學妹抗議程式碼不符合軟體工程,後來他們要麼閉上嘴去灌水,要麼拿了master走人了;常常有重構程式碼的慾望,試過幾次都放棄了,終於有天下午把程式碼重構了一遍,結果發現跑出來的資料怎麼都不對,從此徹底放棄;總以為做科學計算的人寫的程式碼都很醜,後來看過一個大牛寫的程式碼,徹底驚呆了 —— 但學CS的室友照樣說醜;寫著寫著,一不小心程式碼就成了某個領域某個小方向 the state of the art;常常提醒自己是科學家不是程式設計師。程式設計師總是認為HPC的程式設計很弱智,真讓他/她們去寫HPC程式碼 ——開玩笑——他/她們連流體力學(量子化學、廣義相對論 …… )都不懂,怎麼可能會做科學計算;找到工作的時候鄙視程式工程師的職位,找不到工作的時候哭著喊著要當程式設計師;是程式設計師裡面最懂流體力學的,是懂流體力學的人裡面最能發文章的,是能發文章的人裡面最會寫程式的;是宅男裡面最費電的,是宅女裡面最費紙的。

  • 中秋節和大豐收的關聯?
  • 為什麼斷奶第10天了還漲奶?