私の問題は、openMPとの並列化ができないということです。openMPとの並列スレッドがありません
私のシステム:2.27GHz @ Ubuntuの11.4 インテル(R)Core(TM)i5ののCPUのM 430
コンパイラ: G ++のバージョン:これでフラグを4.5.2 -fopenmp
:私は次の出力を参照してくださいのでint nthreads, tid, procs, maxt, inpar, dynamic, nested;
// Start parallel region
#pragma omp parallel private(nthreads, tid) {
// Obtain thread number
tid = omp_get_thread_num();
// Only master thread does this
if (tid == 0)
{
printf("Thread %d getting environment info...\n", tid);
// Get environment information
procs = omp_get_num_procs();
nthreads = omp_get_num_threads();
maxt = omp_get_max_threads();
inpar = omp_in_parallel();
dynamic = omp_get_dynamic();
nested = omp_get_nested();
// Print environment information
printf("Number of processors = %d\n", procs);
printf("Number of threads = %d\n", nthreads);
printf("Max threads = %d\n", maxt);
printf("In parallel? = %d\n", inpar);
printf("Dynamic threads enabled? = %d\n", dynamic);
printf("Nested parallelism supported? = %d\n", nested);
}
}
:私は唯一つのスレッドがあることがわかりコード210
Number of processors = 4
Number of threads = 1
Max threads = 4
In parallel? = 0
Dynamic threads enabled? = 0
Nested parallelism supported? = 0
問題点は何ですか?
助けてもらえますか?私はそれが正常にコンパイルするため
#pragma omp parallel private(nthreads, tid)
{
に
#pragma omp parallel private(nthreads, tid) {
を変更しなければならなかったが
OMP_NUM_THREADS環境変数を設定しましたか? –
ねえ! いいえ、私はしていません。しかし、omp_set_num_threads(2)を実行した後。プロセッサの 数=スレッド並行= 1つの 最大スレッド= 2 の4 数: 私は次の出力を得ましたか? = 0 ダイナミックスレッドが有効になっていますか? = 0 ネストされた並列処理がサポートされていますか? = 0 スレッド数はまだ1です。 – Sankp