入門fortran像入門其他所有語言一樣,從最簡單的裝軟體開始
【0】裝軟體
初學建議直接cbfortran,windows版本還自帶mingw編譯器,支援f77 f95 f2003,也不大,而且開箱即用,安裝之後新建專案然後F5就Hello word了。
非常適合小東西,寫個小計算單機跑跑之類的合適
然而,終究,學fortran就是為了速度,而mingw編譯器本省最佳化是不足的,所以還是要裝vs+parallel studio。用ifort編譯會有mkl和mpi支援。但是安裝起來比codeblocks麻煩多了
【1】變數,算符,代數運算,矩陣運算
這個推薦一個小repo,裡面有很多小例子,結合書上講的內容
跑跑小例子,語法很快就好了
【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系開的,我還當過助教呢
入門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系開的,我還當過助教呢