OpenMPプログラミング
■ このスレッドは過去ログ倉庫に格納されています
0157デフォルトの名無しさん
2008/08/29(金) 13:00:28俺はスレッド数を取得して解決した気がする。
大雑把に書くとこんな感じ。
int n_thread = omp_get_num_threads();
int imin = INT_MAX;
#pragma omp parallel for shared(imin, array)
for ( int j = 0; j < n_thread; ++j ) {
int imin_ = INT_MAX;
int offset = size/n_thread*j;
for ( int i = offset; i < offset+size/n_thread; ++i ) {
imin_ = min(imin_, array[i]);
}
#pragma omp critical
{
imin = min(imin, imin_);
}
}
■ このスレッドは過去ログ倉庫に格納されています