Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
codes
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
38
Issues
38
List
Boards
Labels
Milestones
Merge Requests
8
Merge Requests
8
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
codes
codes
Commits
77e85ef9
Commit
77e85ef9
authored
May 09, 2017
by
Caitlin Ross
2
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
changes related to the ROSS model-level sampling feature
parent
1bc73715
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
254 additions
and
76 deletions
+254
-76
lp-type-lookup.h
codes/lp-type-lookup.h
+2
-2
model-net-method.h
codes/model-net-method.h
+2
-2
model-net.h
codes/model-net.h
+1
-1
dragonfly.h
codes/net/dragonfly.h
+2
-0
model-net-mpi-replay.c
src/network-workloads/model-net-mpi-replay.c
+15
-8
model-net-synthetic-fattree.c
src/network-workloads/model-net-synthetic-fattree.c
+14
-7
model-net-synthetic.c
src/network-workloads/model-net-synthetic.c
+15
-8
dragonfly.c
src/networks/model-net/dragonfly.c
+147
-17
fattree.c
src/networks/model-net/fattree.c
+19
-11
model-net-lp.c
src/networks/model-net/model-net-lp.c
+28
-11
model-net.c
src/networks/model-net/model-net.c
+2
-2
codes_mapping.c
src/util/codes_mapping.c
+4
-4
lp-type-lookup.c
src/util/lp-type-lookup.c
+3
-3
No files found.
codes/lp-type-lookup.h
View file @
77e85ef9
...
...
@@ -21,8 +21,8 @@ const tw_lptype* lp_type_lookup(const char* name);
/* register an LP with CODES/ROSS */
void
lp_type_register
(
const
char
*
name
,
const
tw_lptype
*
type
);
void
trace_type_register
(
const
char
*
name
,
const
st_trace_type
*
type
);
const
st_
trace_type
*
trace
_type_lookup
(
const
char
*
name
);
void
st_model_type_register
(
const
char
*
name
,
const
st_model_types
*
type
);
const
st_
model_types
*
st_model
_type_lookup
(
const
char
*
name
);
#ifdef __cplusplus
}
#endif
...
...
codes/model-net-method.h
View file @
77e85ef9
...
...
@@ -63,8 +63,8 @@ struct model_net_method
revent_f
mn_sample_rc_fn
;
init_f
mn_sample_init_fn
;
final_f
mn_sample_fini_fn
;
void
(
*
mn_
trace_register
)(
st_trace_type
*
base_type
);
const
st_
trace_type
*
(
*
mn_get_trace_type
)();
void
(
*
mn_
model_stat_register
)(
st_model_types
*
base_type
);
const
st_
model_types
*
(
*
mn_get_model_stat_types
)();
};
extern
struct
model_net_method
*
method_array
[];
...
...
codes/model-net.h
View file @
77e85ef9
...
...
@@ -388,7 +388,7 @@ void model_net_set_msg_param(
/* returns pointer to LP information for simplenet module */
const
tw_lptype
*
model_net_get_lp_type
(
int
net_id
);
const
st_
trace_type
*
model_net_get_trace
_type
(
int
net_id
);
const
st_
model_types
*
model_net_get_model_stat
_type
(
int
net_id
);
DEPRECATED
uint64_t
model_net_get_packet_size
(
int
net_id
);
...
...
codes/net/dragonfly.h
View file @
77e85ef9
...
...
@@ -91,6 +91,8 @@ struct terminal_message
tw_stime
saved_hist_start_time
;
tw_stime
saved_sample_time
;
tw_stime
msg_start_time
;
tw_stime
saved_busy_time_ross
;
tw_stime
saved_fin_chunks_ross
;
int
saved_hist_num
;
int
saved_occupancy
;
...
...
src/network-workloads/model-net-mpi-replay.c
View file @
77e85ef9
...
...
@@ -1569,22 +1569,29 @@ void nw_lp_event_collect(nw_message *m, tw_lp *lp, char *buffer, int *collect_fl
memcpy
(
buffer
,
&
type
,
sizeof
(
type
));
}
st_trace_type
nw_lp_trace_types
[]
=
{
void
nw_lp_model_stat_collect
(
nw_state
*
s
,
tw_lp
*
lp
,
char
*
buffer
)
{
return
;
}
st_model_types
nw_lp_model_types
[]
=
{
{(
rbev_trace_f
)
nw_lp_event_collect
,
sizeof
(
int
),
(
ev_trace_f
)
nw_lp_event_collect
,
sizeof
(
int
)},
sizeof
(
int
),
(
model_stat_f
)
nw_lp_model_stat_collect
,
0
},
{
0
}
};
static
const
st_
trace_type
*
nw_lp_get_trace
_types
(
void
)
static
const
st_
model_types
*
nw_lp_get_model_stat
_types
(
void
)
{
return
(
&
nw_lp_
trace
_types
[
0
]);
return
(
&
nw_lp_
model
_types
[
0
]);
}
void
nw_lp_register_
trace
()
void
nw_lp_register_
model
()
{
trace_type_register
(
"nw-lp"
,
nw_lp_get_trace
_types
());
st_model_type_register
(
"nw-lp"
,
nw_lp_get_model_stat
_types
());
}
/* end of ROSS event tracing setup */
...
...
@@ -1659,8 +1666,8 @@ int main( int argc, char** argv )
nw_add_lp_type
();
model_net_register
();
if
(
g_st_ev_trace
)
nw_lp_register_
trace
();
if
(
g_st_ev_trace
||
g_st_model_stats
)
nw_lp_register_
model
();
net_ids
=
model_net_configure
(
&
num_nets
);
// assert(num_nets == 1);
...
...
src/network-workloads/model-net-synthetic-fattree.c
View file @
77e85ef9
...
...
@@ -130,22 +130,29 @@ void ft_svr_event_collect(svr_msg *m, tw_lp *lp, char *buffer, int *collect_flag
memcpy
(
buffer
,
&
type
,
sizeof
(
type
));
}
st_trace_type
ft_svr_trace_types
[]
=
{
void
ft_svr_model_stat_collect
(
svr_state
*
s
,
tw_lp
*
lp
,
char
*
buffer
)
{
return
;
}
st_model_types
ft_svr_model_types
[]
=
{
{(
rbev_trace_f
)
ft_svr_event_collect
,
sizeof
(
int
),
(
ev_trace_f
)
ft_svr_event_collect
,
sizeof
(
int
)},
sizeof
(
int
),
(
model_stat_f
)
ft_svr_model_stat_collect
,
0
},
{
0
}
};
static
const
st_
trace_type
*
ft_svr_get_trace
_types
(
void
)
static
const
st_
model_types
*
ft_svr_get_model_stat
_types
(
void
)
{
return
(
&
ft_svr_
trace
_types
[
0
]);
return
(
&
ft_svr_
model
_types
[
0
]);
}
void
ft_svr_register_
trace
()
void
ft_svr_register_
model_stats
()
{
trace_type_register
(
"server"
,
ft_svr_get_trace
_types
());
st_model_type_register
(
"server"
,
ft_svr_get_model_stat
_types
());
}
const
tw_optdef
app_opt
[]
=
...
...
@@ -437,7 +444,7 @@ int main(
svr_add_lp_type
();
if
(
g_st_ev_trace
)
ft_svr_register_
trace
();
ft_svr_register_
model_stats
();
codes_mapping_setup
();
...
...
src/network-workloads/model-net-synthetic.c
View file @
77e85ef9
...
...
@@ -116,22 +116,29 @@ void svr_event_collect(svr_msg *m, tw_lp *lp, char *buffer, int *collect_flag)
memcpy
(
buffer
,
&
type
,
sizeof
(
type
));
}
st_trace_type
svr_trace_types
[]
=
{
void
svr_model_stat_collect
(
svr_state
*
s
,
tw_lp
*
lp
,
char
*
buffer
)
{
return
;
}
st_model_types
svr_model_types
[]
=
{
{(
rbev_trace_f
)
svr_event_collect
,
sizeof
(
int
),
(
ev_trace_f
)
svr_event_collect
,
sizeof
(
int
)},
sizeof
(
int
),
(
model_stat_f
)
svr_model_stat_collect
,
0
},
{
0
}
};
static
const
st_
trace_type
*
svr_get_trace
_types
(
void
)
static
const
st_
model_types
*
svr_get_model_stat
_types
(
void
)
{
return
(
&
svr_
trace
_types
[
0
]);
return
(
&
svr_
model
_types
[
0
]);
}
void
svr_register_
trace
()
void
svr_register_
model_types
()
{
trace_type_register
(
"server"
,
svr_get_trace
_types
());
st_model_type_register
(
"server"
,
svr_get_model_stat
_types
());
}
const
tw_optdef
app_opt
[]
=
...
...
@@ -393,8 +400,8 @@ int main(
model_net_register
();
svr_add_lp_type
();
if
(
g_st_ev_trace
)
svr_register_
trace
();
if
(
g_st_ev_trace
||
g_st_model_stats
)
svr_register_
model_types
();
codes_mapping_setup
();
...
...
src/networks/model-net/dragonfly.c
View file @
77e85ef9
This diff is collapsed.
Click to expand it.
src/networks/model-net/fattree.c
View file @
77e85ef9
...
...
@@ -1811,6 +1811,7 @@ void switch_packet_receive_rc(switch_state * s,
s_arrive_r
++
;
#endif
int
output_port
=
msg
->
saved_vc
;
tw_rand_reverse_unif
(
lp
->
rng
);
if
(
bf
->
c1
)
{
tw_rand_reverse_unif
(
lp
->
rng
);
...
...
@@ -2636,10 +2637,13 @@ int ft_get_output_port( switch_state * s, tw_bf * bf, fattree_message * msg,
assert
(
end_port
>
start_port
);
outport
=
start_port
;
//outport = start_port;
// when occupancy is same, just choose random port
outport
=
tw_rand_integer
(
lp
->
rng
,
start_port
,
end_port
-
1
);
int
load
=
s
->
vc_occupancy
[
outport
]
+
s
->
queued_length
[
outport
];
if
(
load
!=
0
)
{
for
(
int
port
=
start_port
+
1
;
port
<
end_port
;
port
++
)
{
//for(int port = start_port + 1; port < end_port; port++) {
for
(
int
port
=
start_port
;
port
<
end_port
;
port
++
)
{
if
(
s
->
vc_occupancy
[
port
]
+
s
->
queued_length
[
port
]
<
load
)
{
load
=
s
->
vc_occupancy
[
port
]
+
s
->
queued_length
[
port
];
outport
=
port
;
...
...
@@ -2968,23 +2972,27 @@ void fattree_event_collect(fattree_message *m, tw_lp *lp, char *buffer, int *col
memcpy
(
buffer
,
&
type
,
sizeof
(
type
));
}
st_trace_type
fattree_trace_types
[]
=
{
// TODO will need to separate fattree_method into one for terminal and one for switch
// in order to use the ROSS model stats collection
st_model_types
fattree_model_types
[]
=
{
{(
rbev_trace_f
)
fattree_event_collect
,
sizeof
(
int
),
(
ev_trace_f
)
fattree_event_collect
,
sizeof
(
int
)},
sizeof
(
int
),
NULL
,
0
},
{
0
}
};
static
const
st_
trace_type
*
fattree_get_trace
_types
(
void
)
static
const
st_
model_types
*
fattree_get_model_stat
_types
(
void
)
{
return
(
&
fattree_
trace
_types
[
0
]);
return
(
&
fattree_
model
_types
[
0
]);
}
static
void
fattree_register_
trace
(
st_trace_type
*
base_type
)
static
void
fattree_register_
model_stats
(
st_model_types
*
base_type
)
{
trace
_type_register
(
LP_CONFIG_NM
,
base_type
);
trace_type_register
(
"fattree_switch"
,
&
fattree_trace
_types
[
0
]);
st_model
_type_register
(
LP_CONFIG_NM
,
base_type
);
st_model_type_register
(
"fattree_switch"
,
&
fattree_model
_types
[
0
]);
//trace_type_register("fattree_switch", base_type);
}
/*** END of ROSS event tracing additions */
...
...
@@ -3018,7 +3026,7 @@ struct model_net_method fattree_method =
// .model_net_method_find_local_device = NULL,
.
mn_collective_call
=
NULL
,
.
mn_collective_call_rc
=
NULL
,
.
mn_
trace_register
=
fattree_register_trace
,
.
mn_get_
trace_type
=
fattree_get_trace
_types
.
mn_
model_stat_register
=
fattree_register_model_stats
,
.
mn_get_
model_stat_types
=
fattree_get_model_stat
_types
};
src/networks/model-net/model-net-lp.c
View file @
77e85ef9
...
...
@@ -53,7 +53,7 @@ typedef struct model_net_base_state {
// lp type and state of underlying model net method - cache here so we
// don't have to constantly look up
const
tw_lptype
*
sub_type
;
const
st_
trace_type
*
sub_trace
_type
;
const
st_
model_types
*
sub_model
_type
;
void
*
sub_state
;
}
model_net_base_state
;
...
...
@@ -139,10 +139,10 @@ void mn_event_collect(model_net_wrap_msg *m, tw_lp *lp, char *buffer, int *colle
break
;
case
MN_BASE_PASS
:
sub_msg
=
((
char
*
)
m
)
+
msg_offsets
[((
model_net_base_state
*
)
lp
->
cur_state
)
->
net_id
];
if
(
g_st_ev_trace
==
RB_TRACE
)
(((
model_net_base_state
*
)
lp
->
cur_state
)
->
sub_
trace
_type
->
rbev_trace
)(
sub_msg
,
lp
,
buffer
,
collect_flag
);
if
(
g_st_ev_trace
==
RB_TRACE
||
g_st_ev_trace
==
COMMIT_TRACE
)
(((
model_net_base_state
*
)
lp
->
cur_state
)
->
sub_
model
_type
->
rbev_trace
)(
sub_msg
,
lp
,
buffer
,
collect_flag
);
else
if
(
g_st_ev_trace
==
FULL_TRACE
)
(((
model_net_base_state
*
)
lp
->
cur_state
)
->
sub_
trace
_type
->
ev_trace
)(
sub_msg
,
lp
,
buffer
,
collect_flag
);
(((
model_net_base_state
*
)
lp
->
cur_state
)
->
sub_
model
_type
->
ev_trace
)(
sub_msg
,
lp
,
buffer
,
collect_flag
);
break
;
default:
// this shouldn't happen, but can help detect an issue
type
=
9004
;
...
...
@@ -150,11 +150,22 @@ void mn_event_collect(model_net_wrap_msg *m, tw_lp *lp, char *buffer, int *colle
}
}
st_trace_type
mn_trace_types
=
{
void
mn_model_stat_collect
(
model_net_base_state
*
s
,
tw_lp
*
lp
,
char
*
buffer
)
{
// need to call the model level stats collection fn
(
*
s
->
sub_model_type
->
model_stat_fn
)(
s
->
sub_state
,
lp
,
buffer
);
return
;
}
st_model_types
mn_model_types
[
MAX_NETS
];
st_model_types
mn_model_base_type
=
{
(
rbev_trace_f
)
mn_event_collect
,
sizeof
(
int
),
(
ev_trace_f
)
mn_event_collect
,
sizeof
(
int
),
(
model_stat_f
)
mn_model_stat_collect
,
0
};
/**** END LP, EVENT PROCESSING FUNCTION DECLS ****/
...
...
@@ -195,12 +206,14 @@ void model_net_base_register(int *do_config_nets){
&
model_net_base_lp
);
else
method_array
[
i
]
->
mn_register
(
&
model_net_base_lp
);
if
(
g_st_ev_trace
)
// for ROSS event tracing
if
(
g_st_ev_trace
||
g_st_model_stats
)
// for ROSS event tracing
{
if
(
method_array
[
i
]
->
mn_trace_register
==
NULL
)
trace_type_register
(
model_net_lp_config_names
[
i
],
&
mn_trace_types
);
memcpy
(
&
mn_model_types
[
i
],
&
mn_model_base_type
,
sizeof
(
st_model_types
));
if
(
method_array
[
i
]
->
mn_model_stat_register
==
NULL
)
st_model_type_register
(
model_net_lp_config_names
[
i
],
&
mn_model_types
[
i
]);
else
method_array
[
i
]
->
mn_
trace_register
(
&
mn_trace_types
);
method_array
[
i
]
->
mn_
model_stat_register
(
&
mn_model_types
[
i
]
);
}
}
}
...
...
@@ -404,8 +417,12 @@ void model_net_base_lp_init(
ns
->
sub_type
=
model_net_get_lp_type
(
ns
->
net_id
);
if
(
g_st_ev_trace
)
ns
->
sub_trace_type
=
model_net_get_trace_type
(
ns
->
net_id
);
/* some ROSS instrumentation setup */
if
(
g_st_ev_trace
||
g_st_model_stats
)
{
ns
->
sub_model_type
=
model_net_get_model_stat_type
(
ns
->
net_id
);
mn_model_types
[
ns
->
net_id
].
mstat_sz
=
ns
->
sub_model_type
->
mstat_sz
;
}
// NOTE: some models actually expect LP state to be 0 initialized...
// *cough anything that uses mn_stats_array cough*
...
...
src/networks/model-net/model-net.c
View file @
77e85ef9
...
...
@@ -597,9 +597,9 @@ const tw_lptype* model_net_get_lp_type(int net_id)
return
method_array
[
net_id
]
->
mn_get_lp_type
();
}
const
st_
trace_type
*
model_net_get_trace
_type
(
int
net_id
)
const
st_
model_types
*
model_net_get_model_stat
_type
(
int
net_id
)
{
return
method_array
[
net_id
]
->
mn_get_
trace_type
();
return
method_array
[
net_id
]
->
mn_get_
model_stat_types
();
}
void
model_net_report_stats
(
int
net_id
)
...
...
src/util/codes_mapping.c
View file @
77e85ef9
...
...
@@ -458,7 +458,7 @@ static void codes_mapping_init(void)
tw_lpid
nkp_per_pe
=
g_tw_nkp
;
tw_lpid
lpid
,
kpid
;
const
tw_lptype
*
lptype
;
const
st_
trace_type
*
trace_type
;
const
st_
model_types
*
trace_type
;
/* have 16 kps per pe, this is the optimized configuration for ROSS custom mapping */
for
(
kpid
=
0
;
kpid
<
nkp_per_pe
;
kpid
++
)
...
...
@@ -489,10 +489,10 @@ static void codes_mapping_init(void)
else
/* sorry, const... */
tw_lp_settype
(
ross_lid
,
(
tw_lptype
*
)
lptype
);
if
(
g_st_ev_trace
)
if
(
g_st_ev_trace
||
g_st_model_stats
)
{
trace_type
=
trace
_type_lookup
(
lp_type_name
);
st_
evtrace_settype
(
ross_lid
,
(
st_trace_type
*
)
trace_type
);
trace_type
=
st_model
_type_lookup
(
lp_type_name
);
st_
model_settype
(
ross_lid
,
(
st_model_types
*
)
trace_type
);
}
}
return
;
...
...
src/util/lp-type-lookup.c
View file @
77e85ef9
...
...
@@ -16,7 +16,7 @@ struct lp_name_mapping
{
const
char
*
name
;
const
tw_lptype
*
type
;
const
st_
trace_type
*
trace_type
;
const
st_
model_types
*
trace_type
;
};
static
struct
lp_name_mapping
map_array
[
MAX_LP_TYPES
];
...
...
@@ -48,7 +48,7 @@ const tw_lptype* lp_type_lookup(const char* name)
}
// needs to be called after lp_type_register()
void
trace_type_register
(
const
char
*
name
,
const
st_trace_type
*
type
)
void
st_model_type_register
(
const
char
*
name
,
const
st_model_types
*
type
)
{
int
i
;
...
...
@@ -61,7 +61,7 @@ void trace_type_register(const char* name, const st_trace_type* type)
}
}
const
st_
trace_type
*
trace
_type_lookup
(
const
char
*
name
)
const
st_
model_types
*
st_model
_type_lookup
(
const
char
*
name
)
{
int
i
;
...
...
Nikhil
@Jain
mentioned in commit
921d3e48
·
Jul 25, 2017
mentioned in commit
921d3e48
mentioned in commit 921d3e486f04520d4bb19b970e1a0aaea49b24ef
Toggle commit list
Nikhil
@Jain
mentioned in commit
6a8509ed
·
Jul 26, 2017
mentioned in commit
6a8509ed
mentioned in commit 6a8509ed762e7e600c652fea104befec2c11f335
Toggle commit list
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