インターフェース
#include <omp.h>
int omp_get_thread_num();
実行中スレッドのスレッド番号を返します。
スレッド番号は、0からomp_get_num_threads()-1までのいずれかの数値になります。
parallel指定されていない時や、
nest指定なしにparallel内でparallel指定された時には、
1スレッドで実行されるため、返されるスレッド番号は0になります。
サンプルプログラム
サンプルソースコードを示します。
#include <iostream>
#include <omp.h>
void process_sample()
{
}
int main()
{
#pragma omp parallel
{
#pragma omp critical(crit_cout)
{
std::cout << "ichigosample: num. threads = "
<< omp_get_num_threads()
<< " , thread number = " << omp_get_thread_num()
<< std::endl;
}
#pragma omp barrier
}
return 0;
}
実行結果の1例を示します。
ichigosample: num. threads = 4 , thread number = 0
ichigosample: num. threads = 4 , thread number = 2
ichigosample: num. threads = 4 , thread number = 1
ichigosample: num. threads = 4 , thread number = 3
関連ページ
OpenMPの解説 目次