From 4fa9811144c7c7c0d8a94b074aec3a0e855c54f0 Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Wed, 1 Feb 2012 19:10:54 +0100 Subject: [PATCH] Support NB_CORES between 1 and 12 out of the box Prepare an "omp parallel" pragma for NB_CORES between 2 and 12. This avoid needing any change in the file for NB_CORES between 1 and 12. --- pipepar/pipeline_template.c | 46 +++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/pipepar/pipeline_template.c b/pipepar/pipeline_template.c index bcc997c..33d183d 100644 --- a/pipepar/pipeline_template.c +++ b/pipepar/pipeline_template.c @@ -184,9 +184,55 @@ int compute_metrics(void) #endif #endif +#if NB_CORES > 1 +#if NB_CORES == 2 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, i) +#elif NB_CORES == 3 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, state2, i) +#elif NB_CORES == 4 #pragma omp parallel default (none) \ shared (nb_packets, seed) \ private (state1, state2, state3, i) +#elif NB_CORES == 5 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, state2, state3, state4, i) +#elif NB_CORES == 6 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, state2, state3, state4, state5, i) +#elif NB_CORES == 7 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, state2, state3, state4, state5, state6, i) +#elif NB_CORES == 8 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, state2, state3, state4, state5, state6, state7, i) +#elif NB_CORES == 9 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, state2, state3, state4, state5, state6, state7, state8, i) +#elif NB_CORES == 10 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, state2, state3, state4, state5, state6, state7, state8, state9, i) +#elif NB_CORES == 11 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, state2, state3, state4, state5, state6, state7, state8, state9, state10, i) +#elif NB_CORES == 12 +#pragma omp parallel default (none) \ + shared (nb_packets, seed) \ + private (state1, state2, state3, state4, state5, state6, state7, state8, state9, state11, i) +#else +#error Only supporting NB_CORES <= 12 +#endif +#endif { #pragma omp single {