Re: [問題] 關於compiler一問
※ 引述《qscNERO (請叫我達文西)》之銘言:
: 最近剛學習FORTRAN
: 因為真的爬了文還是不太了解想問一下
: gfortran & intel fortran & FTN95
: 我是用FTN95的plato
: 但是最近電腦換成win7後就怪怪的程式都跑不了
: 頂多跳出一個什麼都沒有的黑視窗
: 看精華區有人推薦gfortran & intel fortran
: 可以請問一下這些的差異性嗎
: 還有像是gfortran是只能靠自己debug嗎
: 因為看別人說好像要在命令提示位元那邊CODE
: 是不是就不能像FTN95會自己跳出可能哪邊的CODE可能有問題呢
: 謝謝大家
: 我最近還在為了找fortran的數值分析CODE頭痛
: 沒什麼中文資料
: 圖書館有的中文書都看過了
: 偏偏學CODE看別人的CODE學最快...
g跟i沒太大的差別.FTN我沒用過,不敢評論.
但fortran的標準滿亂的,同樣的程式碼,這家過,那家不見得過.
現在主流的應該還是i跟g.我建議你要挑,還是從這兩個挑一個.
否則你的程式碼流通度會變低.
intel fortran應該是效率最高的,尤其是搭配上intel的cpu更是!
加上可以搭配MKL,在數值計算上滿方便的.而且MKL預設對於一些
陣列的運算都是用平行化版的Blas(似乎是Atlas?).算是很主流的
函式庫.但缺點就是linux only.如果你常常需要在win底下工作
的話,可能比較麻煩.理論上用mingw應該也可以做到在win上
跑ifort,不過我沒試過,應該比較麻煩的就是.你可以googl看看.
另外就是ifort有比較多非標準的語法,所以用ifort寫的程式可能
流通性比較不佳.如果對方用的不是ifort,常常會出問題.
gfortran的話是follow GNU標準,較少獨家語法.所以個人覺得流
通性較高.畢竟就算是別家編譯器過不了,也可以請對方用gfortran編.
gfortran跨平台性高,linux是內建不說,就算在win底下也只要裝mingw
就自動內建了.安裝起來很簡單.缺點是他不像ifort直接套好了MKL給
你使用.要做數值運算的話,得自己另外裝數值函式庫.我的話是裝Lapack,
不過也不是太麻煩,官網抓下來自己編譯一下5分鐘也就好了.3.4到3.5我
都在win下用gfortran編過,都沒問題.不過gfortran+lapack比起
ifort+MKL,當然是不如.但如不如要看你的程式有多大.如果這個
差距根本不是有意義的差距,例如1min跟1.1min.這種比較似乎也沒
多大意義就是了.(不過你可以不要用lapack自帶的blas,自己去裝
優化過的blas,其實應該可以達到跟MKL一樣的效果,只是我一直懶得
去研究該怎麼做)
現在大多數的fortran complier也都可以直接支援OpenMP,自己跑的部
分要跑平行化基本上都不難,但函式庫除非你有能力自己改,否則只能認了.
至於哪個好?沒一定答案,如果你的實驗室大家都用ifort,就跟著用吧.
ifort絕對是fortran目前最好的編譯器.如果你是獨立工作,用哪套自
己爽就好,我會建議你用gfortran,一來避免你養成一些非標準語法的
習慣,程式的流通性會比較好.二來gfortran跨平台跟安裝也簡單,如
果要請沒經驗的人用gfortran跑你的code也比較簡單.
至於我自己,多半是用gfortran,但有時候處理到一些用ifort寫
成的,還是會用到ifort.
至於你說編譯後有問題會不會跑出錯誤訊息這一點,每家編譯器都會.
沒聽說過不會的. 如果你喜歡在漂亮的圖形介面下點一下就自己編譯,
上網裝個免費的編輯器,例如notepad++,設定一下讓他用你指定的編譯
器編譯檔案也就可以了.這些都不是問題.
debug的話,gfortran所用的gdb確實是要打指令來設停點(ifort應該也
是),看數值.但其實也就是兩三個指令要記而已.youtube一下,大概10分
鐘就可以學會了吧! 我自己的經驗用到gdb的機會也不多就是.大多數的
時候我還是習慣把程式一段給comment起來,然後把數據write出來.
所以這點我還可以忍受.
總之,各家complier沒什麼一定好壞,各有優缺.重要的是流通性要高,
而且要免費(要花錢的complier流通性自然受限,自己挑腰包也很傷
,畢竟免費的都已經很好了,何必多花錢?不過當然啦,有些需求就是
花錢才買的到的,那就另當別論了),有長期被維護的.我自己的
建議從g跟i擇一.兩者的學習過程剛開始都有點痛苦,但痛苦的主要倒
不是程式本身,而是環境的建立.如何建好函式庫,建好方便程式寫作的
圖形介面這類的問題.環境建好了,其他就只是學語法就是了.
最後送你一些keyword,要怎麼排列組合隨便你,我自己的組合是:
gfortran/Notepad++/Lapack,當然你要做其他的搭配也是完全可以的,
選好一個套餐之後,就好好開始google吧!
編譯器: ifort, gfortran
(若在win,g請透過mingw裝,i我沒試過在win下跑)
文字編輯器: Notepad++, PSPad
(Notepad++的F90語法支援要另外安裝,PSPad直接支援f90,但對檔案一大就整
個掛到不行,若有能力,建議還是乖乖用N來建環境,麻煩一點,但好處絕對多!)
函式庫: MKL,Lapack
(MKL不知可否單獨裝,多跟ifort一起.Lapack安裝簡單,編成靜態函式庫就好,
但核心的Blas比較舊,如果找到優化過的Blas,例如Atlas取代lapack內建的計
算的效率應該會更好)
--
★人生中最溫暖的夏天是在紐約的冬天★
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 128.120.178.119
※ 編輯: pipidog 來自: 128.120.178.119 (01/28 16:28)
推
01/28 16:28, , 1F
01/28 16:28, 1F
推
01/28 21:32, , 2F
01/28 21:32, 2F
推
01/29 22:17, , 3F
01/29 22:17, 3F
→
01/30 04:50, , 4F
01/30 04:50, 4F
→
01/30 10:57, , 5F
01/30 10:57, 5F
推
01/30 22:59, , 6F
01/30 22:59, 6F
→
01/31 02:52, , 7F
01/31 02:52, 7F
推
02/05 16:21, , 8F
02/05 16:21, 8F
→
02/05 16:22, , 9F
02/05 16:22, 9F
→
02/05 16:22, , 10F
02/05 16:22, 10F
→
02/05 16:23, , 11F
02/05 16:23, 11F
→
02/05 16:24, , 12F
02/05 16:24, 12F
→
02/05 16:24, , 13F
02/05 16:24, 13F
→
02/06 03:47, , 14F
02/06 03:47, 14F
→
02/06 03:48, , 15F
02/06 03:48, 15F
→
02/06 03:49, , 16F
02/06 03:49, 16F
→
02/06 03:49, , 17F
02/06 03:49, 17F
推
02/07 11:31, , 18F
02/07 11:31, 18F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章