From 40817a09312b3b65b3c7d05b961a9e79258a9093 Mon Sep 17 00:00:00 2001 From: Caner Candan Date: Sun, 26 Dec 2010 19:09:08 +0100 Subject: [PATCH] * changed apply.h to use new parallelization s parameters --- eo/src/apply.h | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/eo/src/apply.h b/eo/src/apply.h index deb13da8..d8bc9796 100644 --- a/eo/src/apply.h +++ b/eo/src/apply.h @@ -26,7 +26,7 @@ #ifndef _apply_h #define _apply_h -#include +#include #include #include #include @@ -39,14 +39,22 @@ template void apply(eoUF& _proc, std::vector& _pop) { + size_t size = _pop.size(); + double t1 = omp_get_wtime(); - size_t size = _pop.size(); -#pragma omp parallel for if(eo::parallelizeLoopParam.value()) //default(none) shared(_proc, _pop, size) - for (size_t i = 0; i < size; ++i) - { - _proc(_pop[i]); - } + if (!eo::parallel.isDynamic()) + { +#pragma omp parallel for if(eo::parallel.isEnabled()) //default(none) shared(_proc, _pop, size) + for (size_t i = 0; i < size; ++i) { _proc(_pop[i]); } + } + else + { +#pragma omp parallel for schedule(dynamic) if(eo::parallel.isEnabled()) + //doesnot work with gcc 4.1.2 + //default(none) shared(_proc, _pop, size) + for (size_t i = 0; i < size; ++i) { _proc(_pop[i]); } + } double t2 = omp_get_wtime(); @@ -63,7 +71,9 @@ template void omp_apply(eoUF& _proc, std::vector& _pop) { size_t size = _pop.size(); -#pragma omp parallel for if(eo::parallelizeLoopParam.value()) //default(none) shared(_proc, _pop, size) +#pragma omp parallel for if(eo::parallel.isEnabled()) + //doesnot work with gcc 4.1.2 + //default(none) shared(_proc, _pop, size) for (size_t i = 0; i < size; ++i) { _proc(_pop[i]); @@ -79,7 +89,9 @@ template void omp_dynamic_apply(eoUF& _proc, std::vector& _pop) { size_t size = _pop.size(); -#pragma omp parallel for if(eo::parallelizeLoopParam.value()) schedule(dynamic) //default(none) shared(_proc, _pop, size) +#pragma omp parallel for if(eo::parallel.isEnabled()) schedule(dynamic) + //doesnot work with gcc 4.1.2 + //default(none) shared(_proc, _pop, size) for (size_t i = 0; i < size; ++i) { _proc(_pop[i]);