Skip to content

Commit a8e9c00

Browse files
committed
Add more logging.
1 parent 77551bf commit a8e9c00

File tree

1 file changed

+43
-20
lines changed

1 file changed

+43
-20
lines changed

src/mpi/mpi_caf.c

Lines changed: 43 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -945,7 +945,20 @@ PREFIX(init) (int *argc, char ***argv)
945945
* memory. */
946946
ierr = MPI_Win_create_dynamic(MPI_INFO_NULL, CAF_COMM_WORLD,
947947
&global_dynamic_win); chk_err(ierr);
948+
948949
CAF_Win_lock_all(global_dynamic_win);
950+
#ifdef EXTRA_DEBUG_OUTPUT
951+
if (caf_this_image == 1)
952+
{
953+
int *win_model;
954+
flag = 0;
955+
ierr = MPI_Win_get_attr(global_dynamic_win, MPI_WIN_MODEL, &win_model, &flag);
956+
chk_err(ierr);
957+
dprint("The mpi memory model is: %s (0x%x, %d).\n",
958+
*win_model == MPI_WIN_UNIFIED ? "unified " : "separate",
959+
*win_model, flag);
960+
}
961+
#endif
949962
}
950963
}
951964

@@ -1010,6 +1023,7 @@ finalize_internal(int status_code)
10101023
/* Add a conventional barrier to prevent images from quitting too early. */
10111024
if (status_code == 0)
10121025
{
1026+
dprint("In barrier for finalize...");
10131027
ierr = MPI_Barrier(CAF_COMM_WORLD); chk_err(ierr);
10141028
}
10151029
else
@@ -1056,7 +1070,7 @@ finalize_internal(int status_code)
10561070
CAF_Win_unlock_all(*p);
10571071
#ifdef GCC_GE_7
10581072
/* Unregister the window to the descriptors when freeing the token. */
1059-
dprint("MPI_Win_free(p);\n");
1073+
dprint("MPI_Win_free(%p)\n", p);
10601074
ierr = MPI_Win_free(p); chk_err(ierr);
10611075
free(cur_tok->token);
10621076
#else // GCC_GE_7
@@ -1172,6 +1186,8 @@ PREFIX(register) (size_t size, caf_register_t type, caf_token_t *token,
11721186
else
11731187
actual_size = size;
11741188

1189+
dprint("size = %zd, type = %d, token = %p, desc = %p\n", size, type, token,
1190+
desc);
11751191
switch (type)
11761192
{
11771193
case CAF_REGTYPE_COARRAY_ALLOC_REGISTER_ONLY:
@@ -1192,9 +1208,10 @@ PREFIX(register) (size_t size, caf_register_t type, caf_token_t *token,
11921208
#ifdef EXTRA_DEBUG_OUTPUT
11931209
ierr = MPI_Get_address(*token, &mpi_address); chk_err(ierr);
11941210
#endif
1195-
dprint("Attach slave token %p (mpi-address: %zd) to "
1211+
dprint("Attach slave token %p (size: %zd, mpi-address: %p) to "
11961212
"global_dynamic_window = %d\n",
1197-
slave_token, mpi_address, global_dynamic_win);
1213+
slave_token, sizeof(mpi_caf_slave_token_t), mpi_address,
1214+
global_dynamic_win);
11981215

11991216
/* Register the memory for auto freeing. */
12001217
struct caf_allocated_slave_tokens_t *tmp =
@@ -1214,7 +1231,7 @@ PREFIX(register) (size_t size, caf_register_t type, caf_token_t *token,
12141231
#ifdef EXTRA_DEBUG_OUTPUT
12151232
ierr = MPI_Get_address(mem, &mpi_address); chk_err(ierr);
12161233
#endif
1217-
dprint("Attach mem %p (mpi-address: %zd) to global_dynamic_window = "
1234+
dprint("Attach mem %p (mpi-address: %p) to global_dynamic_window = "
12181235
"%d on slave_token %p, size %zd, ierr: %d\n",
12191236
mem, mpi_address, global_dynamic_win, slave_token,
12201237
actual_size, ierr);
@@ -1231,8 +1248,8 @@ PREFIX(register) (size_t size, caf_register_t type, caf_token_t *token,
12311248
}
12321249
}
12331250
CAF_Win_lock_all(global_dynamic_win);
1234-
dprint("Slave token %p on exit: mpi_caf_slave_token_t { desc: %p }\n",
1235-
slave_token, slave_token->desc);
1251+
dprint("Slave token %p on exit: mpi_caf_slave_token_t { memptr: %p, desc: %p }\n",
1252+
slave_token, slave_token->memptr, slave_token->desc);
12361253
}
12371254
break;
12381255
default:
@@ -1282,8 +1299,8 @@ PREFIX(register) (size_t size, caf_register_t type, caf_token_t *token,
12821299
* register. */
12831300
mpi_token->memptr = mem;
12841301
dprint("Token %p on exit: mpi_caf_token_t "
1285-
"{ (local_)memptr: %p, memptr_win: %d }\n",
1286-
mpi_token, mpi_token->memptr, mpi_token->memptr_win);
1302+
"{ (local_)memptr: %p (size: %zd), memptr_win: %d }\n",
1303+
mpi_token, mpi_token->memptr, size, mpi_token->memptr_win);
12871304
} // default:
12881305
break;
12891306
} // switch
@@ -3928,7 +3945,7 @@ get_data(void *ds, mpi_caf_token_t *token, MPI_Aint offset, int dst_type,
39283945
ds, win, image_index + 1, offset, src_size, dst_size,
39293946
dst_type, dst_kind, src_type, src_kind);
39303947
else
3931-
dprint("%p = global_win(%d) offset: %zd (%zd) of size %zd -> %zd, "
3948+
dprint("%p = global_win(%d) offset: %zd (0x%x) of size %zd -> %zd, "
39323949
"dst type %d(%d), src type %d(%d)\n",
39333950
ds, image_index + 1, offset, offset, src_size, dst_size,
39343951
dst_type, dst_kind, src_type, src_kind);
@@ -4064,9 +4081,10 @@ get_for_ref(caf_reference_t *ref, size_t *i, size_t dst_index,
40644081
return;
40654082
}
40664083

4067-
dprint("sr_offset = %zd, sr = %p, desc_offset = %zd, src = %p, "
4068-
"sr_glb = %d, desc_glb = %d\n",
4069-
sr_byte_offset, sr, desc_byte_offset, src, sr_global, desc_global);
4084+
dprint("caf_ref = %p (type = %d), sr_offset = %zd, sr = %p, rdesc = %p, "
4085+
"desc_offset = %zd, src = %p, sr_glb = %d, desc_glb = %d, src_dim = %d\n",
4086+
ref, ref->type, sr_byte_offset, sr, rdesc, desc_byte_offset, src,
4087+
sr_global, desc_global, src_dim);
40704088

40714089
if (ref->next == NULL)
40724090
{
@@ -4233,6 +4251,7 @@ get_for_ref(caf_reference_t *ref, size_t *i, size_t dst_index,
42334251
}
42344252
else
42354253
{
4254+
dprint("Fetching remote data.\n");
42364255
ierr = MPI_Get(&src_desc_data,
42374256
sizeof_desc_for_rank(ref_rank), MPI_BYTE,
42384257
memptr_win_rank, desc_byte_offset,
@@ -4247,8 +4266,8 @@ get_for_ref(caf_reference_t *ref, size_t *i, size_t dst_index,
42474266
sr_byte_offset = 0;
42484267
desc_byte_offset = 0;
42494268
#ifdef EXTRA_DEBUG_OUTPUT
4250-
dprint("remote desc rank: %zd (ref_rank: %zd)\n",
4251-
GFC_DESCRIPTOR_RANK(src), ref_rank);
4269+
dprint("remote desc rank: %zd, base: %p\n", GFC_DESCRIPTOR_RANK(src),
4270+
src->base_addr);
42524271
for (int r = 0; r < GFC_DESCRIPTOR_RANK(src); ++r)
42534272
{
42544273
dprint("remote desc dim[%d] = (lb=%zd, ub=%zd, stride=%zd)\n",
@@ -4617,7 +4636,8 @@ PREFIX(get_by_ref) (caf_token_t token, int image_index,
46174636

46184637
check_image_health(global_dynamic_win_rank, stat);
46194638

4620-
dprint("Entering get_by_ref(may_require_tmp = %d).\n", may_require_tmp);
4639+
dprint("Entering get_by_ref(may_require_tmp = %d), win_rank = %d, global_rank = %d.\n",
4640+
may_require_tmp, memptr_win_rank, global_dynamic_win_rank);
46214641

46224642
/* Compute the size of the result. In the beginning size just counts the
46234643
* number of elements. */
@@ -4627,8 +4647,9 @@ PREFIX(get_by_ref) (caf_token_t token, int image_index,
46274647
CAF_Win_lock(MPI_LOCK_SHARED, memptr_win_rank, mpi_token->memptr_win);
46284648
while (riter)
46294649
{
4630-
dprint("offset = %zd, remote_mem = %p, access_data(global_win) = %d\n",
4631-
data_offset, remote_memptr, access_data_through_global_win);
4650+
dprint("caf_ref = %p, offset = %zd, remote_mem = %p, global_win(data, desc)) = (%d, %d)\n",
4651+
riter, data_offset, remote_memptr, access_data_through_global_win,
4652+
access_desc_through_global_win);
46324653
switch (riter->type)
46334654
{
46344655
case CAF_REF_COMPONENT:
@@ -4642,6 +4663,8 @@ PREFIX(get_by_ref) (caf_token_t token, int image_index,
46424663
MPI_Aint_add((MPI_Aint)remote_memptr, data_offset),
46434664
stdptr_size, MPI_BYTE, global_dynamic_win);
46444665
chk_err(ierr);
4666+
dprint("global_win access: remote_memptr(old) = %p, remote_memptr(new) = %p, offset = %zd.\n",
4667+
remote_base_memptr, remote_memptr, data_offset);
46454668
/* On the second indirection access also the remote descriptor
46464669
* using the global window. */
46474670
access_desc_through_global_win = true;
@@ -4652,8 +4675,8 @@ PREFIX(get_by_ref) (caf_token_t token, int image_index,
46524675
ierr = MPI_Get(&remote_memptr, stdptr_size, MPI_BYTE, memptr_win_rank,
46534676
data_offset, stdptr_size, MPI_BYTE,
46544677
mpi_token->memptr_win); chk_err(ierr);
4655-
dprint("get(custom_token %d), offset = %zd, res. remote_mem = %p\n",
4656-
mpi_token->memptr_win, data_offset, remote_memptr);
4678+
dprint("get(custom_token %d): remote_memptr(old) = %p, remote_memptr(new) = %p, offset = %zd\n",
4679+
mpi_token->memptr_win, remote_base_memptr, remote_memptr, data_offset);
46574680
/* All future access is through the global dynamic window. */
46584681
access_data_through_global_win = true;
46594682
}
@@ -4701,7 +4724,7 @@ PREFIX(get_by_ref) (caf_token_t token, int image_index,
47014724
src = mpi_token->desc;
47024725

47034726
#ifdef EXTRA_DEBUG_OUTPUT
4704-
dprint("remote desc rank: %zd\n", GFC_DESCRIPTOR_RANK(src));
4727+
dprint("remote desc rank: %zd, base_addr: %p\n", GFC_DESCRIPTOR_RANK(src), src->base_addr);
47054728
for (i = 0; i < GFC_DESCRIPTOR_RANK(src); ++i)
47064729
{
47074730
dprint("remote desc dim[%zd] = (lb=%zd, ub=%zd, stride=%zd)\n",

0 commit comments

Comments
 (0)