2007年11月30日 星期五

比較gFortran在Mac上與在Linux上

目前我在我的MacBook上安裝了兩套gfortran, 安裝細節分別是以Mac OS X 10.5.1 Leopard + gfortran (詳閱)以及透過VMware Fusion 1.1所安裝的Fedora Core 6 Linux + gfortran兩種形式, 今天要來比較差異


程式碼: 採用最近寫的「水文地質參數產生器」, 實質意義不重要, 程式碼就是開個很大的矩陣, 接著寫幾個轉換公式, 將矩陣內每個位置填上數值, 接著寫出到檔案內, 程式碼行數不多(179行), 也沒有呼叫什麼函數~~~

實驗組: 純粹Mac OS上的gfortran
檔案大小: 105MB(是的, 你沒看錯, 的確是105MB)
執行時間: 11 sec

對照組: VMware Fusion內的虛擬Linux
檔案大小: 22KB
執行時間: 6 sec

分析: 這是一個詭異的現象, 我完全沒辦法理解, 為甚麼同樣的程式碼大小居然可以差這麼多, 我是猜測gfortran for Mac版本根本沒有寫好(或是調整好), 搞不好很多東西都搞成inline的形式, 居然跑起來的效能差這麼多


3 意見:

Unknown 提到...

可否請您教我如何在intel mac 下安裝gfortran? gcc 4.0 以及xcode已經安裝, 因為需要compile 一些程式但出現下面錯誤訊息所以我應該安裝gfortran吧?!

謝謝您的幫忙

Last login: Sun Mar 30 00:23:37 on tty??
/Users/cks/day_CA/source/Makefile ; exit;
kuo-changs-macbook-pro:~ cks$ /Users/cks/day_CA/source/Makefile ; exit;
/Users/cks/day_CA/source/Makefile: line 60: BLINCLINK: command not found
/Users/cks/day_CA/source/Makefile: line 60: COMPFLAGS: command not found
/Users/cks/day_CA/source/Makefile: line 60: FFLAGS: command not found
/Users/cks/day_CA/source/Makefile: line 68: CFLAGS: command not found
/Users/cks/day_CA/source/Makefile: line 76: ILIBS: command not found
/Users/cks/day_CA/source/Makefile: line 77: LIBS: command not found
/Users/cks/day_CA/source/Makefile: line 78: -c: command not found
/Users/cks/day_CA/source/Makefile: line 85: gfortran: command not found
i686-apple-darwin9-gcc-4.0.1: no input files
:
:
:
:
:
/Users/cks/day_CA/source/Makefile: line 1122: /wthini.o:: No such file or directory
/Users/cks/day_CA/source/Makefile: line 1123: wthini.f: command not found
usage: mv [-f | -i | -n] [-v] source target
mv [-f | -i | -n] [-v] source ... directory
logout

[Process completed]

... 提到...

因為這件事情是有點早以前做的...
所以印象有點淺...
我記得安裝Xcode
它會順道安裝gcc...
可是這個只是C或C++的IDE介面與編譯器...

若要使用gFortran...
你必須加裝Xcode/gFortran plugin Update
可以在以下網址找到相關
http://macresearch.org/xcode_gfortran_plugin_update

... 提到...

另外, 如我本文所述...
所以目前我是採VMware加裝Linux系統...
再由Linux系統來開發Fortran程式...