I recently done a test in a simple OpenMP based application andOpenMPcouldn't create more than 64 threads.
Here is a code of the test:
void main( void )
int iShowNumOfThreads = 1;
omp_set_num_threads( 1024 );
#pragma omp parallel num_threads( 1024 )
if( iShowNumOfThreads == 1 )
iShowNumOfThreads = 0;
printf( "Number of threads created: %ld\\n", ( int )omp_get_num_threads() );
for( int i = 0; i < 16777216; i++ )
double dA = ( 2 * 4 * 8 * 16 );
printf( "Done\\n" );
How could I create as many as possible OpenMP threads? For example, more than 32,768?