В OpenMP 3.1 возможно иметь сокращение
предложение с min
:
double m;
#pragma omp parallel for reduction(min:m)
for (int i=0;i< n; i++){
if (a[i]*2 < m) {
m = a[i] * 2;
}
return m;
Предположим, мне также нужен индексдля минимальный элемент; есть ли способ использовать для этого предложение reduce
? Я считаю, что альтернативой является запись сокращения вручную с использованием nowait
и Critical
.