aboutsummaryrefslogtreecommitdiff
path: root/src/InitialCopy.c
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2022-09-06 13:45:22 +0200
committerAnton Khirnov <anton@khirnov.net>2022-09-06 13:45:22 +0200
commit250f4e66a7af781750c7743e04332e5fe5abc859 (patch)
treee584e62a9f24ec9e64cf84fb1a27587879b15e34 /src/InitialCopy.c
parent827ccac987a0b297ae02c41acee95689af5a129b (diff)
Parallelize on the level of variables rather than grid points.HEADmaster
The latter has higher overhead.
Diffstat (limited to 'src/InitialCopy.c')
-rw-r--r--src/InitialCopy.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/InitialCopy.c b/src/InitialCopy.c
index 4c0ee87..176e2de 100644
--- a/src/InitialCopy.c
+++ b/src/InitialCopy.c
@@ -122,6 +122,7 @@ void MoL_InitialCopy(CCTK_ARGUMENTS)
totalsize *= cctk_ash[arraydim];
}
+#pragma omp parallel for
for (var = 0; var < MoLNumEvolvedVariables; var++)
{
const int nsrc = 1;
@@ -236,6 +237,7 @@ void MoL_InitialCopy(CCTK_ARGUMENTS)
current level to the scratch space, then do the copy
*/
+#pragma omp parallel for
for (var = 0; var < MoLNumSandRVariables; var++)
{
@@ -280,6 +282,7 @@ void MoL_InitialCopy(CCTK_ARGUMENTS)
Now do the constrained variables.
*/
+#pragma omp parallel for
for (var = 0; var < MoLNumConstrainedVariables; var++)
{
@@ -316,7 +319,6 @@ void MoL_InitialCopy(CCTK_ARGUMENTS)
if (PreviousVar && CurrentVar)
{
-#pragma omp parallel for
for (int k = 0; k < cctk_ash[2]; k++) {
int offset = CCTK_GFINDEX3D(cctkGH, 0, y_idx, k);
memcpy(CurrentVar + offset, PreviousVar + offset, cctk_ash[0] * sizeof(double));
@@ -389,6 +391,7 @@ void MoL_InitRHS(CCTK_ARGUMENTS)
totalsize *= cctk_ash[arraydim];
}
+#pragma omp parallel for
for (var = 0; var < MoLNumEvolvedVariables; var++)
{
StorageOn = CCTK_QueryGroupStorageI(cctkGH,
@@ -415,6 +418,7 @@ void MoL_InitRHS(CCTK_ARGUMENTS)
NULL, NULL, NULL, 0);
}
+#pragma omp parallel for
for (var = 0; var < MoLNumEvolvedArrayVariables; var++)
{
RHSVar = (CCTK_REAL*)CCTK_VarDataPtrI(cctkGH, 0,
@@ -440,7 +444,6 @@ void MoL_InitRHS(CCTK_ARGUMENTS)
{
if (RHSVar)
{
-#pragma omp parallel for
for (index = 0; index < arraytotalsize; index++)
{
RHSVar[index] = 0;
@@ -461,6 +464,7 @@ void MoL_InitRHS(CCTK_ARGUMENTS)
#ifdef MOLDOESCOMPLEX
+#pragma omp parallel for
for (var = 0; var < MoLNumEvolvedComplexVariables; var++)
{
@@ -483,7 +487,6 @@ void MoL_InitRHS(CCTK_ARGUMENTS)
RHSComplexVariableIndex[var]);
if (RHSVar)
{
-#pragma omp parallel for
for (index = 0; index < totalsize; index++)
{
RHSVar[index] = 0;