Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Xin Wang
codes-dev
Commits
6b3e29b1
Commit
6b3e29b1
authored
Mar 16, 2017
by
Matthieu Dorier
Browse files
resolved conflicts
parents
2250d07f
bdaa22de
Changes
12
Hide whitespace changes
Inline
Side-by-side
codes/codes-mpi-replay.h
0 → 100644
View file @
6b3e29b1
/*
* Copyright (C) 2017 University of Chicago.
* See COPYRIGHT notice in top-level directory.
*
*/
#ifndef CODES_MPI_REPLAY_H
#define CODES_MPI_REPLAY_H
#ifdef __cplusplus
extern
"C"
{
#endif
#include <mpi.h>
int
modelnet_mpi_replay
(
MPI_Comm
comm
,
int
*
argc
,
char
***
argv
);
#ifdef __cplusplus
}
#endif
#endif
/* CODES_H */
/*
* Local variables:
* c-indent-level: 4
* c-basic-offset: 4
* End:
*
* vim: ft=c ts=8 sts=4 sw=4 expandtab
*/
codes/codes.h
View file @
6b3e29b1
...
...
@@ -14,6 +14,9 @@ extern "C" {
#include <ross.h>
#include <assert.h>
#include <mpi.h>
extern
MPI_Comm
MPI_COMM_CODES
;
// for printf conversions: shorthand for cast to long long unsigned format (llu)
#define LLU(x) ((unsigned long long)(x))
...
...
src/Makefile.subdir
View file @
6b3e29b1
lib_LTLIBRARIES
+=
src/libcodes.la
lib_LTLIBRARIES
+=
src/libcodes.la
src/libcodes_mpi_replay.la
BUILT_SOURCES
+=
src/modelconfig/configparser.h
\
src/modelconfig/configlex.h
...
...
@@ -95,6 +95,7 @@ nobase_include_HEADERS = \
codes/net/simplenet-upd.h
\
codes/net/simplep2p.h
\
codes/net/torus.h
\
codes/codes-mpi-replay.h
\
codes/configfile.h
...
...
@@ -139,6 +140,7 @@ src_libcodes_la_SOURCES = \
src/util/jobmap-impl/jobmap-list.c
\
src/util/jobmap-impl/jobmap-identity.c
\
src/util/codes-mapping-context.c
\
src/util/codes-comm.c
\
src/workload/codes-workload.c
\
src/workload/methods/codes-iolang-wrkld.c
\
src/workload/methods/codes-checkpoint-wrkld.c
\
...
...
@@ -160,6 +162,8 @@ src_libcodes_la_SOURCES = \
src/networks/model-net/model-net-sched-impl.h
\
src/networks/model-net/model-net-sched-impl.c
src_libcodes_mpi_replay_la_SOURCES
=
\
src/network-workloads/model-net-mpi-replay.c
#codes/codes-nw-workload.h
#src/network-workload/codes-nw-workload.c
...
...
@@ -187,7 +191,10 @@ src_workload_codes_workload_dump_SOURCES = \
src_network_workloads_model_net_dumpi_traces_dump_SOURCES
=
src/network-workloads/model-net-dumpi-traces-dump.c
src_network_workloads_model_net_synthetic_slimfly_SOURCES
=
src/network-workloads/model-net-synthetic-slimfly.c
src_network_workloads_model_net_mpi_replay_SOURCES
=
src/network-workloads/model-net-mpi-replay.c
src_network_workloads_model_net_mpi_replay_SOURCES
=
\
src/network-workloads/model-net-mpi-replay.c
\
src/network-workloads/model-net-mpi-replay-main.c
src_network_workloads_model_net_mpi_replay_CFLAGS
=
$(AM_CFLAGS)
src_network_workloads_model_net_synthetic_SOURCES
=
src/network-workloads/model-net-synthetic.c
src_network_workloads_model_net_synthetic_custom_dfly_SOURCES
=
src/network-workloads/model-net-synthetic-custom-dfly.c
...
...
src/network-workloads/model-net-mpi-replay-main.c
0 → 100644
View file @
6b3e29b1
/*
* Copyright (C) 2014 University of Chicago.
* See COPYRIGHT notice in top-level directory.
*
*/
#include <mpi.h>
#include "codes/codes-mpi-replay.h"
int
main
(
int
argc
,
char
**
argv
)
{
MPI_Init
(
&
argc
,
&
argv
);
// int rank, size;
// MPI_Comm_rank(MPI_COMM_WORLD,&rank);
// MPI_Comm_size(MPI_COMM_WORLD,&size);
// MPI_Comm comm;
// MPI_Comm_split(MPI_COMM_WORLD, rank < 2, rank, &comm);
// if(rank < 2)
// modelnet_mpi_replay(comm,&argc,&argv);
modelnet_mpi_replay
(
MPI_COMM_WORLD
,
&
argc
,
&
argv
);
MPI_Finalize
();
return
0
;
}
/*
* Local variables:
* c-indent-level: 4
* c-basic-offset: 4
* End:
*
* vim: ft=c ts=8 sts=4 sw=4 expandtab
*/
src/network-workloads/model-net-mpi-replay.c
View file @
6b3e29b1
...
...
@@ -1562,20 +1562,21 @@ static void nw_add_lp_type()
lp_type_register
(
"nw-lp"
,
nw_get_lp_type
());
}
int
m
ain
(
int
argc
,
char
**
argv
)
int
m
odelnet_mpi_replay
(
MPI_Comm
comm
,
int
*
argc
,
char
**
*
argv
)
{
int
rank
,
nprocs
;
int
num_nets
;
int
*
net_ids
;
MPI_COMM_CODES
=
comm
;
tw_comm_set
(
MPI_COMM_CODES
);
g_tw_ts_end
=
s_to_ns
(
60
*
5
);
/* five minutes, in nsecs */
workload_type
[
0
]
=
'\0'
;
tw_opt_add
(
app_opt
);
tw_comm_set
(
MPI_COMM_WORLD
);
tw_init
(
&
argc
,
&
argv
);
tw_init
(
argc
,
argv
);
if
(
strcmp
(
workload_type
,
"dumpi"
)
!=
0
)
{
...
...
@@ -1628,10 +1629,10 @@ int main( int argc, char** argv )
num_traces_of_job
[
0
]
=
num_net_traces
;
alloc_spec
=
0
;
}
MPI_Comm_rank
(
MPI_COMM_
WORLD
,
&
rank
);
MPI_Comm_size
(
MPI_COMM_
WORLD
,
&
nprocs
);
MPI_Comm_rank
(
MPI_COMM_
CODES
,
&
rank
);
MPI_Comm_size
(
MPI_COMM_
CODES
,
&
nprocs
);
configuration_load
(
argv
[
2
],
MPI_COMM_
WORLD
,
&
config
);
configuration_load
(
(
*
argv
)
[
2
],
MPI_COMM_
CODES
,
&
config
);
nw_add_lp_type
();
model_net_register
();
...
...
@@ -1676,7 +1677,7 @@ int main( int argc, char** argv )
do_lp_io
=
1
;
/* initialize lp io */
int
flags
=
lp_io_use_suffix
?
LP_IO_UNIQ_SUFFIX
:
0
;
int
ret
=
lp_io_prepare
(
lp_io_dir
,
flags
,
&
io_handle
,
MPI_COMM_
WORLD
);
int
ret
=
lp_io_prepare
(
lp_io_dir
,
flags
,
&
io_handle
,
MPI_COMM_
CODES
);
assert
(
ret
==
0
||
!
"lp_io_prepare failure"
);
}
tw_run
();
...
...
@@ -1694,19 +1695,19 @@ int main( int argc, char** argv )
double
total_avg_wait_time
,
total_max_wait_time
;
double
total_avg_recv_time
,
total_max_recv_time
;
MPI_Reduce
(
&
num_bytes_sent
,
&
total_bytes_sent
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
num_bytes_recvd
,
&
total_bytes_recvd
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
max_comm_time
,
&
max_comm_run_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
max_time
,
&
max_run_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
avg_time
,
&
avg_run_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
num_bytes_sent
,
&
total_bytes_sent
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
num_bytes_recvd
,
&
total_bytes_recvd
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
max_comm_time
,
&
max_comm_run_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
max_time
,
&
max_run_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
avg_time
,
&
avg_run_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
avg_recv_time
,
&
total_avg_recv_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
avg_comm_time
,
&
avg_comm_run_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
max_wait_time
,
&
total_max_wait_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
max_send_time
,
&
total_max_send_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
max_recv_time
,
&
total_max_recv_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
avg_wait_time
,
&
total_avg_wait_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
avg_send_time
,
&
total_avg_send_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
avg_recv_time
,
&
total_avg_recv_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
avg_comm_time
,
&
avg_comm_run_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
max_wait_time
,
&
total_max_wait_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
max_send_time
,
&
total_max_send_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
max_recv_time
,
&
total_max_recv_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
avg_wait_time
,
&
total_avg_wait_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
avg_send_time
,
&
total_avg_send_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
assert
(
num_net_traces
);
...
...
@@ -1720,7 +1721,7 @@ int main( int argc, char** argv )
total_max_recv_time
,
total_avg_recv_time
/
num_net_traces
,
total_max_wait_time
,
total_avg_wait_time
/
num_net_traces
);
if
(
do_lp_io
){
int
ret
=
lp_io_flush
(
io_handle
,
MPI_COMM_
WORLD
);
int
ret
=
lp_io_flush
(
io_handle
,
MPI_COMM_
CODES
);
assert
(
ret
==
0
||
!
"lp_io_flush failure"
);
}
model_net_report_stats
(
net_id
);
...
...
src/networks/model-net/dragonfly-custom.C
View file @
6b3e29b1
...
...
@@ -471,7 +471,7 @@ static void dragonfly_read_config(const char * anno, dragonfly_param *params){
// shorthand
dragonfly_param
*
p
=
params
;
int
myRank
;
MPI_Comm_rank
(
MPI_COMM_
WORLD
,
&
myRank
);
MPI_Comm_rank
(
MPI_COMM_
CODES
,
&
myRank
);
int
rc
=
configuration_get_value_int
(
&
config
,
"PARAMS"
,
"local_vc_size"
,
anno
,
&
p
->
local_vc_size
);
if
(
rc
)
{
...
...
@@ -551,7 +551,7 @@ static void dragonfly_read_config(const char * anno, dragonfly_param *params){
rc
=
configuration_get_value_int
(
&
config
,
"PARAMS"
,
"num_groups"
,
anno
,
&
p
->
num_groups
);
if
(
rc
)
{
printf
(
"Number of groups not specified. Aborting"
);
MPI_Abort
(
MPI_COMM_
WORLD
,
1
);
MPI_Abort
(
MPI_COMM_
CODES
,
1
);
}
rc
=
configuration_get_value_int
(
&
config
,
"PARAMS"
,
"num_col_chans"
,
anno
,
&
p
->
num_col_chans
);
if
(
rc
)
{
...
...
@@ -745,20 +745,20 @@ void dragonfly_custom_report_stats()
int
total_minimal_packets
,
total_nonmin_packets
;
long
total_gen
,
total_fin
;
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_msgs
,
&
total_finished_msgs
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_chunks
,
&
total_finished_chunks
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_msg_sz
,
&
final_msg_sz
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
dragonfly_total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
dragonfly_max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_msgs
,
&
total_finished_msgs
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_chunks
,
&
total_finished_chunks
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
total_msg_sz
,
&
final_msg_sz
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
dragonfly_total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
dragonfly_max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
packet_gen
,
&
total_gen
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
packet_fin
,
&
total_fin
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
packet_gen
,
&
total_gen
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
packet_fin
,
&
total_fin
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
if
(
routing
==
ADAPTIVE
||
routing
==
PROG_ADAPTIVE
)
{
MPI_Reduce
(
&
minimal_count
,
&
total_minimal_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
nonmin_count
,
&
total_nonmin_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
minimal_count
,
&
total_minimal_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
nonmin_count
,
&
total_nonmin_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
}
/* print statistics */
...
...
src/networks/model-net/dragonfly.c
View file @
6b3e29b1
...
...
@@ -573,7 +573,7 @@ static void dragonfly_read_config(const char * anno, dragonfly_param *params){
p
->
total_routers
=
p
->
num_groups
*
p
->
num_routers
;
p
->
total_terminals
=
p
->
total_routers
*
p
->
num_cn
;
int
rank
;
MPI_Comm_rank
(
MPI_COMM_
WORLD
,
&
rank
);
MPI_Comm_rank
(
MPI_COMM_
CODES
,
&
rank
);
if
(
!
rank
)
{
printf
(
"
\n
Total nodes %d routers %d groups %d radix %d
\n
"
,
p
->
num_cn
*
p
->
total_routers
,
p
->
total_routers
,
p
->
num_groups
,
...
...
@@ -610,20 +610,20 @@ static void dragonfly_report_stats()
int
total_minimal_packets
,
total_nonmin_packets
;
long
total_gen
,
total_fin
;
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_msgs
,
&
total_finished_msgs
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_chunks
,
&
total_finished_chunks
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_msg_sz
,
&
final_msg_sz
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
dragonfly_total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
dragonfly_max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_msgs
,
&
total_finished_msgs
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_chunks
,
&
total_finished_chunks
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
total_msg_sz
,
&
final_msg_sz
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
dragonfly_total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
dragonfly_max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
packet_gen
,
&
total_gen
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
packet_fin
,
&
total_fin
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
packet_gen
,
&
total_gen
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
packet_fin
,
&
total_fin
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
if
(
routing
==
ADAPTIVE
||
routing
==
PROG_ADAPTIVE
)
{
MPI_Reduce
(
&
minimal_count
,
&
total_minimal_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
nonmin_count
,
&
total_nonmin_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
minimal_count
,
&
total_minimal_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
nonmin_count
,
&
total_nonmin_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
}
/* print statistics */
...
...
src/networks/model-net/fattree.c
View file @
6b3e29b1
...
...
@@ -546,7 +546,7 @@ static void dot_write_open_file(FILE **fout)
char
*
dot_file_prefix
=
dot_file_p
;
int
rank
;
MPI_Comm_rank
(
MPI_COMM_
WORLD
,
&
rank
);
MPI_Comm_rank
(
MPI_COMM_
CODES
,
&
rank
);
sprintf
(
file_name
,
"%s/%s.dot.%d"
,
dir_name
,
dot_file_prefix
,
rank
);
*
fout
=
fopen
(
file_name
,
"w+"
);
if
(
*
fout
==
NULL
)
{
...
...
@@ -1348,22 +1348,22 @@ static void fattree_report_stats()
long
long
ts_buffer_f
=
0
;
long
long
ts_buffer_r
=
0
;
MPI_Reduce
(
&
packet_event_f
,
&
t_packet_event_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
packet_event_r
,
&
t_packet_event_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
t_generate_f
,
&
tt_generate_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
t_generate_r
,
&
tt_generate_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
t_send_f
,
&
tt_send_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
t_send_r
,
&
tt_send_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
t_arrive_f
,
&
tt_arrive_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
t_arrive_r
,
&
tt_arrive_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
t_buffer_f
,
&
tt_buffer_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
t_buffer_r
,
&
tt_buffer_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
s_send_f
,
&
ts_send_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
s_send_r
,
&
ts_send_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
s_arrive_f
,
&
ts_arrive_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
s_arrive_r
,
&
ts_arrive_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
s_buffer_f
,
&
ts_buffer_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
s_buffer_r
,
&
ts_buffer_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
packet_event_f
,
&
t_packet_event_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
packet_event_r
,
&
t_packet_event_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
t_generate_f
,
&
tt_generate_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
t_generate_r
,
&
tt_generate_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
t_send_f
,
&
tt_send_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
t_send_r
,
&
tt_send_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
t_arrive_f
,
&
tt_arrive_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
t_arrive_r
,
&
tt_arrive_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
t_buffer_f
,
&
tt_buffer_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
t_buffer_r
,
&
tt_buffer_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
s_send_f
,
&
ts_send_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
s_send_r
,
&
ts_send_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
s_arrive_f
,
&
ts_arrive_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
s_arrive_r
,
&
ts_arrive_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
s_buffer_f
,
&
ts_buffer_f
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
s_buffer_r
,
&
ts_buffer_r
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
if
(
!
g_tw_mynode
)
{
...
...
@@ -1399,16 +1399,16 @@ static void fattree_report_stats()
tw_stime
avg_time
,
max_time
;
long
total_gen
,
total_fin
;
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_msgs
,
&
total_finished_msgs
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_chunks
,
&
total_finished_chunks
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_msg_sz
,
&
final_msg_sz
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
fattree_total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
fattree_max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_msgs
,
&
total_finished_msgs
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_chunks
,
&
total_finished_chunks
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
total_msg_sz
,
&
final_msg_sz
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
fattree_total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
fattree_max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
fattree_packet_gen
,
&
total_gen
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
fattree_packet_fin
,
&
total_fin
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
fattree_packet_gen
,
&
total_gen
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
fattree_packet_fin
,
&
total_fin
,
1
,
MPI_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
/* print statistics */
if
(
!
g_tw_mynode
)
...
...
@@ -2836,7 +2836,7 @@ void fattree_switch_final(switch_state * s, tw_lp * lp)
// char *stats_file = getenv("TRACER_LINK_FILE");
// if(stats_file != NULL) {
int
rank
;
MPI_Comm_rank
(
MPI_COMM_
WORLD
,
&
rank
);
MPI_Comm_rank
(
MPI_COMM_
CODES
,
&
rank
);
char
file_name
[
512
];
sprintf
(
file_name
,
"%s.%d"
,
"tracer_stats_file"
,
rank
);
FILE
*
fout
=
fopen
(
file_name
,
"a"
);
...
...
src/networks/model-net/slimfly.c
View file @
6b3e29b1
...
...
@@ -601,7 +601,7 @@ static void slimfly_read_config(const char * anno, slimfly_param *params){
slim_total_routers_noah
=
p
->
num_groups
*
p
->
num_routers
;
slim_total_terminals_noah
=
p
->
slim_total_routers
*
p
->
num_cn
;
int
rank
;
MPI_Comm_rank
(
MPI_COMM_
WORLD
,
&
rank
);
MPI_Comm_rank
(
MPI_COMM_
CODES
,
&
rank
);
if
(
!
rank
)
{
printf
(
"
\n
Total nodes %d total routers %d total groups %d num_terminals %d num_routers %d radix %d local_channels %d global_channels %d
\n
"
,
p
->
num_cn
*
p
->
slim_total_routers
,
p
->
slim_total_routers
,
p
->
num_groups
,
p
->
num_cn
,
p
->
num_routers
,
...
...
@@ -641,19 +641,19 @@ static void slimfly_report_stats()
float
throughput_avg2
=
0
.
0
;
char
log
[
300
];
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_msgs
,
&
total_finished_msgs
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_chunks
,
&
total_finished_chunks
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_msg_sz
,
&
final_msg_sz
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
slimfly_total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
slimfly_max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_msgs
,
&
total_finished_msgs
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_chunks
,
&
total_finished_chunks
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
total_msg_sz
,
&
final_msg_sz
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
slimfly_total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
slimfly_max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
pe_throughput_percent
,
&
throughput_avg
,
1
,
MPI_FLOAT
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
pe_throughput
,
&
throughput_avg2
,
1
,
MPI_FLOAT
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
pe_throughput_percent
,
&
throughput_avg
,
1
,
MPI_FLOAT
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
pe_throughput
,
&
throughput_avg2
,
1
,
MPI_FLOAT
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
minimal_count
,
&
total_minimal_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
nonmin_count
,
&
total_nonmin_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
minimal_count
,
&
total_minimal_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
nonmin_count
,
&
total_nonmin_packets
,
1
,
MPI_INT
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
/* print statistics */
if
(
!
g_tw_mynode
)
...
...
src/networks/model-net/torus.c
View file @
6b3e29b1
...
...
@@ -1687,10 +1687,10 @@ static void torus_report_stats()
long
long
avg_hops
,
total_finished_packets
;
tw_stime
avg_time
,
max_time
;
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
WORLD
);
MPI_Reduce
(
&
total_hops
,
&
avg_hops
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
N_finished_packets
,
&
total_finished_packets
,
1
,
MPI_LONG_LONG
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
total_time
,
&
avg_time
,
1
,
MPI_DOUBLE
,
MPI_SUM
,
0
,
MPI_COMM_
CODES
);
MPI_Reduce
(
&
max_latency
,
&
max_time
,
1
,
MPI_DOUBLE
,
MPI_MAX
,
0
,
MPI_COMM_
CODES
);
if
(
!
g_tw_mynode
)
{
...
...
src/util/codes-comm.c
0 → 100644
View file @
6b3e29b1
/*
* Copyright (C) 2015 University of Chicago.
* See COPYRIGHT notice in top-level directory.
*
*/
#include <mpi.h>
MPI_Comm
MPI_COMM_CODES
=
MPI_COMM_WORLD
;
/*
* Local variables:
* c-indent-level: 4
* c-basic-offset: 4
* indent-tabs-mode: nil
* End:
*
* vim: ts=8 sts=4 sw=4 expandtab
*/
src/util/codes_mapping.c
View file @
6b3e29b1
...
...
@@ -67,7 +67,7 @@ static char local_lp_name[MAX_NAME_LENGTH],
int
codes_mapping_get_lps_for_pe
()
{
int
rank
;
MPI_Comm_rank
(
MPI_COMM_
WORLD
,
&
rank
);
MPI_Comm_rank
(
MPI_COMM_
CODES
,
&
rank
);
#if CODES_MAPPING_DEBUG
printf
(
"%d lps for rank %d
\n
"
,
lps_per_pe_floor
+
(
g_tw_mynode
<
lps_leftover
),
rank
);
#endif
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a 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