c openmp并行用于并行区域内

2024-03-14

我的问题是这样的one https://stackoverflow.com/questions/11493265/for-loop-inside-parallel-region。但我想做一些不同的事情...

例如,在我的并行区域内,我想在 4 个线程上运行我的代码。当每个线程进入 for 循环时,我想在 8 个线程上运行我的代码。就像是

#pramga omp parallel num_threads(4)
{
    //do something on 4 threads
    #pragma omp parallel for num_threads(2)
    for(int i=0;i<2;i++){
        //do something on 8 threads in total
    }
}

那么,有没有办法将每个(4)个正在运行的线程“拆分”为两个(新)线程,以便在 for 循环内有更多(8)个线程正在运行?


你这里有什么 -嵌套并行性 http://docs.oracle.com/cd/E19205-01/819-5270/aewbc/index.html,一个并行部分位于另一个部分内 - 大多数当前支持 OpenMP 的编译器都支持,但默认情况下通常处于关闭状态。您需要设置OMP_NESTED环境变量为TRUE,或者在你的程序中调用omp_set_nested(1)。参见,例如,这个答案 https://stackoverflow.com/a/8303151/463827.

要回答评论中的后续问题,您不需要在 OpenMP 并行 for 循环末尾设置屏障;除非你使用nowait clause http://msdn.microsoft.com/en-us/library/ek5st0e3.aspx,在您的末尾已经存在隐式同步障碍for环形。而且你不能有障碍insidefor 循环;如果循环迭代没有被线程均匀划分会发生什么?您最终会发现一些线程被“卡住”在其他线程无法到达的屏障处等待。

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

c openmp并行用于并行区域内 的相关文章

  • 快速 log2(float x) 实现 C++

    我需要在 C 中非常快速地实现 log2 float x 函数 我发现了一个非常有趣的实现 而且速度非常快 include
  • 从 unsigned char* 到 char* 的转换无效

    这是一个代码 1 int main int argc char argv 2 3 signed char S psc 4 unsigned char U pusc 5 char C pc 6 7 C S 8 C U 9 10 pc psc
  • 如何在 Asp.Net Core 6 中向类型化 HttpClient 添加承载令牌身份验证

    我正在尝试使用 ASP Net Core 6 设置一个 Web api 以便用户可以到达我的端点 然后我使用特权帐户在幕后的 D365 中执行一些工作 我正在使用类型化的 HTTP 客户端 但我不确定如何插入承载身份验证 以便来自该客户端的
  • 为什么迭代器类型推导失败? [复制]

    这个问题在这里已经有答案了 为什么这在 C 中不起作用 为什么我不能限制foo的参数为std vector
  • 为基于架构的 XML 文件创建 WPF 编辑器

    这是场景 我们的服务器产品之一使用大型 XML 配置文件 该文件的布局相当好 并且针对 XSD 文件进行了验证 现在是时候构建一个配置 GUI 来维护这个文件了 我想深入研究 WPF 来完成它 我可以为每个配置部分布置一个单独的表单 每次向
  • C# 中输入按键

    我尝试了这段代码 private void textBox1 KeyPress object sender KeyPressEventArgs e if Convert ToInt32 e KeyChar 13 MessageBox Sho
  • 仅针对某些异常类型中断

    我知道异常处理是一件非常重要的事情 我们在所有项目中都在这样做 主要原因是记录客户发生的错误 这工作正常 根本不是问题 但是 当我仍在使用 Visual Studio 编码和运行应用程序时 我根本不需要任何异常处理 我希望调试器正好停在应用
  • 我们什么时候应该在.NET中使用NativeMemory.Alloc()? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 NET6 C 引入NativeMemory类 但我不知道什么时候应该使用NativeMemory Alloc 而不是普通的数组实例化
  • 如何在 C# 中创建 PKCS12 .p12 文件?

    这可能是一个n00b问题 但我在这方面确实没有任何经验 我需要创建一个包含 X509 证书和私钥的 p12 捆绑包 我当前有两个对象 X509Certificate2 和包含关键信息的 RSAParameters 对象 如何将它们合并到 p
  • 如何在控制器中使用多个 DBContext

    如何在控制器中使用多个 DBContext 我尝试以不同的方式重载构造函数 一些控制器 public C1 DBContext1 a DBContext2 b DBContext3 c public C1 DBContext1 a publ
  • 如何从命名空间内重载运算符<<

    这是我能想到的最小的包含示例 首先是类的标题 每当使用 pragma once ifndef EURO H define EURO H include
  • Python time.sleep - 永不醒来

    我认为这将是那些简单的问题之一 但它让我感到困惑 停止媒体 我是对的 找到了解决方案 查看答案 我正在使用 Python 的单元测试框架来测试多线程应用程序 很好而且很直接 我有 5 个左右的工作线程监视一个公共队列 以及一个为它们制作工作
  • 是否可以在对Where 的调用中调用命名方法?

    我试图从 RedGate 的这本免费电子书中了解 Linq 的一些性能影响ftp support red gate com ebooks under the hood of net memory management part1 pdf f
  • VS C# 中的依赖地狱,找不到依赖项

    我创建了一个图表 C 库 我们称之为chartlibrary 它本身依赖于多个第三方 dll 文件 在另一个可执行项目中 我们称之为chartuser 我参考了chartlibrary项目 两个项目位于 Visual Studio 中的同一
  • 使用 C# 的异步 WebRequest

    您好 我有一个函数 它将 url Get 参数传递到网络服务器上的 php 文件 并等待文件的响应 通常需要 10 20 秒 我想将其放入一个循环中 因为我必须一次将这些 Get 请求发送到大约 5 个不同的 php 文件 但是当我尝试将其
  • 没有 FPU 的处理器中的浮点计算

    是否可以在没有浮点单元的嵌入式处理器中执行浮点运算 是的 您只需要在软件中完成即可 你的编译器可能会提供支持 http gcc gnu org onlinedocs gccint Soft float library routines ht
  • 在 C++ 中什么时候首选传递指针而不是引用传递?

    我可以想象一种情况 其中输入参数可以为 NULL 以便首选传递指针而不是传递引用 有人可以添加更多案例吗 在传递的对象实际上将被修改的情况下 有些人更喜欢传递指针 当对象通过引用传递时 它们使用 pass by const referenc
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • Cordova 上的 ClearCookiesAsync()

    我正在尝试使用 wp8 cordova 中的插件来清除 WebBrowser cookie 我已经让它与 JavaScript 进行通信 并且我的 c 文件中有类似这样的内容 using WPCordovaClassLib Cordova
  • C#“var”关键字在 VB.NET 中的等价物是什么?

    例如 我如何获得 VB NET静态类型局部变量是static赋值右侧的表达式的类型 像这样 Dim http msdn microsoft com en us library 7ee5a7s1 aspx我的变量 3 你还需要 选项推断 ht

随机推荐

  • java.util.UUID 线程安全吗?

    我问这个问题是因为以下观察 在高度多线程环境中的线程转储中获取此堆栈跟踪 http 80 200 daemon prio 10 tid 0x00002aaab4981000 nid 0x7520 waiting for monitor en
  • 从头开始创建 XS 模块的现代方法是什么?

    我需要为 Perl 编写一个 XS 模块 据我了解 h2xs 现在几乎已被弃用 现在启动 XS 模块的首选方法是什么 我查看了 Module Starter 但它只处理纯 Perl 模块 不 h2xs 并未被弃用 如果您创建许多纯 Perl
  • 使用拉动刷新滚动列表视图时出现问题

    我开发了一个具有一个列表视图的应用程序 我使用拉动刷新来刷新列表数据 同时下拉 所以我在我的代码中完美地实现了 但是当我向上滚动列表向下滚动时 但当我向下滚动它时 我遇到一个问题不滚动完成 因为它考虑拉动刷新和刷新数据 但我想在显示列表索引
  • Entity Framework Core:Update() 方法在依赖实体上插入而不是更新

    看起来 EF Core 正在执行 INSERT 而不是 UPDATE 因此 MySQL 会抱怨重复键 但是 我在 DbSet 上使用 Update 方法 并且实体确实设置了主键 这会导致 MySql 中出现 DUPLICATE ENTRY
  • Angular 2 ngStyle 和背景图像[重复]

    这个问题在这里已经有答案了 我对 Angular 2 ngStyle 指令遇到了很大的麻烦 我无法从 Base64 编码文件设置背景图像 现在在 template html 中我有这个 div class projects item wra
  • Angular 2 动画/过渡仅适用于 chrome?

    正如标题所示 我一直在使用 Angular2 构建一个 Web 应用程序 并决定测试跨浏览器 结果发现漂亮的动画只能在 Chrome 中运行 这是我的一个组件的样子 如果这可能会有所不同 Component selector contact
  • 如何在 Plone 中定义默认视图

    我已经有一个用于 Plone 站点 主页 的默认视图的页面模板 如何定义文件夹的默认视图 此默认视图应使用页面模板 尝试这个 导航到所需的文件夹 在网址末尾添加 manage propertiesForm in the resulting
  • Python scikit-learn KMeans 在计算轮廓分数时被杀死 (9)

    我目前正在研究一个图像数据集 250 000 张图像 因此与特征向量一样多 每个图像都由 132 个特征组成 并尝试使用 sklearn 提供的 KMeans 函数 我在 Mac OS X 10 10 Python 2 7 和 sklear
  • 在 MATLAB 中绘图时循环颜色

    当我使用以下方法在同一个图上绘制多条曲线时hold on 每条曲线默认为相同的颜色 蓝色 我希望它们有不同的颜色 我见过的一种解决方案是制作颜色矢量 例如c k g r 并循环它 但我不喜欢这个解决方案 如果我的绘图数量大于颜色向量的长度
  • PHP 设置 MySQL 套接字位置

    我以前遇到过这样的问题 我的 C 应用程序在 tmp mysql sock 中寻找套接字 但我的套接字位置已设置为 var run mysqld sock 我现在更改了 my cnf 中的设置 始终将套接字放入 tmp 现在 当我尝试使用
  • 使用 GDI+ 创建的图像未显示在 VB6 LeadTools 中

    我们有使用 VB6 构建的遗留应用程序 这些应用程序正在使用引导工具 一切都很顺利 我们有另一个 NET 进程来优化图像 并做一些水印 并将其保存为 tiff 格式 这是 NET 代码的一瞥 using var bitmap new Bit
  • 使用 Android TabLayout 时单击选项卡不会切换当前选项卡

    我应该自己设置 onClicks 吗 如果是的话 我应该在哪里设置
  • OpenGL在另一个线程中绘图

    我为 Windows 创建了一个简单的 OpenGL 应用程序 它创建一个窗口 然后使用 OpenGL 命令在其上绘制一个三角形 这按预期工作 后来我想将我的绘图代码封装到一个DLL中 以便可以在C WinForms应用程序中使用它来绘制W
  • 包含聚合的更新语句在 SQL Server 中不起作用

    我希望有人可以在这里帮助我的语法 我有两张桌子ansicache encounters and ansicache x refclaim Table The encounters表有一个encounter匹配的列patacctnumber栏
  • 寻找序列中的零岛

    想象一下你有一个很长的序列 找到序列全为零的间隔 或更准确地说 序列下降到接近零值的间隔 的最有效方法是什么abs X
  • 将 Java Applet 迁移到什么/哪里?

    我目前正在审查一个中等规模的代码库 大约 30K LOC 它使用一个巨大的 Applet 并与其他系统交互 它是一个创建自定义标签的工具 因此我们需要拖放和其他相关的 UI 组件 鉴于代码库是 Java 语言 您将迁移到哪种技术 小程序 否
  • 使用 Selenium 登录页面可以工作 - 使用 BS4 进行解析可以工作 - 但不能同时使用两者

    从 Wordpress 论坛获取一些数据需要登录和解析 两个部分 两者作为独立部分都可以很好地工作 我可以使用 selenium 登录 完美 并且我可以使用 BS4 解析 抓取 数据 但是当我将这两个部分结合起来时 我遇到了会话问题 我无法
  • 了解 Scala 类型系统中的 Aux 模式

    这个问题之前可能被问过并回答过 但我想通过一个例子来理解这一点 但我无法推理出 Aux 模式可能有帮助的地方 所以这是特点 trait Foo A type B def value B 为什么我的类型与值函数的返回类型绑定 这样做我能取得什
  • IEnumerable.ToList() 的影响

    我只是想知道打电话时发生了什么 ToList on an IEnumerable在 C 中 这些项目实际上是否被复制到堆上全新的重复项目 或者新列表只是引用堆上的原始项目 我很想知道 因为有人告诉我调用 ToList 的成本很高 而如果只是
  • c openmp并行用于并行区域内

    我的问题是这样的one https stackoverflow com questions 11493265 for loop inside parallel region 但我想做一些不同的事情 例如 在我的并行区域内 我想在 4 个线程