【问题标题】:Intel Fortran Compiler "-parallel" Not Working英特尔 Fortran 编译器“-parallel”不工作
【发布时间】:2010-12-04 10:06:12
【问题描述】:

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

有没有人能够解释这种行为,还是只是英特尔编译器的缺陷。

您好。

【问题讨论】:

  • 这个标志是否适用于 c++?

标签: fortran parallel-processing


【解决方案1】:

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

是的,我能够解释这种行为,但是如果没有看到你的程序,我建议的任何事情都是错误的。

【讨论】:

  • 嗯,我在使用 Intel Fortran(所有版本 >= 7)时遇到了一些糟糕的经历。在不知道的情况下,我不会责怪糟糕的用户代码,也不会责怪编译器,而是错误报告:)
  • 我在几乎所有可能的软件类型中都有过糟糕的经历,但是,纯粹从统计上讲,英特尔的编译器是最常用的编译器之一。如果相对使用的选项出现问题,则问题出在新用户的可能性要大于许多人测试的编译器。
【解决方案2】:

英特尔 Fortran 论坛上已针对此相同问题提供了答案:http://software.intel.com/en-us/forums/topic/269743

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

【讨论】:

    猜你喜欢
    • 2016-04-26
    • 2017-03-06
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    相关资源
    最近更新 更多