From 1a75f97707101285753c33c4e619c09a30b0ed97 Mon Sep 17 00:00:00 2001 From: schnetter Date: Sat, 23 Jan 2010 20:45:40 +0000 Subject: Add OpenMP parallelisation git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinBase/ADMBase/trunk@50 d576a68a-b34a-40ae-82fc-004fa1a9d16f --- src/Initialisation.c | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Initialisation.c b/src/Initialisation.c index ff27584..ea389a1 100644 --- a/src/Initialisation.c +++ b/src/Initialisation.c @@ -76,6 +76,7 @@ void ADMBase_CartesianMinkowski(CCTK_ARGUMENTS) DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { gxx[i] = 1.0; @@ -97,9 +98,9 @@ void ADMBase_CartesianMinkowski(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::metric") > 1) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { - gxx_p[i] = 1.0; gyy_p[i] = 1.0; gzz_p[i] = 1.0; @@ -112,9 +113,9 @@ void ADMBase_CartesianMinkowski(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::metric") > 2) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { - gxx_p_p[i] = 1.0; gyy_p_p[i] = 1.0; gzz_p_p[i] = 1.0; @@ -122,16 +123,15 @@ void ADMBase_CartesianMinkowski(CCTK_ARGUMENTS) gxy_p_p[i] = 0.0; gxz_p_p[i] = 0.0; gyz_p_p[i] = 0.0; - } } if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::curv") > 1) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { - kxx_p[i] = 0.0; kyy_p[i] = 0.0; kzz_p[i] = 0.0; @@ -144,6 +144,7 @@ void ADMBase_CartesianMinkowski(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::curv") > 2) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { @@ -182,6 +183,7 @@ void ADMBase_LapseOne(CCTK_ARGUMENTS) DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { alp[i] = 1.0; @@ -189,6 +191,7 @@ void ADMBase_LapseOne(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::lapse") > 1) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { alp_p[i] = 1.0; @@ -197,6 +200,7 @@ void ADMBase_LapseOne(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::lapse") > 2) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { alp_p_p[i] = 1.0; @@ -225,6 +229,7 @@ void ADMBase_ShiftZero(CCTK_ARGUMENTS) DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { betax[i] = 0.0; @@ -234,6 +239,7 @@ void ADMBase_ShiftZero(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::shift") > 1) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { betax_p[i] = 0.0; @@ -244,6 +250,7 @@ void ADMBase_ShiftZero(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::shift") > 2) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { betax_p_p[i] = 0.0; @@ -274,6 +281,7 @@ void ADMBase_DtLapseZero(CCTK_ARGUMENTS) DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { dtalp[i] = 0.0; @@ -281,6 +289,7 @@ void ADMBase_DtLapseZero(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::dtlapse") > 1) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { dtalp_p[i] = 0.0; @@ -289,6 +298,7 @@ void ADMBase_DtLapseZero(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::dtlapse") > 2) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { dtalp_p_p[i] = 0.0; @@ -317,6 +327,7 @@ void ADMBase_DtShiftZero(CCTK_ARGUMENTS) DECLARE_CCTK_ARGUMENTS; DECLARE_CCTK_PARAMETERS; +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { dtbetax[i] = 0.0; @@ -326,6 +337,7 @@ void ADMBase_DtShiftZero(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::dtshift") > 1) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { dtbetax_p[i] = 0.0; @@ -336,6 +348,7 @@ void ADMBase_DtShiftZero(CCTK_ARGUMENTS) if (CCTK_ActiveTimeLevels(cctkGH, "ADMBase::dtshift") > 2) { +#pragma omp parallel for for(i = 0; i < cctk_lsh[0]*cctk_lsh[1]*cctk_lsh[2]; i++) { dtbetax_p_p[i] = 0.0; -- cgit v1.2.3