From cacde80b30d4f285b082b94a08da3c42135077fa Mon Sep 17 00:00:00 2001 From: Thomas Preud'homme Date: Wed, 1 Feb 2012 18:18:06 +0100 Subject: [PATCH] Allow automatic test run for lattice --- pipepar/.gitignore | 2 +- pipepar/Makefile | 22 ++++++++++++++++++---- pipepar/lattice.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 65 insertions(+), 5 deletions(-) diff --git a/pipepar/.gitignore b/pipepar/.gitignore index 1d68f94..64646f9 100644 --- a/pipepar/.gitignore +++ b/pipepar/.gitignore @@ -1,5 +1,5 @@ fmr_omp-str_base-prog* fmr_omp-str_base.txt -lattice +lattice-prog-* pipeline_template logs/* diff --git a/pipepar/Makefile b/pipepar/Makefile index 8a64406..3339ec5 100644 --- a/pipepar/Makefile +++ b/pipepar/Makefile @@ -1,14 +1,28 @@ CFLAGS?=-Wall -Wextra -all: fmr_omp-str_base-prog fmr_omp-str_base-prog-fopenmp +all: allfmr -runall: runfmrprog runfmrprog-fopenmp +allfmr: fmr_omp-str_base-prog fmr_omp-str_base-prog-fopenmp + +alllattice: lattice-prog-1 lattice-prog-fopenmp-2 lattice-prog-fopenmp-4 lattice-prog-fopenmp-8 + +runall: runallfmr runalllattice + +runallfmr: runfmrprog runfmrprog-fopenmp + +runalllattice: runlatticeprog-1 runlatticeprog-fopenmp-2 runlatticeprog-fopenmp-4 runlatticeprog-fopenmp-8 fmr_omp-str_base-%: fmr_omp-str_base.c gcc $(CFLAGS) $(subst prog,,$*) -o $@ $< -lm runfmr%: fmr_omp-str_base-% - perf stat -r 10 ./$< + script -c "perf stat -r 10 ./$< input_20.dat" logs/$<-$$(date +%Y-%m-%d_%H-%M-%S).log rm fmr_omp-str_base-$*.txt -.PHONY: runall runfmr% +lattice-prog-%: lattice.c + NUM=$*;OPT=-$*;gcc $(CFLAGS) -DNB_CORES=$${NUM##*-} $${OPT%-*} -o $@ $< + +runlattice%: lattice-% + script -c "perf stat -r 10 ./$< -p 50" logs/$<-$$(date +%Y-%m-%d_%H-%M-%S).log + +.PHONY: all allfmr alllattice runall runfmr runfmr% runlattice runlattice% diff --git a/pipepar/lattice.c b/pipepar/lattice.c index 1fe4338..2c70444 100644 --- a/pipepar/lattice.c +++ b/pipepar/lattice.c @@ -334,9 +334,55 @@ int compute_metrics(void) p_matrix[j / AAC_SCE_PROT_PER_CORE_BIT][j % AAC_SCE_PROT_PER_CORE_BIT] = line; } +#if NB_CORES > 1 +#if NB_CORES == 2 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, i) +#elif NB_CORES == 3 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, state2, i) +#elif NB_CORES == 4 #pragma omp parallel default (none) \ shared (nb_packets, lattice_metrics, p_matrix, seed) \ private (state0, state1, state2, state3, i) +#elif NB_CORES == 5 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, state2, state3, state4, i) +#elif NB_CORES == 6 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, state2, state3, state4, state5, i) +#elif NB_CORES == 7 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, state2, state3, state4, state5, state6, i) +#elif NB_CORES == 8 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, state2, state3, state4, state5, state6, state7, i) +#elif NB_CORES == 9 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, state2, state3, state4, state5, state6, state7, state8, i) +#elif NB_CORES == 10 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, state2, state3, state4, state5, state6, state7, state8, state9, i) +#elif NB_CORES == 11 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, state2, state3, state4, state5, state6, state7, state8, state9, state10, i) +#elif NB_CORES == 12 +#pragma omp parallel default (none) \ + shared (nb_packets, lattice_metrics, p_matrix, seed) \ + private (state0, state1, state2, state3, state4, state5, state6, state7, state8, state9, state10, state11, i) +#else +#error Only supporting NB_CORES <= 12 +#endif +#endif { #pragma omp single {