在程序源文件中使用脚本变量 OMP_NUM_THREADS

2024-03-01

如果我在集群上运行 C++ 代码,是否可以在我的程序中使用 OMP_NUM_THREADS 的值?例如,假设我有两个 .cpp 文件 main.cpp 和 func.cpp,其中 func.cpp 是使用 OpenMP 并行编写的。我希望能够定义一次线程数(在下面的脚本中),而不必在 func.cpp 中再次定义它。

#!/bin/bash

#PBS -S /bin/bash
#PBS -l walltime=00:10:00
#PBS -l select=1:ncpus=4:mem=2gb
#PBS -q QName
#PBS -N Name
#PBS -o Results/output.txt
#PBS -e Results/error.txt
#PBS -m abe -M email@address

module purge
module load intel-compiler/11.1.073

export OMP_NUM_THREADS=4

cd $WORKDIR

./myprog

您可以使用omp_set_num_threads() https://gcc.gnu.org/onlinedocs/libgomp/omp_005fset_005fnum_005fthreads.html设置程序中的线程数。
使用外部指定的值OMP_NUM_THREADS,您需要使用从环境变量中读取它std::getenv http://en.cppreference.com/w/cpp/utility/program/getenv。请务必 1) 将字符串结果转换为数字,2) 清理该值,以防其未设置。

伪代码看起来像:

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

在程序源文件中使用脚本变量 OMP_NUM_THREADS 的相关文章

随机推荐

  • 对“_GetAdaptersAddresses@20”的未定义引用 - 但我包含了 -liphlpapi

    我在用着gcc under cygwin编写一些调用的代码GetAdaptersAddresses from iphlpapi h在我的代码中我设置了 WIN32 WINNT高于要求的0x0501在我添加的链接器行上 liphlpapi但链
  • 来自 createFileAtPath 的更详细错误?

    无论如何 是否可以从 createFileAtPath 获取更详细的错误数据 我有点期待 NSError 目前我正在使用 BOOL 返回值 success fileMan createFileAtPath fileOnDisk conten
  • XSD:大型模式验证

    我正在尝试使用 JAXP 和 SAX 解析器根据非常大的工业模式验证 xml 文件 问题是 验证即使是很小的 XML 文件也需要很长时间 我正在运行 Apache Tomcat 6 0 我尝试将堆大小增加到 1024 但这没有多大帮助 我还
  • 在 Visual Studio 中调试可执行文件

    想要在调试器下调试可执行文件 如何在视觉工作室中做到这一点 Windbg 有一个打开可执行文件的选项 但我发现 VS 2010 中缺少这一点 这个问题并不完全相同在 Visual Studio 2010 中调试 exe https stac
  • 字符串的长度超过了 maxJsonLength 属性上设置的值

    我正在通过 jQuery 加载选项卡内容数据ajax通过 web 方法发布方法 大约有 200 300 条记录 并在控制台中出现以下错误 错误 Sys Net WebServiceFailedException Sys Net WebSer
  • 在 JMockit 中模拟被测类的私有方法

    在我的被 测类 CUT 中 一个 ejb 我有一个私有方法 getConnection 我想测试另一种 CUT 方法 但这种方法会提前失败 我尝试了如下所示 但 调用 是错误的 我不想调用该方法 我想存根它 但如何呢 连接 是一个存根 ne
  • 如何在主机之间迁移 Docker 卷?

    码头工人的文档 https docs docker com engine admin volumes volumes 指出卷可以 迁移 我假设这意味着我应该能够将卷从一台主机移动到另一台主机 非常乐意在这一点上得到纠正 但是 同一文档页面没
  • 获取单元 apache poi 的名称

    我有一个 Cell 对象 如何获取该单元格的名称 想要一个函数 例如 String name myCell getName 在Excel中 我已在名称框中对其进行命名 因此我不想获得 B4 我想获得诸如 InterestRate 之类的名称
  • 元素不会重定向到另一个页面并且不可点击

    我创建了一个 Web 组件 在其中声明了创建版权字符串的方法 p Copyright 2020 Krzysztof Kaczy ski a href https www google com Policy terms a p 然后我把这个字
  • 如何为 Mac OS X 编写启动脚本?

    我用java创建了一个jar文件 我想让应用程序在系统启动时自动启动 我发现我必须为此编写一个 shell 脚本 shell 脚本应该是什么样子 我还需要做些什么才能使应用程序在启动时自动启动吗 在 OS X 启动时启动程序的首选方法是创建
  • Altair Ridgeline 不会创建具有名义组的绘图

    我尝试在 Altair 中创建山脊线图 假设我的数据框由 str 和 float 列组成 a object b float64 dtype object 具有像这样的值 a b 0 25 2303 0 1 29 2676 0 2 18 29
  • 问:如何在多个设备上运行单个测试?

    我试图了解如何在多个设备中启动自动化测试 但我无法真正找到我想要的东西 我每个类有大约 5 个测试 我只想在所有连接的设备中执行一个测试 例如登录的端到端测试 我尝试使用连接的设备 但它不仅仅启动我想要的测试 我正在使用 Espresso
  • 如何在量角器测试中单击选择框中的选项?

    我正在使用 Protractor 在 Angular 应用程序中进行端到端测试 我试图单击选择框中的选项 但出现以下错误元素当前不可见 并且可能无法操作 我有这部分html
  • AuthenticationCredentialsNotFoundException:安全上下文不包含身份验证令牌

    我收到以下错误 AuthenticationCredentialsNotFoundException 安全上下文 不包含身份验证令牌 一个可能的原因可能是 没有为此 URL 配置防火墙 我尝试过解决方案 因为我知道当没有为路由配置安全防火墙
  • 在不同的目录中创建共享部分包结构的多个Python模块

    我正在开发一个包含单个应用程序的 Django 项目 该应用程序将在 GPL 下发布 因此我想将其与项目分开开发 使用该应用程序的个人网站 我试图对项目和应用程序使用基于我的域名的包结构 这就是我遇到问题的地方 这是我的文件结构 在适当的情
  • 更改 RichTextBox 的字体而不丢失格式

    如何在不丢失格式的情况下更改richtextbox所有内容的字体 我正在尝试使用 rtb SelectAll rtb SelectionFont new Font fontName 但字体构造函数除了字体类型之外还必须采用字体样式 粗体 斜
  • Handlebars.js 使用 noEscape 选项禁用转义?

    我已经预先转义了所有内容 因此我不想在任何地方使用三重存储 而是希望全局禁用车把转义 快速搜索显示了类似的功能 我可以在我的车把版本中看到该功能 但我不知道如何打开它 拉取请求在这里 https github com wycats hand
  • 查询响应请检查参考手册中的“函数名称解析和解析”部分

    有人可以向我解释一下这有什么问题吗 SELECT COUNT ID FROM tableImSpecifying WHERE VisitorsEmail VarThatHoldsEmailFromA POSTInput 这是我在遵循教程时编
  • 如何在配置文件中将模式设置为开发或生产?

    我们正在迁移到 webpack 4 我们已经有了 dev prod 配置文件 我们开始收到此警告消息 WARNING in configuration The mode option has not been set Set mode op
  • 在程序源文件中使用脚本变量 OMP_NUM_THREADS

    如果我在集群上运行 C 代码 是否可以在我的程序中使用 OMP NUM THREADS 的值 例如 假设我有两个 cpp 文件 main cpp 和 func cpp 其中 func cpp 是使用 OpenMP 并行编写的 我希望能够定义