回覆列表
  • 1 # 使用者4845921520110

    入門fortran像入門其他所有語言一樣,從最簡單的裝軟體開始

    【0】裝軟體

    初學建議直接cbfortran,windows版本還自帶mingw編譯器,支援f77 f95 f2003,也不大,而且開箱即用,安裝之後新建專案然後F5就Hello word了。

    非常適合小東西,寫個小計算單機跑跑之類的合適

    然而,終究,學fortran就是為了速度,而mingw編譯器本省最佳化是不足的,所以還是要裝vs+parallel studio。用ifort編譯會有mkl和mpi支援。但是安裝起來比codeblocks麻煩多了

    【1】變數,算符,代數運算,矩陣運算

    這個推薦一個小repo,裡面有很多小例子,結合書上講的內容

    Pjer-zhang/fortran-examples

    跑跑小例子,語法很快就好了

    【2】並行

    並行是fortran的終極目的,用fortran終究還是為了fortran的速度

    fortran的並行有單機多執行緒並行 openmp 以及 跨節點並行MPI,這個跨節點並行就要用到叢集了

    openmp【Home】是透過向程式中新增特殊註釋符的形式來指示並行段的,這樣在編譯的時候如果新增flag [-omp] 那麼最後程式跑的時候就會並行,如果不加這個flag那麼久不會並行。

    一個小例子:

    【結語】

    Fortran的能存在到今天完全是因為成噸的遺產程式碼,以及懶惰的研究生

    不只是CFD,空間物理,計算等離子體,聚變數值計算等等這些學科裡都有動輒幾十萬行的模式(大部分f77寫的),這些模式只有模組介紹和對應的已發表paper,沒有line-by-line註釋,想要重構幾乎沒有可能,所以只能像黑盒一樣呼叫。

    我的原則是小規模的fortran遺產程式碼(10k行以下),重構到matlab或者如果效能需求很高的話就cuda/c。不能把毒瘤傳給下一代

    最後, 科大有開Fortran的課的哇,7系開的,我還當過助教呢

  • 中秋節和大豐收的關聯?
  • 高維生素E堅果有什麼營養特點呢?