openmp相关内容

无法对 long double 数据类型进行 openMP 矢量化操作吗?

我正在学习 openMP,以我有限的知识,我的代码被并行化了.我正在尝试使用 openMP 矢量化技术改进此代码.但是在浏览相关阅读材料时(link),我发现这是不可能的对 long double 数据类型进行矢量化操作.有人可以提供有关原因的信息并提出除降低精度之外的解决方案吗? 链接中的内容如下:“避免SIMD硬件不支持的操作.Linux上(80位)长双精度算术,余数运算符“%"是SIM ..
发布时间:2021-09-29 19:38:22 C/C++开发

simd 的 pragma omp 不会在 GCC 中生成向量指令

简短:pragma omp for simd OpenMP 指令是否生成使用 SIMD 寄存器的代码? 更长:如 OpenMP 文档 中所述,“工作共享循环 SIMD 构造指定一个或多个相关循环的迭代将分布在使用 SIMD 指令的已经存在的线程之间[..]".从这个语句中,我希望以下代码 (simd.c) 在编译运行 时使用 XMM、YMM 或 ZMM 寄存器gcc simd.c -o si ..
发布时间:2021-09-17 19:16:38 其他开发

使用 openMP 在向量 c++ 对象上并行化循环

我正在尝试使用 openMP 提高 C++ 代码的性能,但没有看到非常好的缩放.在深入研究我的代码的细节之前,我有一个非常笼统的问题,我认为如果我能得到明确的答案,可以节省很多时间. 代码的基本结构是一个对象向量(假设大小 num_objs = 5000),其中每个对象保存一个相对较小的双精度向量(假设大小 num_elems = 500).我想遍历这个对象向量,对于每个对象,在成员向量上执 ..
发布时间:2021-09-17 19:12:57 C/C++开发

使用 openMP Task 时的意外行为

我正在尝试编写一个用于解决数独的蛮力算法的并行版本. 串行算法如下,伪代码: solve(matrix, x, y):对于 [0,9] 中的 i://如果测试编号符合规则如果(有效(矩阵,x,y,i):矩阵[y,x] = i//递归尝试下一个单元格if(solve(matrix, nextEmptyX, nextEmptyY)) 返回真//测试数字不是解决方案,回溯.矩阵[y][x] = ..
发布时间:2021-09-01 18:53:04 其他开发

#pragma omp parallel 和 #pragma omp parallel for 之间的区别

我是 OpenMP 的新手,我一直在尝试运行一个使用 OpenMP 添加两个数组的程序.在 OpenMP 教程中,我了解到在 for 循环中使用 OpenMP 时,我们需要使用 #pragma omp parallel for.但我也用 #pragma omp parallel 尝试了同样的事情,它也给了我正确的输出.以下是我试图传达的代码片段. #pragma omp parallel for ..
发布时间:2021-06-14 18:52:43 C/C++开发

C++ 致命错误 C1001:使用 openMP 的编译器发生内部错误

我有一个解决数独谜题的程序,我已经让它按顺序工作,但现在我正在尝试使用 openMP 并行化它.函数 solvePuzzle() 包含算法,我想在其中并行化 for 循环,但是当我在 for 循环之前添加 #pragma omp parallel for 语句时,我收到此错误: fatal error C1001: 编译器出现内部错误. 函数的代码是solvePuzzle(): bool ..
发布时间:2021-06-12 20:20:05 C/C++开发

容器元素上的 OpenMP 减少

我有一个嵌套循环,外部迭代很少,内部迭代很多.在内部循环中,我需要计算一个总和,因此我想使用 OpenMP 缩减.外循环在一个容器上,因此减少应该发生在该容器的一个元素上.这是一个最小的人为示例: #include #include #include int main(){constexpr int n { 128 };std::vectorvec (4, 0);for (unsigned in ..
发布时间:2021-06-12 20:20:00 C/C++开发

openMP:并行运行所有线程会导致内存不足异常

我想缩短冗长的图像处理算法的运行时间,该算法通过使用 openMP 并行处理应用于多个图像. 该算法适用于单个或有限数量 (=2) 的线程. 但是:当使用最大数量的可能线程运行时,使用 openMP 的并行处理需要大量内存,从而导致内存不足异常. 为了解决这个问题,我将“抛出异常"替换为“等待空闲内存",以防内存不足,导致很多( ..
发布时间:2021-06-12 20:19:57 C/C++开发

串行版本和并行结果不显示相同的输出

我实际上是 openmp 的新手,我有一个有效的 aes-128-cbc 玩具代码,可以将硬编码的密文解密为 12345,这本书是一位社区用户推荐给我的,我也遇到了这本书openmp 参考指南 最后我得到了一位社区用户的大力指导.从那些书和指南中,我试图并行化下面的串行代码 串行工作代码: #include #include #include #include #include int 成 ..
发布时间:2021-06-12 20:19:51 其他开发

使用 OpenMP“for simd"在矩阵向量乘法中?

我目前正试图通过将 #pragma omp for 与 #pragma omp simd 结合起来,使我的矩阵向量乘法函数与 BLAS 相媲美,但事实并非如此与仅使用 for 构造相比,获得任何加速改进.如何使用 OpenMP 的 SIMD 构造正确矢量化内循环? vector dot(const matrix& A, const vector& x){断言(A.shape(1) == x.si ..
发布时间:2021-06-12 20:19:48 其他开发

openmp 递归任务示例比顺序慢

我刚刚开始研究 OpenMP 并且一直在阅读任务.看起来 Sun 在这里的例子实际上比顺序版本慢.我相信这与任务创建和管理的开销有关.这样对吗?如果是这样,有没有办法在不改变算法的情况下使用任务使代码更快? int fib(int n){内部 i, j;如果 (n 解决方案 唯一明智的方法是将并行度降低到某个级别,低于该级别则没有意义,因为开销变得大于正在完成的工作.最好的方法是有两个单独的 ..
发布时间:2021-06-12 20:19:41 其他开发

多核错误共享

下面的程序会不会出现虚假分享? 内存 1 个数组分成 4 个相等的区域:[A1, A2, B1, B2] 整个数组可以放入实际程序中的 L1 缓存中. 每个区域都填充为 64 字节的倍数. 步骤 1.线程 1 写入区域 A1 和 A2,而线程 2 写入区域 B1 和 B2.2. 障碍3.线程1读取B1并写入A1,而线程2读取B2并写入A2.4. 障碍5. 转到步骤 1. ..
发布时间:2021-06-12 20:19:37 C/C++开发

编译 openmp、macports gcc 和 eclipse cdt

我是 openmp 的新手.以下是环境. 操作系统:Mac OSX 小牛队 编译器:gcc (MacPorts gcc48 4.8.2_0) 4.8.2 IDE : Eclipse Kepler CDT 插件 我写了下面的openmp程序 #include #include int main(){#pragma omp 并行{int i=omp_get_thread ..
发布时间:2021-06-12 20:19:34 其他开发

找不到 Xcode C++ omp.h 文件

我正在尝试将 openmp 包含到我的 Xcode C++ 项目中.我已将 Xcode 中的编译器更改为 LLVM GCC 4.2,添加了“-fopenmp"作为 CFlag,并在 xcode 中启用了 OpenMP 支持.但它仍然说“找不到‘omp.h’文件",我无法构建项目.有谁知道可能出了什么问题以及如何解决这个问题? 解决方案 我遇到了同样的问题.尝试使用左侧的面板转到项目导航器. ..
发布时间:2021-06-12 20:19:31 移动开发

OMP_NUM_THREADS=1 时 #pragma omp atomic 的性能问题

我观察到了我正在编写的 openmp 代码的意外(对我而言!)行为.代码结构如下: #pragma omp parallel forfor(int i=0;i 我已经编译了这段代码的三个不同版本: 1) 使用 openmp (-fopenmp) 2) 没有 openmp 3) 使用 openmp,但没有 3 个原子操作(作为测试,因为原子操作是必需的) 当我使用环境变量 ..
发布时间:2021-06-12 20:19:28 C/C++开发

如何在 gem5 Full System 中编译和运行 C 程序(使用 OpenMP)?

我是一名本科生,正在撰写有关并行编程的论文.我正在使用 OpenMP 模型.现在我想使用 gem5 来衡量性能.这就是我通过以下链接成功安装 gem5 Full System 的原因: http://cearial01.kaist.ac.kr/index.php/2016/08/26/gem5-documentation/ 现在我想编译 &使用 gem5 运行带有 OpenMP (ma ..
发布时间:2021-06-12 20:19:21 其他开发