- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在编译一个使用 OpenMP 的应用程序。我们使用的是 gcc 4.4,带有 -fopenmp。该应用程序还使用 IPP,其中包括自己的 OpenMP 版本 (libiomp5)。 (注意:我们通过调用 ippSetNumThread(1) 来禁用 IPP 的内部线程。根据 Intel 的文档,这应该避免与其他线程库发生冲突。但是,与 IPP 的链接仍然链接在 libiomp5.so 中。)
由于 libiomp5.so 已经链接,我们没有与 libgomp.so(gcc 版本的 OpenMP)链接。很长一段时间以来,这种方法一直有效,但在看似无关紧要的更改之后,我们开始在我们支持的四个平台之一上看到与 OpenMP 相关的非常奇怪的崩溃(其他三个平台仍然工作正常)。
如果我链接 libgomp.so 和 libiomp5.so,就可以消除崩溃。
我对此有几个问题:
最佳答案
由于几天没有人回答,我将仅报告我独立发现的内容:
与这两个库的链接安全吗?不。这是我发现的关于该主题的最有用的页面: http://software.intel.com/sites/products/documentation/studio/composer/en-us/2011/compiler_c/optaps/common/optaps_par_openmp_multiple_compilers.htm
英特尔建议,如果您要将 IPP 的内部 OpenMP 线程与您自己的 OpenMP 线程混合,请链接到 libiomp5,而不是编译器的 OpenMP 库。当前版本的 libiomp5 提供了与 gcc 的 OpenMP 的“源兼容性和对象级互操作性”,但前提是您使用 gcc“4.42”(原文如此;我假设它们是指 4.4.2)或更高版本。
有办法知道 OpenMP libiomp5.so 支持哪个版本吗?是的。设置环境变量 KMP_VERSION=1,然后运行您的应用程序。您将得到 libiomp5 打印到控制台的一些调试输出。如果您使用的是 IPP v7 或更高版本,一行将类似于
Intel(R) OMP API version: 3.0 (200805)
如果您使用的是 IPP 6,它不会告诉您 API 版本,但会告诉您它的构建时间以及使用哪个版本的英特尔编译器。然后您可以检查编译器支持的 OpenMP 版本。 (11.0 是第一个支持 OpenMP v3.0 的英特尔编译器版本。)
关于openmp - libiomp5 和 libgomp 可以/应该混合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548880/
我们使用OpenMP(libgomp)来加快多线程Qt应用程序中的某些计算。并行OpenMP节位于两个不同的线程中,尽管实际上它们从未并行执行。在这种情况下,我们观察到的是启动了2N(其中N = OM
我正在使用 MacOS Mojave 版本 10.14.16,我正在尝试安装 http://www.rpl2.net/index.php (一种使用反向波兰表示法的编程语言,可在某些 HP 计算器(如
我有一个 Web 应用程序,我正在尝试将其部署到 azure。解决了各种问题后,我陷入了下面粘贴的困境。 我正在使用 python 3.7,并且我有 Windows 10。尝试部署具有多个计算机视觉模
我一直在一个接一个地安装 Ming 发行版,但出于任何被遗忘的原因,它们都没有附带使用 Open MP 所需的 libgomp.spec 文件。 有没有一个地方可以让我下载文件并将其粘贴到某个文件夹中
我们正在编译一个使用 OpenMP 的应用程序。我们使用的是 gcc 4.4,带有 -fopenmp。该应用程序还使用 IPP,其中包括自己的 OpenMP 版本 (libiomp5)。 (注意:我们
我使用 g++ (GCC) 4.7.2。在 Windows 7 上,64 位版本。 从http://nuwen.net/mingw.html下载 我尝试使用“-fopenmp”标志并得到错误: g++
在执行第 3 方 C++ 程序时出现以下错误: 加载共享库时出错:libgomp.so.1:无法打开共享对象文件:没有这样的文件或目录 libgomp.so.1 库是 GNU 编译器集合 OpenMP
在 Google Cloud Compute Engine 上的 Anaconda2 virtualenv 中运行 import graphlab 会导致以下堆栈跟踪。在我的机器上本地运行时,它不会导
我需要找出一个可以输入 gcc 的编译器/链接器指令,以便在指定 -fopenmp 时它不会自动链接 libgomp。 原因是我正在尝试针对英特尔的 MKL BLAS 进行构建。 MKL 需要添加一个
[托管在 Azure 应用服务上]容器由于此错误而崩溃: 2021-07-05T20:06:22.251645248Z [2021-07-05 20:06:22 +0000] [39] [ERROR]
我在我的 C++ 代码中使用 OpenMP。 libgomp.so.1 存在于我的 lib 文件夹中。我还将它的路径添加到 LD_LIBRARY_PATH 仍然在运行时我收到错误消息:libgomp.
当我运行以下示例代码时: #include "stdio.h" #include int main(int argc, char *argv[]) { #pragma omp parallel
我正在尝试在 Amazon Lightsail 实例 (Amazon Linux 2017.09.1) 上运行的 R 中安装 rJava 软件包。我不断收到 gcc 找不到 libgomp.spec
我试图找出我在 Jetson Nano 上安装的某些东西的版本。所以我写了几行代码并使用终端在 python3 中运行它。 并且通过执行图片中显示的错误发生。在另一个主题中,我发现您可以通过更改导入顺
一段时间以来,我一直在尝试安装 OpenMP 4.5 卸载到 Nvidia GPU 版本的 gcc,但到目前为止没有成功,尽管我越来越接近了。 这次我关注了this script ,我做了两个更改:首
我是一名优秀的程序员,十分优秀!