openmp相关内容

' omp.h'使用clang编译时找不到文件

我正在尝试在运行Linux Mint的笔记本电脑上使用clang(3.7.0)设置OpenMP项目. 现在我已经了解到不立即支持OpenMP,所以我按照本教程 https://clang-omp.github.io/将openMP集成到clang中. 我已经克隆了源代码,设置了环境变量并在项目中设置了-fopenmp标志,但是在构建时仍然出现错误“严重错误:找不到'omp.h'文件". ..
发布时间:2021-05-29 23:14:13 服务器开发

OpenMP:将所有线程分为不同的组

我想将所有线程分为2个不同的组,因为我有两个并行任务要异步运行.例如,如果总共有8个线程可用,我希望有6个线程专用于task1,另外2个线程专用于task2. 如何使用OpenMP做到这一点? 解决方案 这是 OpenMP任务以启动两个独立的任务,然后在这些任务中具有并行的部分,这些部分使用适当数量的线程. 作为一个简单的例子: #include#inc ..
发布时间:2021-05-13 19:51:02 其他开发

当我使用open mp时,我所有的代码运行都慢得多

我已经在该网站上看到几篇帖子,它们都在谈论这个问题.但是,我认为我认真的代码(由于创建线程而造成的开销以及所有问题都不应该成为大问题)现在已经变得比打开mp慢得多!我正在使用带有gfortran 4.6.3的四核计算机作为编译器.以下是测试代码的示例. 程序测试使用omp_lib整数* 8 i,j,k,l!$ omp并行!$ omp do我= 1,20000做j = 1,1000做k = 1,1 ..
发布时间:2021-05-09 19:21:00 其他开发

并行程序给出错误“对_Kmpc_ok_to_fork的未定义引用";

我正在尝试在Linux上编译OPENMP fortran代码.我大约有230个子例程.我用来编译代码的代码如下:1)首先,我使用以下命令编译每个子例程 ifort -c -override-limits -openmp * .for 然后,所有子例程现在都有一个单独的目标文件. 2)然后,我尝试通过以下命令将目标文件编译为可执行文件 ifort * .o -o myprogram ..
发布时间:2021-05-09 19:20:18 服务器开发

如何从Freetran的下一行继续执行OpenMP指令?

我有一行Fortran代码,例如 !$ omp执行私有(aa,bb,cc)调度(动态)减少(+:alpha,beta,gamma) 假设此行包含多个参数,并且长度超过132个字符,gfortran将导致错误消息.我试图使用& 打破常规.但是我不确定如何开始下一行.在其他情况下,直接在没有!的情况下开始下一行会导致 Error:OpenMP变量列表中(1)的语法错误. 如何打破omp行的 ..
发布时间:2021-05-09 19:19:33 其他开发

使用openmp和private子句的梯形规则集成

我正在更改用于串行执行的代码,将其调整为并行执行(openmp),但是我对预期结果(pi值)的理解很差.我在下面显示两个代码. 有什么问题吗? 程序陷阱使用omp_lib隐式无双精度:: suma = 0.d0!总和是一个标量双精度:: h,x,lima,limb整数:: n,i,istart,iend,thread_num,total_threads = 4,ppt整数(种类= 8):: ..
发布时间:2021-05-09 19:19:30 其他开发

OMP:OMP并行DO和OMP DO有什么区别(完全没有并行指令)

好的,我希望以前没有问过这个问题,因为在搜索中很难找到. 我看过F95手册,但仍然发现这个模糊的地方: 对于以下简单情况:我是否= 0,99结束做 我正在尝试找出两者之间的区别: !$ OMP DO PRIVATE(i)我是否= 0,99结束做!$ OMP END DO 并且: !$ OMP并行执行私有(i)我是否= 0,99结束做!$ OM ..
发布时间:2021-05-09 19:18:34 其他开发

Fortran + Openmp比顺序运行更慢

我在Fortran中有此顺序代码.我的问题是,当我放置Openmp指令时,并行代码比顺序代码慢,而且我看不到错误. REAL,DIMENSION(:),ALLOCATABLE ::当前,下一个分配(当前(TOTAL_Z),下一个(TOTAL_Z))调用CPU_TIME(t1)!$ OMP并行共享(当前,下一个)私有(z)DO t = 1,共TOTAL_TIME!$ OMP DO SCHEDUL ..
发布时间:2021-05-09 19:16:43 其他开发

与串行和其他并行运行相比,并行仿真在某些时间步长后得出不同的结果

我正在尝试使用OpenMP在涡流仿真上并行运行代码.这些类似于粒子模拟,其中在每个时间步长,必须根据其速度来计算下一时间步长的涡流位置,该速度由当前时间步长中所有其他涡流的位置确定.涡旋离开域后将被删除.我将并行版本的代码与串行版本的代码在每个时间步的漩涡数量进行比较,并多次运行每个版本. 对于串行版本,涡旋计数在每个时间步均完全匹配.对于并行案例,所有运行都与串行案例匹配了几十个时间步,此 ..
发布时间:2021-05-09 19:15:54 其他开发

gfortran无法使用MinGW找到OpenMP库(omp_lib.mod)

我正在尝试编译包括OpenMP在内的Fortran代码.我从另一个代码复制了OpenMP的用法.它昨天成功构建了一次,然后下次构建时,出现以下错误: ../MAXBRG3D.f90:3:4:使用OMP_LIB!与OMP功能一起使用1个致命错误:无法打开模块文件'omp_lib.mod'以便在(1)处读取:没有这样的文件或目录编译终止.subdir.mk:329:目标"MAXBRG3D.o"的配 ..
发布时间:2021-05-09 19:15:10 其他开发

使用gcc-4.7和openMP缺少___emutls_get_address

我正在尝试在Mac OS 10.8.2上使用自编译的GCC-4.7.1编译程序.该程序使用openMP,编译成功;但是,当我尝试运行程序时,动态链接器会抱怨 dyld:惰性符号绑定失败:找不到符号:___emutls_get_address引用自:/usr/local/gcc-4.7.1/lib/libgomp.1.dylib预期位于:/usr/lib/libSystem.B.dylibdyl ..
发布时间:2021-05-03 19:03:48 其他开发

使用OpenMP的数组中的最大值

我必须解决有关OpenMP的练习;在这里: 编写如下的OpenMP代码(所需的最小代码片段):接受整数数组A(大小为NUM),并填充数组B(浮点数),其值B [i] = A [i]/MaxA(必须将MaxA计算为所提供的代码的一部分). 对于最终的计算,我将使用 #pragma omp并行共享(A,B)for(int i = 0; i ..
发布时间:2021-04-23 20:39:17 其他开发

osx和clion,找不到omp.h

如何说服cmake(在CLion中)我有可用的OpenMP标头?我正在尝试编译该项目 SCD ,并且收到以下错误消息 ...[15%]构建CXX对象工具/选择器/CMakeFiles/selector.dir/source/main.cpp.o[18%]构建CXX对象工具/cc/CMakeFiles/cc.dir/source/main.cpp.o/Users/buddha/github/bu ..
发布时间:2021-04-22 19:22:14 其他开发