aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Carpet/CarpetLib/src/copy_3d.cc6
-rw-r--r--Carpet/CarpetLib/src/data.cc8
-rw-r--r--Carpet/CarpetLib/src/interpolate_3d_2tl.cc6
-rw-r--r--Carpet/CarpetLib/src/interpolate_3d_3tl.cc6
-rw-r--r--Carpet/CarpetLib/src/interpolate_3d_4tl.cc6
-rw-r--r--Carpet/CarpetLib/src/interpolate_3d_5tl.cc6
-rw-r--r--Carpet/CarpetLib/src/interpolate_eno_3d_3tl.cc6
-rw-r--r--Carpet/CarpetLib/src/restrict_3d_rf2.cc6
-rw-r--r--Carpet/LoopControl/src/lc_hill.c4
-rw-r--r--Carpet/LoopControl/src/loopcontrol.c71
-rw-r--r--Carpet/LoopControl/src/loopcontrol.h21
11 files changed, 83 insertions, 63 deletions
diff --git a/Carpet/CarpetLib/src/copy_3d.cc b/Carpet/CarpetLib/src/copy_3d.cc
index 5c9950f50..36a48df40 100644
--- a/Carpet/CarpetLib/src/copy_3d.cc
+++ b/Carpet/CarpetLib/src/copy_3d.cc
@@ -103,9 +103,9 @@ namespace CarpetLib {
// Loop over region
#pragma omp parallel for
- for (ptrdiff_t k=0; k<regkext; ++k) {
- for (ptrdiff_t j=0; j<regjext; ++j) {
- for (ptrdiff_t i=0; i<regiext; ++i) {
+ for (int k=0; k<regkext; ++k) {
+ for (int j=0; j<regjext; ++j) {
+ for (int i=0; i<regiext; ++i) {
dst [DSTIND3(i, j, k)] = src [SRCIND3(i, j, k)];
diff --git a/Carpet/CarpetLib/src/data.cc b/Carpet/CarpetLib/src/data.cc
index bad80a00a..da1f8ab56 100644
--- a/Carpet/CarpetLib/src/data.cc
+++ b/Carpet/CarpetLib/src/data.cc
@@ -58,7 +58,8 @@ call_operator (void
# if ! defined (CARPET_OPTIMISE)
ibset allregbboxes;
# endif
- _Pragma ("omp parallel") {
+#pragma omp parallel
+ {
int const num_threads = omp_get_num_threads();
int const thread_num = omp_get_thread_num();
// Parallelise in z direction
@@ -83,9 +84,8 @@ call_operator (void
if (not myregbbox.empty()) {
(* the_operator) (src, srcext, dst, dstext, srcbbox, dstbbox, myregbbox);
# if ! defined (NDEBUG) && ! defined (CARPET_OPTIMISE)
- _Pragma ("omp critical") {
- allregbboxes += myregbbox;
- }
+#pragma omp critical
+ allregbboxes += myregbbox;
# endif
}
}
diff --git a/Carpet/CarpetLib/src/interpolate_3d_2tl.cc b/Carpet/CarpetLib/src/interpolate_3d_2tl.cc
index 78170b1ee..0b984b142 100644
--- a/Carpet/CarpetLib/src/interpolate_3d_2tl.cc
+++ b/Carpet/CarpetLib/src/interpolate_3d_2tl.cc
@@ -121,9 +121,9 @@ namespace CarpetLib {
// Loop over region
#pragma omp parallel for
- for (ptrdiff_t k=0; k<regkext; ++k) {
- for (ptrdiff_t j=0; j<regjext; ++j) {
- for (ptrdiff_t i=0; i<regiext; ++i) {
+ for (int k=0; k<regkext; ++k) {
+ for (int j=0; j<regjext; ++j) {
+ for (int i=0; i<regiext; ++i) {
dst [DSTIND3(i, j, k)] =
+ s1fac * src1 [SRCIND3(i, j, k)]
diff --git a/Carpet/CarpetLib/src/interpolate_3d_3tl.cc b/Carpet/CarpetLib/src/interpolate_3d_3tl.cc
index 9a1d0e5d7..c0e8b44fd 100644
--- a/Carpet/CarpetLib/src/interpolate_3d_3tl.cc
+++ b/Carpet/CarpetLib/src/interpolate_3d_3tl.cc
@@ -125,9 +125,9 @@ namespace CarpetLib {
// Loop over region
#pragma omp parallel for
- for (ptrdiff_t k=0; k<regkext; ++k) {
- for (ptrdiff_t j=0; j<regjext; ++j) {
- for (ptrdiff_t i=0; i<regiext; ++i) {
+ for (int k=0; k<regkext; ++k) {
+ for (int j=0; j<regjext; ++j) {
+ for (int i=0; i<regiext; ++i) {
dst [DSTIND3(i, j, k)] =
+ s1fac * src1 [SRCIND3(i, j, k)]
diff --git a/Carpet/CarpetLib/src/interpolate_3d_4tl.cc b/Carpet/CarpetLib/src/interpolate_3d_4tl.cc
index 9892d0bbf..7d4c7fe26 100644
--- a/Carpet/CarpetLib/src/interpolate_3d_4tl.cc
+++ b/Carpet/CarpetLib/src/interpolate_3d_4tl.cc
@@ -132,9 +132,9 @@ namespace CarpetLib {
// Loop over region
#pragma omp parallel for
- for (ptrdiff_t k=0; k<regkext; ++k) {
- for (ptrdiff_t j=0; j<regjext; ++j) {
- for (ptrdiff_t i=0; i<regiext; ++i) {
+ for (int k=0; k<regkext; ++k) {
+ for (int j=0; j<regjext; ++j) {
+ for (int i=0; i<regiext; ++i) {
dst [DSTIND3(i, j, k)] =
+ s1fac * src1 [SRCIND3(i, j, k)]
diff --git a/Carpet/CarpetLib/src/interpolate_3d_5tl.cc b/Carpet/CarpetLib/src/interpolate_3d_5tl.cc
index abad807b1..f4204ea68 100644
--- a/Carpet/CarpetLib/src/interpolate_3d_5tl.cc
+++ b/Carpet/CarpetLib/src/interpolate_3d_5tl.cc
@@ -137,9 +137,9 @@ namespace CarpetLib {
// Loop over region
#pragma omp parallel for
- for (ptrdiff_t k=0; k<regkext; ++k) {
- for (ptrdiff_t j=0; j<regjext; ++j) {
- for (ptrdiff_t i=0; i<regiext; ++i) {
+ for (int k=0; k<regkext; ++k) {
+ for (int j=0; j<regjext; ++j) {
+ for (int i=0; i<regiext; ++i) {
dst [DSTIND3(i, j, k)] =
+ s1fac * src1 [SRCIND3(i, j, k)]
diff --git a/Carpet/CarpetLib/src/interpolate_eno_3d_3tl.cc b/Carpet/CarpetLib/src/interpolate_eno_3d_3tl.cc
index ef3a69053..e84059d10 100644
--- a/Carpet/CarpetLib/src/interpolate_eno_3d_3tl.cc
+++ b/Carpet/CarpetLib/src/interpolate_eno_3d_3tl.cc
@@ -155,9 +155,9 @@ namespace CarpetLib {
// Loop over region
#pragma omp parallel for
- for (ptrdiff_t k=0; k<regkext; ++k) {
- for (ptrdiff_t j=0; j<regjext; ++j) {
- for (ptrdiff_t i=0; i<regiext; ++i) {
+ for (int k=0; k<regkext; ++k) {
+ for (int j=0; j<regjext; ++j) {
+ for (int i=0; i<regiext; ++i) {
T const s1 = src1 [SRCIND3(i, j, k)];
T const s2 = src2 [SRCIND3(i, j, k)];
diff --git a/Carpet/CarpetLib/src/restrict_3d_rf2.cc b/Carpet/CarpetLib/src/restrict_3d_rf2.cc
index e64c4f6e5..26031f304 100644
--- a/Carpet/CarpetLib/src/restrict_3d_rf2.cc
+++ b/Carpet/CarpetLib/src/restrict_3d_rf2.cc
@@ -102,9 +102,9 @@ namespace CarpetLib {
// Loop over coarse region
#pragma omp parallel for
- for (ptrdiff_t k=0; k<regkext; ++k) {
- for (ptrdiff_t j=0; j<regjext; ++j) {
- for (ptrdiff_t i=0; i<regiext; ++i) {
+ for (int k=0; k<regkext; ++k) {
+ for (int j=0; j<regjext; ++j) {
+ for (int i=0; i<regiext; ++i) {
dst [DSTIND3(i, j, k)] = src [SRCIND3(2*i, 2*j, 2*k)];
diff --git a/Carpet/LoopControl/src/lc_hill.c b/Carpet/LoopControl/src/lc_hill.c
index f24b0efae..6ab44dba8 100644
--- a/Carpet/LoopControl/src/lc_hill.c
+++ b/Carpet/LoopControl/src/lc_hill.c
@@ -34,9 +34,9 @@ drand (void)
static
int
-irand (int const imax)
+irand (int const imaxval)
{
- return rand() / (RAND_MAX + 1.0) * imax;
+ return rand() / (RAND_MAX + 1.0) * imaxval;
}
diff --git a/Carpet/LoopControl/src/loopcontrol.c b/Carpet/LoopControl/src/loopcontrol.c
index 6f420e0c1..c03cbf452 100644
--- a/Carpet/LoopControl/src/loopcontrol.c
+++ b/Carpet/LoopControl/src/loopcontrol.c
@@ -295,10 +295,8 @@ lc_stattime_init (lc_stattime_t * restrict const lt,
/* Append to loop statistics list */
-/* _Pragma ("omp critical") { */
- lt->next = ls->stattime_list;
- ls->stattime_list = lt;
-/* } */
+ lt->next = ls->stattime_list;
+ ls->stattime_list = lt;
}
lc_stattime_t *
@@ -450,10 +448,8 @@ lc_statset_init (lc_statset_t * restrict const ls,
ls->time_calc_sum2 = 0.0;
/* Append to loop statistics list */
-/* _Pragma ("omp critical") { */
- ls->next = lm->statset_list;
- lm->statset_list = ls;
-/* } */
+ ls->next = lm->statset_list;
+ lm->statset_list = ls;
}
lc_statset_t *
@@ -510,21 +506,34 @@ lc_statset_find_create (lc_statmap_t * restrict const lm,
/* Initialise loop statistics */
void
-lc_statmap_init (lc_statmap_t * restrict const lm,
+lc_statmap_init (int * restrict const initialised,
+ lc_statmap_t * restrict const lm,
char const * restrict const name)
{
/* Check arguments */
+ assert (initialised);
assert (lm);
- /* Set name */
- lm->name = strdup (name);
-
- /* Initialise list */
- lm->statset_list = NULL;
+#pragma omp single
+ {
+
+ /* Set name */
+ lm->name = strdup (name);
+
+ /* Initialise list */
+ lm->statset_list = NULL;
+
+ /* Append to loop statistics list */
+ lm->next = lc_statmap_list;
+ lc_statmap_list = lm;
+
+ }
- /* Append to loop statistics list */
- lm->next = lc_statmap_list;
- lc_statmap_list = lm;
+#pragma omp single
+ {
+ /* Set this flag only after initialising */
+ * initialised = 1;
+ }
}
@@ -563,7 +572,8 @@ lc_control_init (lc_control_t * restrict const lc,
lc_statset_t * restrict ls;
- _Pragma ("omp single copyprivate (ls)") {
+#pragma omp single copyprivate (ls)
+ {
/* Get number of threads */
int const num_threads = omp_get_num_threads();
@@ -579,7 +589,8 @@ lc_control_init (lc_control_t * restrict const lc,
lc_stattime_t * restrict lt;
- _Pragma ("omp single copyprivate (lt)") {
+#pragma omp single copyprivate (lt)
+ {
lc_state_t state;
@@ -778,7 +789,8 @@ lc_control_finish (lc_control_t * restrict const lc)
lc_statset_t * restrict const ls = lc->statset;
int ignore_iteration;
- _Pragma ("omp single copyprivate (ignore_iteration)") {
+#pragma omp single copyprivate (ignore_iteration)
+ {
DECLARE_CCTK_PARAMETERS;
ignore_iteration = ignore_initial_overhead && lt->time_count == 0.0;
}
@@ -798,7 +810,8 @@ lc_control_finish (lc_control_t * restrict const lc)
double const time_calc_sum2 = pow (time_calc_sum, 2);
/* Update statistics */
- _Pragma ("omp critical") {
+#pragma omp critical
+ {
lt->time_count += 1.0;
lt->time_setup_sum += time_setup_sum;
@@ -816,21 +829,24 @@ lc_control_finish (lc_control_t * restrict const lc)
ls->time_calc_sum2 += time_calc_sum2;
}
- _Pragma ("omp master") {
+#pragma omp master
+ {
lt->last_updated = time_calc_end;
}
- _Pragma ("omp barrier");
+#pragma omp barrier
{
DECLARE_CCTK_PARAMETERS;
if (use_simulated_annealing) {
- _Pragma ("omp single") {
+#pragma omp single
+ {
lc_auto_finish (ls, lt);
}
}
if (use_random_restart_hill_climbing) {
- _Pragma ("omp single") {
+#pragma omp single
+ {
lc_hill_finish (ls, lt);
}
}
@@ -912,11 +928,12 @@ lc_printstats (CCTK_ARGUMENTS)
CCTK_FCALL
void
-CCTK_FNAME (lc_statmap_init) (lc_statmap_t * restrict const lm,
+CCTK_FNAME (lc_statmap_init) (int * restrict const initialised,
+ lc_statmap_t * restrict const lm,
ONE_FORTSTRING_ARG)
{
ONE_FORTSTRING_CREATE (name);
- lc_statmap_init (lm, name);
+ lc_statmap_init (initialised, lm, name);
free (name);
}
diff --git a/Carpet/LoopControl/src/loopcontrol.h b/Carpet/LoopControl/src/loopcontrol.h
index 5d640c3b6..17eb8a8cc 100644
--- a/Carpet/LoopControl/src/loopcontrol.h
+++ b/Carpet/LoopControl/src/loopcontrol.h
@@ -10,6 +10,10 @@
#include <cctk_Arguments.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
#if 0
@@ -247,7 +251,8 @@ lc_max (int const i, int const j)
void
-lc_statmap_init (lc_statmap_t * restrict ls,
+lc_statmap_init (int * restrict initialised,
+ lc_statmap_t * restrict ls,
char const * restrict name);
void
@@ -264,16 +269,10 @@ lc_control_finish (lc_control_t * restrict lc);
#define LC_LOOP3(name, i,j,k, imin,jmin,kmin, imax,jmax,kmax, ilsh,jlsh,klsh) \
do { \
- static lc_statmap_t lc_lm; \
static int lc_initialised = 0; \
+ static lc_statmap_t lc_lm; \
if (! lc_initialised) { \
- _Pragma ("omp single") { \
- lc_statmap_init (& lc_lm, #name); \
- } \
- _Pragma ("omp single") { \
- /* Set this flag only after initialising */ \
- lc_initialised = 1; \
- } \
+ lc_statmap_init (& lc_initialised, & lc_lm, #name); \
} \
lc_control_t lc_lc; \
lc_control_init (& lc_lc, & lc_lm, \
@@ -315,6 +314,10 @@ lc_control_finish (lc_control_t * restrict lc);
void
lc_printstats (CCTK_ARGUMENTS);
+#ifdef __cplusplus
+}
+#endif
+
#endif