C OpenMP : libgomp: 线程创建失败: 资源暂时不可用



我正在尝试做一个 p 基本项目,但似乎我的线程用完了?你们知道我该如何解决问题吗?

这是代码:

int main()
{
omp_set_num_threads(2150);
#pragma omp parallel
{
printf("%dn",omp_get_thread_num());
}

return 0;
}

这是我在 CodeBlock 上的"其他编译器选项"上编写的全局编译器设置:

-fopenmp

我收到以下错误:

libgomp:线程创建失败:资源暂时不可用

我在网站上看到了类似的线程,但到目前为止我还没有得到答案或解决方案。

规格:

英特尔 i5 6400

2x8GB 内存

视窗 10 64 位

问题是

omp_set_num_threads(2150);

操作系统将对进程可以创建的线程数施加限制。例如,通过限制堆栈大小,这可能是间接的。创建 2150 超出了限制。

你提到你有英特尔15 6400,这是一个四核芯片。 尝试将线程数设置为更合理的值。在您的情况下:

omp_set_num_threads(4);

对于数值处理,在 4 核系统上使用 4 个以上的线程时,性能可能会受到影响

最新更新