【发布时间】:2018-06-06 15:04:24
【问题描述】:
我正在尝试在 Mac OSX 机器上使用 gdb 调试 OpenMP C++ 程序。 (好吧,从技术上讲,使用“ggdb”。)无论我将 OMP_NUM_THREADS 设置为什么,gdb 都会尝试在 8 个线程上运行代码。为什么是这样?有没有办法让我自己告诉它代码将运行的线程数?
【问题讨论】:
-
向我们展示代码,至少是如何定义并行部分。线程数可以通过多种方式设置,其中一些优先级高于
OMP_NUM_THREADS。 -
不使用gdb的线程数是多少?
-
@ks1322 在没有调试器的情况下运行,线程数是我设置的 OMP_NUM_THREADS 。目前,我只想在两个上运行它。
-
在调试器中运行时如何设置
OMP_NUM_THREADS?你的机器上有多少个内核/硬件线程? -
@DanielLangr 好吧,我想我是在显示我的无知,但我在启动调试器之前设置了它。我应该在调试器中做吗?不知道怎么弄。
标签: c++ multithreading gdb openmp