使用mingw gcc 4.7.0的非常慢的Fortran代码(与4.4.0相比)

时间:2012-07-11 13:38:02

标签: mingw gfortran

我有一个用Fortran 90编写的库,以及几个使用它的C和C ++应用程序。之前我使用过MinGW GCC 4.4.0(由我从mingw.org下载的几个二进制存档中编写)来编译它们。

今天我下载了最新的MinGW(GCC 4.7.0,网络安装)并重建了我的所有代码。令人惊讶的是,应用程序开始工作非常慢 - 大约慢30倍或更多。同时重新编译的版本和从备份工作中恢复的类似 - 似乎问题是gfortran DLL,它取自PATH(即新的MinGW,与应用程序版本无关)。

问题的根源是什么,以及如何解决?我暂时回到了老MinGW。

1 个答案:

答案 0 :(得分:0)

回到这个问题后,我成功地找到了解决方法(但不是原因)。

在我的程序中,一些计算广泛的fortran子程序是从C端的几个线程调用的。出于某种原因,在mingw-gfortran 4.6.2或4.7.0上,这个使程序减慢了15次,而在4.4.0程序上则减慢了。如果仅从一个线程调用子程序,则4.7.0在速度方面变为等于4.4.0。

目前我的速度已经足够了,我将来电环境限制为1个线程。