回 帖 发 新 帖 刷新版面

主题:openmp能在dll中使用吗?

在console程序中用openmp并行是可以的。

但是把这个console程序改成dll后被其他程序调用,当运行到dll中的并行标识代码处就报如下错:

OMP: Warning #2: Cannot open message catalog "2052\libiomp5ui.dll":
OMP: System error #126: 找不到指定的模块。
OMP: Info #3: Default messages will be used.
OMP: Error #101: Out of heap memory.

然后程序就退出了。

回复列表 (共6个回复)

沙发

环境:vs2005 ivf10

板凳

调整一下主调用程序的堆大小以及DLL库的堆大小。

3 楼


原因找到了。
由于没有use omp_lib,导致dll中运行到omp_set_num_threads的时候内存开始飙升,最终超出可用内存报错。

4 楼

没有use omp_lib, 代码中omp_set_num_threads这样的函数能在编译过程中通过?

5 楼


能通过

6 楼


那我的怎么在console中使用OPEN MP也有同样的错误?环境:vs2008。ivf2011
OMP: Warning #2: Cannot open message catalog "2052\libiomp5ui.dll":
OMP: System error #2: 找不到指定的模块。
OMP: System error #126: 找不到指定的模块。
OMP: wanging #191: ittnotify:loading"libittnotify.dll"library failed

我来回复

您尚未登录,请登录后再回复。点此登录或注册