我正在尝试做一个 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 个以上的线程时,性能可能会受到影响