Skip to content

Commit e5b8772

Browse files
Alessandro FanfarilloDamian Rouson
authored andcommitted
Using MPI_THREAD_FUNNELED as default, needs to be selected via macro
1 parent f4b32f9 commit e5b8772

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

src/mpi/mpi_caf.c

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

744744
if (is_init) {
745745
MPI_Query_thread (&prior_thread_level);
746746
}
747747
#ifdef HELPER
748-
int prov_lev=0;
749748
if (is_init) {
750749
prov_lev = prior_thread_level;
751750
caf_owns_mpi = false;
@@ -758,10 +757,12 @@ PREFIX (init) (int *argc, char ***argv)
758757
caf_runtime_error ("MPI_THREAD_MULTIPLE is not supported: %d", prov_lev);
759758
#else
760759
if (is_init) {
761-
caf_owns_mpi = false;
760+
caf_owns_mpi = false;
762761
} else {
763-
MPI_Init (argc, argv);
764-
caf_owns_mpi = true;
762+
MPI_Init_thread (argc, argv, prior_thread_level, &prov_lev);
763+
caf_owns_mpi = true;
764+
if (caf_this_image == 0 && MPI_THREAD_FUNNELED != prov_lev)
765+
caf_runtime_error ("MPI_THREAD_FUNNELED is not supported: %d", prov_lev);
765766
}
766767
#endif
767768
if (unlikely ((ierr != MPI_SUCCESS)))

0 commit comments

Comments
 (0)