omp_get_thread_num

いちごパック > OpenMPの解説 > omp_get_thread_num

インターフェース

#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の解説 目次