问题标签 [intel-fortran]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
729 浏览

fortran - ifort 上的螺纹 DGEMM

我已经实现了一个调用 DGEMM 的工作程序(FORTRAN,编译器:Intel ifort 11.x)。我读过有一种快速的方法可以通过编译来并行化:

我有一个四核处理器,所以我使用(通过 bash)运行程序:

我的假设是 DGEMM 会自动调用 4 个线程,从而实现更快的矩阵乘法。这似乎没有发生。我错过了什么吗?任何帮助,将不胜感激。

0 投票
1 回答
1920 浏览

fortran - DGEMM 和数值常数作为参数

在使用 BLAS DGEMM矩阵乘法函数时,我注意到对于未初始化的结果矩阵 C,当我这样调用它时,我会在结果中得到 NaN:

但是,如果我事先声明 ALPHA 和 BETA:

然后乘法工作正常。有没有人知道为什么声明论点有效?

请注意,我使用的是 Intel Fortran 编译器及其 MKL 库。

0 投票
2 回答
2164 浏览

fortran - Compaq Visual Fortran 和 GNU Fortran 有什么区别?

在 Linux 下,我使用 gfortran 编译了一些 Fortran 77 代码,这些代码是在 Windows 下的 Compaq Visual Fortran 6.5 (CVF) 上开发的。一些错误与不同的关键字更改有关,例如TYPE在 CVF 和PRINTgfortran 中。

CVF 和 gfortran 之间有详细比较吗?

0 投票
1 回答
998 浏览

linker - Compaq Visual Fortran - 链接 .LIB 文件期间崩溃

当我使用 Compaq Visual Fortran 编译时,我得到了这些错误(当它启动链接器进程时),这些错误应该位于我认为我添加到工作区的 .lib 文件中:

根据我在哪里搜索过,看起来 Compaq Visual Fortran(版本 6,仅供参考)找不到库文件......

我的主要问题是,我该如何使用它们?可能还有其他丢失的文件吗?这是我尝试过的:

  • 右键单击->在 FileView 窗口中添加文件
  • 在项目->设置下,单击链接选项卡,在输入类别下,在对象/库模块 (bprop.lib rprop.lib) 下添加库文件,并让附加库路径指向文件所在的位置。我也在“资源”选项卡下进行了此操作,并且它显示“其他资源包含目录”,我放置了这些文件所在的目录。
  • 为了覆盖我的基础,我还将这些文件放在项目工作区文件的位置,将生成编译的可执行文件的位置,以及几乎任何我能想到的 CVF 可能会查找这些文件的位置。

一点背景:

我有这个在 90 年代最后一次编译的 Fortran 可执行文件。根据我的研究,它是 16 位编译的,无法在 64 位机器上运行。

至少从我们可以收集到的情况来看,原始代码具有 16 位编译库。如果没有原始编译器,我们无法弄清楚如何查看或使用它们。我们还有一个(半)等效的库文件,它实际上是一个 .FOR 文件。就我们所知,BPROP.FOR 和 BPROP.LIB 可能是同一个文件(它们位于同一个源代码区域)。如果我们使用 BPROP.FOR 文件,该程序可以编译,但我们会遇到问题,我们已经追溯到该文件中使用/收集/处理的信息的结果。

但是,我们确实有 32 位版本(我们认为)是相同的 .lib 文件。因此,我们正在尝试使用它,这是用于编译 Fortran 可执行文件的内容,这会导致上述错误。

0 投票
1 回答
4410 浏览

gfortran - 使用 gfortran 而不是 ifort 编译

我有一个针对 ifort 进行了优化的程序,但是我想使用 gfortran 来编译它。以下是提供的标志:

我查看了两者的手册条目以尝试找到相应的选项,但我找不到任何东西(除了 -openmp for -fopenmp,我已经知道了)。

0 投票
1 回答
269 浏览

segmentation-fault - 分段错误的堆栈跟踪更长?

使用“-traceback”编译的 ifort 仅打印 10 行,但分段发生在至少 10 层的内部子程序中。因此,不会显示发生段错误的确切例程。

它的 MPI 程序和运行 gdb 不是一个可行的选择。

有什么帮助吗?

谢谢

0 投票
1 回答
442 浏览

parallel-processing - ifort 不并行化代码

为什么 ifort 不并行化这段代码?它一直说“循环未并行化:存在并行依赖”。我不明白依赖在哪里。gfortran 会生成并行代码,但速度提升不是很高。

0 投票
1 回答
3278 浏览

fortran - 具有大文件大小的英特尔 Fortran 编译器

我有一大段用 Fortran 77 编写的遗留代码。我正在编译它并使用英特尔 Fortran 编译器(版本 11?)运行它。我最近遇到了一个问题,输出文件的大小接近 2GB,并且输出停止写入磁盘。

我四处寻找这是否是 Fortran 77 标准的一部分,或者我是否只是缺少编译器标志或其他东西,但没有找到任何指向我的问题的东西。

更改写语句不是一种选择,因为遗留代码大约有几十万行。最坏的情况是每隔几天我就会进入并将输出的早期部分截断到不同的文件中,但我宁愿不必这样做。

0 投票
1 回答
1777 浏览

fortran - 如何并行化总和?并行循环和 worshare 的不同结果

正如标题所述,我想使用 OpenMP 并行化总和。我搜索了不同的方法,但我要么不明白他们做了什么,要么他们没有工作。这是我发现的:

1)

有效,但我不明白会发生什么以及我得到什么好处。

2)

给出错误(不同于 1)或 3))结果。

3)当然,我可以计算一个新数组(并行化)并让这个数组最终总结出来......

关于如何做到最好的提示?

0 投票
2 回答
1757 浏览

visual-studio - 如何在 MS Visual Studio 2010 中搜索子程序/模块

MS Visual Studio 2010(我使用 Intel Visual Fortran Composer XE 2011)中有没有办法搜索子例程和模块?例如,如果我在一个调用另一个子例程子名的子例程(由其他人编写)中,我通常使用“在文件中查找”来查找后一个子例程,但是有没有更直接的方法,例如通过右键单击函数(或模块)名称?我找不到任何东西。谢谢