我是一位在MATLAB 2009b中編寫代碼的醫學研究人員,由於自引用循環(此處不確定編程術語),運行速度非常緩慢,即第一次迭代的結果在第二次迭代等(我已經將它向量化爲一個票價 - 你 - 我已經運行了Profiler。)將MATLAB代碼轉換爲Fortran
我想將代碼的慢速部分轉換爲mex函數。我在20世紀70年代早期學過Fortran,但自那以後就沒有用過它。我需要轉換的代碼沒有什麼奇特之處,它只是一個很長的數值計算。
我的問題是:什麼是最容易重新學習的Fortran足以達到此目的,以及哪種編譯器在英特爾Mac上最適合此工作?例如,我發現將MATLAB中的語法與Fortran 90進行比較的信息,並且轉換看起來不像對我來說太過艱鉅。但是,我再次不是程序員。
我正在使用OS 10.6的MacBook Pro。
感謝任何幫助,謝謝。
多麼具有諷刺意味。 Matlab被部分開發爲「更好」的FORTRAN。 – Marc 2009-11-23 18:26:23
代碼小到足以發佈?在採取MEX之前,可能還有其他優化措施。例如。預分配和小心函數調用可能會讓更新的Matlabs進行就地陣列修改,這是迭代計算的重大勝利。 – 2009-11-23 18:51:08
讓我們希望這個激烈的討論並沒有嚇倒他:) – Amro 2009-11-23 23:34:02