OpenMP,使用所有并行核心

2023-11-21

我有 4 核计算机和 OMP 应用程序,有 2 个繁重的任务。

int main()
{
    #pragma omp parallel sections
    {
        #pragma omp section
        WeightyTask1();

        #pragma omp section
        WeightyTask2();
    }

    return 0;
}

每项任务都有这样重要的部分:

#omp pragma parallel for
for (int i = 0; i < N; i++)
{
    ...
}

我用编译程序-fopenmp参数,制作export OMP_NUM_THREADS=4. The problem就是它仅加载两个核心。如何在我的任务中使用所有核心?


我最初的反应是:你必须声明更多的并行性。

您定义了两个可以并行运行的任务。 OpenMP 在两个以上内核上运行它的任何尝试都会减慢您的速度(因为缓存局部性和可能的​​错误共享)。

Edit如果并行 for 循环的数量很大(例如,迭代次数不低于 8 次),并且您没有看到使用超过 2 个核心,请查看

  • omp_set_nested()
  • the OMP_NESTED=TRUE|FALSE环境变量

    此环境变量启用或禁用嵌套并行性。可以通过调用来覆盖此环境变量的设置omp_set_nested()运行时库函数。

    如果禁用嵌套并行性,则嵌套并行区域将被序列化并在当前线程中运行。

    在当前的实现中,嵌套并行区域始终是序列化的。因此,OMP_SET_NESTED没有任何影响,并且omp_get_nested()始终返回 0。如果启用 -qsmp=nested_pa​​r 选项(仅在非严格 OMP 模式下),则嵌套并行区域可能会使用其他可用线程。但是,不会创建新团队来运行嵌套并行区域。OMP_NESTED 的默认值为 FALSE。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OpenMP,使用所有并行核心 的相关文章

  • 使用 Scoop 编程 DEAP

    我在 python 中使用 DEAP 库来解决多目标优化问题 我想使用多个处理器来完成这项任务 但是 我遇到了一些麻烦 为了提供一些背景信息 我将 networkx 与 DEAP 结合使用 我还定义了适应度函数 交叉和变异函数 由于某些原因
  • cuda中内核的并行执行

    可以说我有三个全局数组 它们已使用 cudaMemcpy 复制到 GPU 中 但 c 中的这些全局数组尚未使用 cudaHostAlloc 分配 以便分配页面锁定的内存 而不是简单的全局分配 int a 100 b 100 c 100 cu
  • 为什么 mex 文件中的 OpenMP 仅产生 1 个线程?

    我是 OpenMP 新手 我有以下代码 使用配置了 MSVS2010 的 Matlab mex 可以正常编译 计算机有 8 个可用处理器 我也使用 matlabpool 检查过 include mex h include
  • mclapply 调用应该嵌套吗?

    正在筑巢parallel mclapply是个好主意吗 require parallel ans lt mclapply 1 3 function x mclapply 1 3 function y y x unlist ans Outpu
  • 在 C# 中创建加密随机数的最快、线程安全的方法?

    请注意 在多个线程上并行生成随机数时 加密随机数生成器不是线程安全的 使用的发电机是RNGCryptoServiceProvider它似乎重复了很长一段随机位 128 位 重现此情况的代码如下所示 缺乏使用锁来保护访问RNGCryptoSe
  • 使用 MPI 的 Allreduce 对 Python 对象求和

    我正在使用使用 Python 中的字典和计数器构建的稀疏张量数组操作 我想让并行使用这个数组操作成为可能 最重要的是 我最终在每个节点上都有计数器 我想使用 MPI Allreduce 或另一个不错的解决方案 将其添加在一起 例如 使用计数
  • 超标量和 VLIW

    我想问一些关于ILP的问题 超标量处理器是标量处理器和矢量处理器的混合体 那么我可以说矢量处理器的架构遵循超标量吗 同时处理多个指令不会使体系结构超标量 因为流水线 多处理器或多核体系结构也可以实现这一点 这意味着什么 我读过 超标量 CP
  • 将整个包传递给雪簇

    我正在尝试并行化 使用snow parLapply 一些依赖于包 即除snow 调用函数中引用的对象parLapply必须使用显式传递给集群clusterExport 有没有办法将整个包传递到集群 而不必显式命名每个函数 包括用户函数调用的
  • python 中的并行处理

    在 python 2 7 中进行并行处理的简单代码是什么 我在网上找到的所有示例都很复杂 并且包含不必要的代码 我该如何做一个简单的强力整数分解程序 在每个核心 4 上分解 1 个整数 我真正的程序可能只需要2个核心 并且需要共享信息 我知
  • 并行化斐波那契序列生成器

    我正在学习并行化 在一项练习中 我得到了一些我应该提高性能的算法 其中之一是斐波那契数列生成器 array 0 0 array 1 1 for q 2 q lt MAX q array q array q 1 array q 2 我怀疑 这
  • 匹配集合 Parallel.Foreach

    我正在尝试为 matchcollection 创建一个 Parallel Foreach 循环 它在我构建的刮刀中 我只需要知道在 Parallel Foreach 中放入什么 MatchCollection m Regex Matches
  • MATLAB parfor 和 C++ 类 mex 包装器(需要复制构造函数?)

    我正在尝试使用概述的方法将 C 类包装在 matlab mex 包装器中here http www mathworks com matlabcentral newsreader view thread 278243 基本上 我有一个初始化
  • 与 GridSearchCV 的并行错误,与其他方法一起工作正常

    我使用 GridSearchCV 时遇到以下问题 它在使用时给我一个并行错误n jobs gt 1 同时n jobs gt 1与 RadonmForestClassifier 等单一模型配合良好 下面是一个显示错误的简单工作示例 train
  • Haskell 中多核编程的现状如何?

    Haskell 中多核编程的现状如何 现在有哪些项目 工具和库可用 有哪些经验报道 2009年至2012年期间 发生了以下事件 2012 从 2012 年开始 并行 Haskell 状态更新开始出现在并行 Haskell 摘要 http w
  • 使用网络计算机进行 Matlab 并行处理

    我熟悉matlabpool and parfor用法 但我仍然需要加快计算速度 我的 1GB 网络中有一台功能更强大的计算机 两台计算机都有 R2010b 并且具有相同的代码和路径 使用两台计算机进行并行计算的最简单方法是什么 我今天使用的
  • OpenMP 和 C++:this 指针

    Is thisOpenMP 中始终共享指针 尽管编译器不会抱怨以下代码default none pragma omp parallel for default none shared n for SInt i 0 i lt n i f i
  • Python:并行修改数组的简单方法

    这个问题可能听起来很简单 但作为 Python 并行化的新手 我肯定会遇到困难 我处理了 OpenMP for C 中的并行化问题 这要容易得多 我需要做的是并行修改矩阵的条目 就是这样 问题是 我无法使用简单的 joblib 库来做到这一
  • 并行 Haskell - GHC GC 火花

    我有一个正在尝试并行化的程序 带有可运行代码的完整粘贴here http lpaste net 101528 我进行了分析 发现大部分时间都花在findNearest这本质上是一个简单的foldr超过一个大Data Map findNear
  • tbb:并行查找第一个元素

    我遇到了这个问题 查找列表中满足给定条件的第一个元素 不幸的是 该列表相当长 100 000 个元素 并且使用单个线程评估每个元素的条件总共需要大约 30 秒 有没有办法干净地并行化这个问题 我浏览了所有tbb模式 但找不到任何合适的 UP
  • 子进程调用,它们是并行完成的吗?

    我一直在谷歌搜索这个问题的答案 但似乎没有一个答案 谁能告诉我如果subprocess模块是否并行调用 Python 文档建议它可用于生成新进程 但没有提及它们是否并行 如果它们可以并行完成 您能否给我举一个例子或将我链接到一个例子 这取决

随机推荐

  • 在 vs code 中调试 webpack 开发服务器?

    是否可以配置 launch json 来调试 webpack 开发服务器 就我而言 我正在开发一个通用 通过 Express 服务器渲染 React 应用程序 如果能够直接在 VS Code 中调试服务器端 那就太好了 我一直在使用 Web
  • PHP/MySQL - 将数组数据存储为 JSON,不好的做法?

    我想知道将数组作为 JSON 字符串存储在 mysql 文本字段中是否是一个好的做法 我正在创建一张发票 允许用户向发票添加无限数量的产品 提交表单后 它会删除所有空白项目等 但我通常会留下 2 5 个项目 具体取决于情况 每个商品都有一个
  • 如何以编程方式了解天蓝色角色的当前区域?

    我需要以编程方式找到我当前角色运行的当前区域 例如 美国西部 或 美国东部 有没有API可以找到这个 考虑使用获取云服务在服务管理 API 中 当您提供您的角色所属的服务时 您可以检索类似于以下内容的响应 请注意我已加星标的位置字段
  • INSERT ... SELECT 是原子事务吗?

    我使用这样的查询 INSERT INTO table SELECT FROM table2 t2 JOIN WHERE table2 date lt now 1 day INTERVAL FOR UPDATE OF t2 SKIP LOCK
  • 在 T-SQL 中联接来自 XML 的数据

    我有以下 XML 消息 DECLARE XML AS XML SET XML
  • Visual Basic 中的 Action(Of T),位于 List(Of T).ForEach 中

    我到处搜索有关如何使用此功能的文档 当循环我could写起来很简单 不需要时间 我真的很想学习如何使用它 基本上我有一堂课 比如说 Widget 有一个Save sub 不返回任何内容 所以 Dim w as New Widget w Sa
  • Google Datastore 查询和最终一致性

    我想确认我对 Google 数据存储中最终一致性的理解 假设我有一个定义如下的实体 使用 ndb class Record ndb Model name ndb StringProperty content ndb BlobProperty
  • 有没有按类前缀的 CSS 选择器?

    我想将 CSS 规则应用于其中一个类与指定前缀匹配的任何元素 例如 我想要一个适用于具有以以下开头的类的 div 的规则status 以下片段中的 A 和 C 但不是 B div class foo class status importa
  • 使用不同的查询字符串缓存图像(S3 签名的 URL)

    我想知道是否可以让浏览器缓存带有签名网址的图像 我想要的是为每个请求生成一个新的签名网址 相同的图像 但具有更新的签名 但不要让浏览器每次都重新下载它 那么 假设与缓存相关的标头设置正确 并且除了查询字符串之外所有 URL 都是相同的 有什
  • 这两种添加字符串的情况有什么区别?

    我注意到当我初始化一个字符串时 编译器报告了一个我没有预料到的错误 例如 include
  • Java JLabel,将文本中断到下一行?

    好久没提问了 我正在用 Java 开发一个应用程序 其中JLabels被使用 不管怎样 正如你可能从下面的图片中看到的 也可能看不到的 上面写着的文字Category Test被打断并最终说Categor 反而 一旦文本填满标签的宽度 有什
  • 找到两个总和相等且总和最大的子序列?

    我已经删除了这个问题的所有故事情节 Q 给你 N 个数字 你必须找到 2 个等和子序列 且总和最大 您不一定需要使用所有数字 Eg 1 5 1 2 3 4 1 Sub sequence 1 2 3 sum 5 Sub sequence 2
  • 使用 SCRAM-SHA-1 在猫鼬中进行身份验证

    我最近从 MongoDB 2 6 升级到 3 0 4 还将 Mongoose 版本升级到 4 0 0 现在每当我尝试使用 mongoose 连接到 mongodb 时 mongoose connect mongodb user passwo
  • 无法从 IP 访问 Visual Studio 项目,只能访问 http://localhost

    我正在视觉工作室中运行一个项目 我点击运行 它会启动 IE 并指向http localhost 1267 如果我尝试访问http 10 211 55 3 1267 机器的IP 即使从同一台机器访问 我也什么也得不到 IIS7运行良好 该机器
  • 在 Python 中使用正则表达式确定字符串的不匹配部分

    假设我有一个字符串 a foobar 我使用 a s 来匹配 a 有没有办法轻松返回 foobar 什么不匹配 我想使用正则表达式来查找命令词 并使用正则表达式从字符串中删除命令词 我知道如何使用以下方法来做到这一点 mystring re
  • 在Python中查找列表中的子字符串[重复]

    这个问题在这里已经有答案了 背景 示例列表 mylist abc123 def456 ghi789 如果子字符串匹配 我想检索一个元素 例如abc Code sub abc print any sub in mystring for mys
  • XUnit - InvalidOperationException:无法使用应用程序根找到解决方案根

    我有一个 Web API NET Core 2 2 项目 我正在尝试对其进行集成测试 我已按照指南进行操作微软 从测试运行器和命令行启动它们时 测试通过 它们应该正确配置 我可以通过 WebApplicationFactory HTTP 客
  • 类型 无法创建 List 的通用数组

    假设我有 FooClass 类 public class FooClass 以下行给出了以下编译错误 Note I want to create an array of length 4 of Lists of FooClass List
  • 如何为 Kohana v3 应用程序设置自定义 404 页面

    如何才能做到这一点 我尝试这样做大约半个小时 但它变得非常烦人 您可能会认为 对于这样的框架来说 这应该是一个基本且容易设置的事情 我希望也许有一个我错过的简单方法 因为我开始认为 如果这样的基本设置很难设置 我根本不应该选择这个框架 这是
  • OpenMP,使用所有并行核心

    我有 4 核计算机和 OMP 应用程序 有 2 个繁重的任务 int main pragma omp parallel sections pragma omp section WeightyTask1 pragma omp section