From 40d2240a97bde83da6286c298df4d7aea8df01ac Mon Sep 17 00:00:00 2001 From: Jordi Inglada <jordi.inglada@cesbio.cnes.fr> Date: Fri, 2 Mar 2018 11:14:03 +0100 Subject: [PATCH] ENH: parallel loops when possible --- Modules/Learning/Sampling/include/otbSampleAugmentation.h | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Modules/Learning/Sampling/include/otbSampleAugmentation.h b/Modules/Learning/Sampling/include/otbSampleAugmentation.h index cbfd1d3882..40f62d0cb8 100644 --- a/Modules/Learning/Sampling/include/otbSampleAugmentation.h +++ b/Modules/Learning/Sampling/include/otbSampleAugmentation.h @@ -46,6 +46,7 @@ SampleType estimateStds(SampleVectorType samples) const auto nbComponents = samples[0].size(); SampleType stds(nbComponents, 0.0); SampleType means(nbComponents, 0.0); +#pragma omp parallel for for(size_t i=0; i<nbSamples; ++i) { for(size_t j=0; j<nbComponents; ++j) @@ -57,9 +58,10 @@ SampleType estimateStds(SampleVectorType samples) means[j] = muNew; } } - for(auto std : stds) +#pragma omp parallel for + for(size_t j=0; j<nbComponents; ++j) { - std = std::sqrt(std/nbSamples); + stds[j] = std::sqrt(stds[j]/nbSamples); } return stds; } @@ -73,6 +75,7 @@ void replicateSamples(const SampleVectorType& inSamples, SampleVectorType& newSamples) { newSamples.resize(nbSamples); +#pragma omp parallel for for(size_t i=0; i<nbSamples; ++i) { newSamples[i] = inSamples[i%inSamples.size()]; -- GitLab