我想知道是否有可能运行一个用fortran编写的程序,这个程序非常“重”,利用了CPU的所有24个线程。
我正在使用intel parallel studio XE 2011,例程是用fortran 77编写的。
答案 0 :(得分:0)
当然,那是可能的。有很多方法可以解决这个问题,但是:
我习惯的是将你的“系统逻辑”放在一个更通用的逻辑中,直接支持pthreads或boost thread等内容;很可能是C或C ++之类的东西,然后为计算的不同部分或可并行化的数据部分产生不同的线程等。请注意,现代编译器可以从fortran生成符合正常C调用约定的二进制文件,因此调用fortran函数不会比调用其他C,C ++,...函数有更多的开销。但是你应该确保不要修改fortran函数中的全局状态!
我没有意识到fortran77的并行化框架;有一个few in existence,但据我所知,他们依赖于F77中没有的语言功能。正如@HighPerformanceMark指出的那样,OpenMP可以很好地与英特尔编译器协同工作。