-2

我想知道是否可以运行一个用 fortran 编写的程序,这个程序非常“繁重”,利用了 CPU 的所有 24 个线程。

我正在使用 intel parallel studio XE 2011,例程是用 fortran 77 编写的。

4

1 回答 1

0

当然,这是可能的。有很多方法可以解决这个问题,但是:

我习惯于将您的“系统逻辑”置于更通用的逻辑中,直接支持 pthread 或 boost 线程等;很可能是 C 或 C++ 之类的东西,然后为计算的不同部分或可并行化的数据部分等生成不同的线程。请注意,现代编译器可以从 fortran 生成符合正常 C 调用约定的二进制文件,因此调用 fortran 函数不会t 比调用其他 C、C++、... 函数有更多开销。不过,您应该确保不要在您的 fortran 函数中修改全局状态!

我会知道 fortran77 没有并行化框架;存在一些,但据我所知,它们依赖于 F77 中不存在的语言功能。正如@HighPerformanceMark 指出的那样,OpenMP 可以很好地与英特尔编译器一起使用。

于 2015-12-16T13:59:49.117 回答