英特尔Fortran编译器“-平行;不起作用

英特尔Fortran编译器“-平行;不起作用,fortran,parallel-processing,Fortran,Parallel Processing,我有一个串行Fortran代码,运行良好。一旦我使用ifort-parallel编译相同的代码并运行它,它就会给出错误的结果和溢出。我希望使用“-parallel”标志,英特尔编译器能够选择可以安全并行化的循环,并且我应该得到与串行代码完全相同的结果,但这并没有发生。更奇怪的行为是,我继续并关闭了代码中所有的do循环并行化!DEC$NOPARALLEL,使用ifort-parallel编译代码,以确保非循环被并行化,然后运行。令人惊讶的是,我得到了同样的错误结果和溢出,尽管后一个操作应该完全等同

我有一个串行Fortran代码,运行良好。一旦我使用ifort-parallel编译相同的代码并运行它,它就会给出错误的结果和溢出。我希望使用“-parallel”标志,英特尔编译器能够选择可以安全并行化的循环,并且我应该得到与串行代码完全相同的结果,但这并没有发生。更奇怪的行为是,我继续并关闭了代码中所有的do循环并行化!DEC$NOPARALLEL,使用ifort-parallel编译代码,以确保非循环被并行化,然后运行。令人惊讶的是,我得到了同样的错误结果和溢出,尽管后一个操作应该完全等同于一个串行代码

是否有人能够解释这种行为,或者这只是英特尔编译器的缺陷


你好

很抱歉这么说,这不太可能是英特尔编译器的问题,它是一个非常好的编译器(不,我不为英特尔工作!但我使用他们的编译器)


是的,我能够解释这种行为,但是如果看不到您的程序,我建议的任何东西都是错误的。

在英特尔Fortran论坛上对这个相同的问题给出了答案:


编辑:我修改了链接,因为如评论中所述,原来的链接现在已失效。

哼哼,我也有过使用英特尔Fortran(所有版本>=7)的不良经历。在不知情的情况下,我不会责怪糟糕的用户代码,也不会责怪编译器,而是责怪bug报告:)我对几乎每种可能的软件都有过不好的体验,但是,纯粹从统计上讲,英特尔的编译器是使用率最高的编译器之一。如果使用相对较重的选项存在问题,则问题更多的是在新用户中,而不是在由Myman测试的编译器中。这个相同的标志是否为C++工作?