Skip to content

Commit 2fa998a

Browse files
author
Alessandro Fanfarillo
committed
Using MPI_THREAD_FUNNELED as default, needs to be selected via macro
1 parent 4997914 commit 2fa998a

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
@@ -731,15 +731,14 @@ PREFIX (init) (int *argc, char ***argv)
731731
if (caf_num_images == 0)
732732
{
733733
int ierr = 0, i = 0, j = 0, rc;
734-
735-
int is_init = 0, prior_thread_level = MPI_THREAD_SINGLE;
734+
int prov_lev = 0;
735+
int is_init = 0, prior_thread_level = MPI_THREAD_FUNNELED;
736736
MPI_Initialized (&is_init);
737737

738738
if (is_init) {
739739
MPI_Query_thread (&prior_thread_level);
740740
}
741741
#ifdef HELPER
742-
int prov_lev=0;
743742
if (is_init) {
744743
prov_lev = prior_thread_level;
745744
caf_owns_mpi = false;
@@ -752,10 +751,12 @@ PREFIX (init) (int *argc, char ***argv)
752751
caf_runtime_error ("MPI_THREAD_MULTIPLE is not supported: %d", prov_lev);
753752
#else
754753
if (is_init) {
755-
caf_owns_mpi = false;
754+
caf_owns_mpi = false;
756755
} else {
757-
MPI_Init (argc, argv);
758-
caf_owns_mpi = true;
756+
MPI_Init_thread (argc, argv, prior_thread_level, &prov_lev);
757+
caf_owns_mpi = true;
758+
if (caf_this_image == 0 && MPI_THREAD_FUNNELED != prov_lev)
759+
caf_runtime_error ("MPI_THREAD_FUNNELED is not supported: %d", prov_lev);
759760
}
760761
#endif
761762
if (unlikely ((ierr != MPI_SUCCESS)))

0 commit comments

Comments
 (0)