Skip to content

Commit 244c628

Browse files
authored
Merge branch 'master' into issue-422-implement-by-refs
2 parents a2df923 + f824986 commit 244c628

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

src/mpi/mpi_caf.c

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -736,15 +736,14 @@ PREFIX (init) (int *argc, char ***argv)
736736
if (caf_num_images == 0)
737737
{
738738
int ierr = 0, i = 0, j = 0, rc;
739-
740-
int is_init = 0, prior_thread_level = MPI_THREAD_SINGLE;
739+
int prov_lev = 0;
740+
int is_init = 0, prior_thread_level = MPI_THREAD_FUNNELED;
741741
MPI_Initialized (&is_init);
742742

743743
if (is_init) {
744744
MPI_Query_thread (&prior_thread_level);
745745
}
746746
#ifdef HELPER
747-
int prov_lev=0;
748747
if (is_init) {
749748
prov_lev = prior_thread_level;
750749
caf_owns_mpi = false;
@@ -757,10 +756,12 @@ PREFIX (init) (int *argc, char ***argv)
757756
caf_runtime_error ("MPI_THREAD_MULTIPLE is not supported: %d", prov_lev);
758757
#else
759758
if (is_init) {
760-
caf_owns_mpi = false;
759+
caf_owns_mpi = false;
761760
} else {
762-
MPI_Init (argc, argv);
763-
caf_owns_mpi = true;
761+
MPI_Init_thread (argc, argv, prior_thread_level, &prov_lev);
762+
caf_owns_mpi = true;
763+
if (caf_this_image == 0 && MPI_THREAD_FUNNELED != prov_lev)
764+
caf_runtime_error ("MPI_THREAD_FUNNELED is not supported: %d", prov_lev);
764765
}
765766
#endif
766767
if (unlikely ((ierr != MPI_SUCCESS)))
@@ -6630,13 +6631,13 @@ GEN_REDUCTION (do_max_int1, int8_t,
66306631
inoutvec[i] = invec[i] <= inoutvec[i] ? inoutvec[i] : invec[i])
66316632
#endif
66326633

6633-
#ifndef MPI_INTEGER2
6634-
GEN_REDUCTION (do_sum_int1, int16_t, inoutvec[i] += invec[i])
6635-
GEN_REDUCTION (do_min_int1, int16_t,
6636-
inoutvec[i] = invec[i] >= inoutvec[i] ? inoutvec[i] : invec[i])
6637-
GEN_REDUCTION (do_max_int1, int16_t,
6638-
inoutvec[i] = invec[i] <= inoutvec[i] ? inoutvec[i] : invec[i])
6639-
#endif
6634+
/* #ifndef MPI_INTEGER2 */
6635+
/* GEN_REDUCTION (do_sum_int1, int16_t, inoutvec[i] += invec[i]) */
6636+
/* GEN_REDUCTION (do_min_int1, int16_t, */
6637+
/* inoutvec[i] = invec[i] >= inoutvec[i] ? inoutvec[i] : invec[i]) */
6638+
/* GEN_REDUCTION (do_max_int1, int16_t, */
6639+
/* inoutvec[i] = invec[i] <= inoutvec[i] ? inoutvec[i] : invec[i]) */
6640+
/* #endif */
66406641

66416642
#if defined(MPI_INTEGER16) && defined(GFC_INTEGER_16)
66426643
GEN_REDUCTION (do_sum_int1, GFC_INTEGER_16, inoutvec[i] += invec[i])

0 commit comments

Comments
 (0)