我是並行編程的新手,想知道我可以啓動的最大線程數是多少。openMp中的最大線程數
我想這
#include<stdio.h>
#include<omp.h>
void pooh(int id,int a[])
{
a[id]=a[id]-1 ;
printf("%d\n",id) ;
}
int main()
{
int a[1001] ;
int i ;
for(i=0;i<1000;i++)
{
a[i]=i+1 ;
}
omp_set_num_threads(1000) ;
#pragma omp parallel
{
int id=omp_get_thread_num() ;
pooh(id,a) ;
}
return 0 ;
}
但是當我試圖OMP_SET_NUM_THREADS(10000); 該程序不運行。我想知道可以啓動以完成工作的最大線程數。
不確定這種方法是非常明智的,但你可以嘗試一個二進制搜索 - 嘗試500然後250然後125,直到它工作。然後你會知道該數字的最低和最高界限,然後再開始將該間隔再分成一半。 –