Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
codes
codes
Commits
e35f07f6
Commit
e35f07f6
authored
Jun 07, 2017
by
Misbah Mubarak
Browse files
Fixing statistics in MPI sim layer, issuing warning for unmatched sends and receives
parent
a4f72c68
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/network-workloads/model-net-mpi-replay.c
View file @
e35f07f6
...
...
@@ -35,7 +35,7 @@
static
int
msg_size_hash_compare
(
void
*
key
,
struct
qhash_head
*
link
);
/* Message tracking works in sequential mode only! */
/*
NOTE:
Message tracking works in sequential mode only! */
int
enable_msg_tracking
=
0
;
tw_lpid
TRACK_LP
=
-
1
;
...
...
@@ -288,7 +288,7 @@ struct nw_message
double
saved_recv_time
;
double
saved_wait_time
;
double
saved_delay
;
int
16
_t
saved_num_bytes
;
int
32
_t
saved_num_bytes
;
}
rc
;
};
...
...
@@ -1268,6 +1268,10 @@ static void codes_exec_mpi_send(nw_state* s,
struct
codes_workload_op
*
mpi_op
,
int
is_rend
)
{
bf
->
c3
=
0
;
bf
->
c1
=
0
;
bf
->
c4
=
0
;
/* model-net event */
int
global_dest_rank
=
mpi_op
->
u
.
send
.
dest_rank
;
...
...
@@ -1282,7 +1286,7 @@ static void codes_exec_mpi_send(nw_state* s,
/* model-net event */
tw_lpid
dest_rank
=
codes_mapping_get_lpid_from_relative
(
global_dest_rank
,
NULL
,
"nw-lp"
,
NULL
,
0
);
if
(
!
is_rend
)
if
(
is_rend
==
1
||
(
!
is_rend
&&
mpi_op
->
u
.
send
.
num_bytes
<
EAGER_THRESHOLD
)
)
{
bf
->
c3
=
1
;
num_bytes_sent
+=
mpi_op
->
u
.
send
.
num_bytes
;
...
...
@@ -1774,7 +1778,7 @@ void nw_test_event_handler(nw_state* s, tw_bf * bf, nw_message * m, tw_lp * lp)
assert
(
s
->
app_id
>=
0
&&
s
->
local_rank
>=
0
);
*
(
int
*
)
bf
=
(
int
)
0
;
//
*(int *)bf = (int)0;
rc_stack_gc
(
lp
,
s
->
matched_reqs
);
rc_stack_gc
(
lp
,
s
->
processed_ops
);
rc_stack_gc
(
lp
,
s
->
processed_wait_op
);
...
...
@@ -2069,11 +2073,12 @@ void nw_test_finalize(nw_state* s, tw_lp* lp)
if
(
!
s
->
nw_id
)
written
=
sprintf
(
s
->
output_buf
,
"# Format <LP ID> <Terminal ID> <Total sends> <Total Recvs> <Bytes sent> <Bytes recvd> <Send time> <Comm. time> <Compute time>"
);
if
(
s
->
wait_op
)
/*
if(s->wait_op)
{
lprintf("\n Incomplete wait operation Rank %llu ", s->nw_id);
print_waiting_reqs(s->wait_op->req_ids, s->wait_op->count);
}
print_completed_queue(&s->completed_reqs);
}*/
if
(
alloc_spec
==
1
)
{
struct
codes_jobmap_id
lid
;
...
...
@@ -2516,8 +2521,9 @@ int modelnet_mpi_replay(MPI_Comm comm, int* argc, char*** argv )
}
model_net_report_stats
(
net_id
);
if
(
unmatched
)
tw_error
(
TW_LOC
,
"
\n
Unmatched send and receive, terminating simulation"
);
if
(
unmatched
&&
g_tw_mynode
==
0
)
fprintf
(
stderr
,
"
\n
Warning: unmatched send and receive operations found.
\n
"
);
//tw_error(TW_LOC, "\n Unmatched send and receive, terminating simulation");
if
(
alloc_spec
)
codes_jobmap_destroy
(
jobmap_ctx
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment