【问题标题】:Questions about intel fortran compiler options关于 intel fortran 编译器选项的问题
【发布时间】:2014-08-27 18:24:06
【问题描述】:

我目前正在串行(单核)/并行(48 核)上运行一个 fortran 代码,并且输出中存在诸如“无穷大”或“NaN”之类的值(不应该有)没有任何其他信息。我想使用编译器选项来帮助我找到无穷大/NaN 的来源。我尝试了“-O0 -g -traceback -fpe3”的组合,然后在运行时,在这种情况下,无穷大比正常情况出现得更早(没有调试选项)。但是,仍然没有关于源代码中哪一行导致这种行为的信息。所以,我想知道,是否有任何可用的编译器选项可以帮助我找到无穷大/NaN 的来源?还是我使用了正确的标志组合?

提前致谢! =)

【问题讨论】:

标签: fortran intel flags


【解决方案1】:

fpe 选项是正确的想法!但是你用错了数字:根据Intel Fortran Compiler documentation,当fpe后面的整数为3时:

所有浮点异常都被禁用。浮点下溢 是渐进的,除非您明确指定编译器选项 启用清零,例如 IA-32 上的 -ftz 或 /Qftz、O3 或 O2 以及 英特尔 EM64T 系统。此设置提供完整的 IEEE 支持。

你需要使用-fpe0,结果是:

浮点无效、被零除和溢出异常是 启用。如果发生任何此类异常,则中止执行。这 选项设置 -ftz(Linux 和 Mac OS)或 /Qftz(Windows)选项; 因此,除非您明确表示,否则下溢结果将设置为零 指定 -no-ftz(Linux 和 Mac OS)或 /Qftz-(Windows)。在 基于 Itanium® 的系统,下溢行为等同于指定 选项 -ftz 或 /Qftz。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2016-03-07
    • 2021-05-27
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多