gpt4 book ai didi

OpenMP 编程 : How to specify the number of threads as a command line option

转载 作者:行者123 更新时间:2023-12-04 22:44:11 27 4
gpt4 key购买 nike

我正在运行本地 blastx服务器。命令行选项之一是 -num_threads。查看可执行文件blastx,认为它可能是设置OMP_NUM_THREADS 的shell 脚本,结果发现它是机器代码。我假设(可能不正确)它是一个 OpenMP 应用程序,这让我开始思考。

问题:与使用环境变量 OMP_NUM_THREADS 相比,是否可以将 OpenMP 线程数作为命令行选项进行更改?

最佳答案

使用 OpenMP,您基本上有 3 种不同的方式来指定要在 parallel 中使用的线程数。地区:

  • 最常用的就是环境变量OMP_NUM_THREADS这需要在运行代码之前在代码的环境中设置才能生效;
  • 函数omp_set_num_threads() , 在到达平行区域之前被调用;和
  • 可选num_threads() parallel的条款指示。

  • 这些的相对优先级是 defined in great details by the standard但几乎可以归结为 num_threads()优先于 omp_set_num_threads() ,它本身优先于 OMP_NUM_THREADS .

    所以现在,如果你想让你的代码定义 OpenMP 线程的数量作为命令行选项,你需要的是:
  • 手动解析命令行,或使用 getopt 之类的函数, 并将您读取的值存储在变量中;和
  • 在对 omp_set_num_threads() 的调用中使用此值或作为 num_threads() 的参数条款。两者中的任何一个都将优先于为 OMP_NUM_THREADS 设置的可能值。 .
  • 关于OpenMP 编程 : How to specify the number of threads as a command line option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34404974/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com