Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Xin Wang
codes-dev
Commits
c65c84a1
Commit
c65c84a1
authored
Jul 24, 2014
by
Jonathan Jenkins
Browse files
update use of max function (undef'd by ROSS)
parent
8c1f323e
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/models/networks/model-net/dragonfly.c
View file @
c65c84a1
...
...
@@ -36,6 +36,8 @@
#define LP_CONFIG_NM (model_net_lp_config_names[DRAGONFLY])
#define LP_METHOD_NM (model_net_method_names[DRAGONFLY])
static
double
maxd
(
double
a
,
double
b
)
{
return
a
<
b
?
b
:
a
;
}
// arrival rate
static
double
MEAN_INTERVAL
=
200
.
0
;
/* radix of a dragonfly router = number of global channels + number of
...
...
@@ -428,7 +430,7 @@ void router_credit_send(router_state * s, tw_bf * bf, terminal_message * msg, tw
// Assume it takes 0.1 ns of serialization latency for processing the credits in the queue
int
output_port
=
msg
->
saved_vc
/
num_vcs
;
msg
->
saved_available_time
=
s
->
next_credit_available_time
[
output_port
];
s
->
next_credit_available_time
[
output_port
]
=
max
(
tw_now
(
lp
),
s
->
next_credit_available_time
[
output_port
]);
s
->
next_credit_available_time
[
output_port
]
=
max
d
(
tw_now
(
lp
),
s
->
next_credit_available_time
[
output_port
]);
ts
=
credit_delay
+
0
.
1
+
tw_rand_exponential
(
lp
->
rng
,
(
double
)
credit_delay
/
1000
);
s
->
next_credit_available_time
[
output_port
]
+=
ts
;
...
...
@@ -541,7 +543,7 @@ void packet_send(terminal_state * s, tw_bf * bf, terminal_message * msg, tw_lp *
msg
->
saved_available_time
=
s
->
terminal_available_time
;
head_delay
=
(
1
/
cn_bandwidth
)
*
chunk_size
;
ts
=
head_delay
+
tw_rand_exponential
(
lp
->
rng
,
(
double
)
head_delay
/
200
);
s
->
terminal_available_time
=
max
(
s
->
terminal_available_time
,
tw_now
(
lp
));
s
->
terminal_available_time
=
max
d
(
s
->
terminal_available_time
,
tw_now
(
lp
));
s
->
terminal_available_time
+=
ts
;
//TODO: be annotation-aware
...
...
@@ -662,7 +664,7 @@ if( msg->packet_ID == TRACK && msg->chunk_id == num_chunks-1)
ts
=
credit_delay
+
0
.
1
+
tw_rand_exponential
(
lp
->
rng
,
credit_delay
/
1000
);
msg
->
saved_credit_time
=
s
->
next_credit_available_time
;
s
->
next_credit_available_time
=
max
(
s
->
next_credit_available_time
,
tw_now
(
lp
));
s
->
next_credit_available_time
=
max
d
(
s
->
next_credit_available_time
,
tw_now
(
lp
));
s
->
next_credit_available_time
+=
ts
;
tw_lpid
router_dest_id
;
...
...
@@ -1292,7 +1294,7 @@ if( msg->packet_ID == TRACK && next_stop != msg->dest_terminal_id && msg->chunk_
msg
->
saved_available_time
=
s
->
next_output_available_time
[
output_port
];
ts
=
g_tw_lookahead
+
0
.
1
+
((
1
/
bandwidth
)
*
chunk_size
)
+
tw_rand_exponential
(
lp
->
rng
,
(
double
)
chunk_size
/
200
);
s
->
next_output_available_time
[
output_port
]
=
max
(
s
->
next_output_available_time
[
output_port
],
tw_now
(
lp
));
s
->
next_output_available_time
[
output_port
]
=
max
d
(
s
->
next_output_available_time
[
output_port
],
tw_now
(
lp
));
s
->
next_output_available_time
[
output_port
]
+=
ts
;
// dest can be a router or a terminal, so we must check
void
*
m_data
;
...
...
src/models/networks/model-net/torus.c
View file @
c65c84a1
...
...
@@ -31,6 +31,8 @@
#define LP_CONFIG_NM (model_net_lp_config_names[TORUS])
#define LP_METHOD_NM (model_net_method_names[TORUS])
static
double
maxd
(
double
a
,
double
b
)
{
return
a
<
b
?
b
:
a
;
}
/* Torus network model implementation of codes, implements the modelnet API */
/* Link bandwidth for each torus link, configurable from the config file */
...
...
@@ -811,7 +813,7 @@ static void credit_send( nodes_state * s,
int
src_dim
=
msg
->
source_dim
;
msg
->
saved_available_time
=
s
->
next_credit_available_time
[(
2
*
src_dim
)
+
src_dir
][
0
];
s
->
next_credit_available_time
[(
2
*
src_dim
)
+
src_dir
][
0
]
=
max
(
s
->
next_credit_available_time
[(
2
*
src_dim
)
+
src_dir
][
0
],
tw_now
(
lp
));
s
->
next_credit_available_time
[(
2
*
src_dim
)
+
src_dir
][
0
]
=
max
d
(
s
->
next_credit_available_time
[(
2
*
src_dim
)
+
src_dir
][
0
],
tw_now
(
lp
));
ts
=
credit_delay
+
tw_rand_exponential
(
lp
->
rng
,
credit_delay
/
1000
);
s
->
next_credit_available_time
[(
2
*
src_dim
)
+
src_dir
][
0
]
+=
ts
;
...
...
@@ -852,7 +854,7 @@ static void packet_send( nodes_state * s,
// For reverse computation
msg
->
saved_available_time
=
s
->
next_link_available_time
[
tmp_dir
+
(
tmp_dim
*
2
)][
0
];
s
->
next_link_available_time
[
tmp_dir
+
(
tmp_dim
*
2
)][
0
]
=
max
(
s
->
next_link_available_time
[
tmp_dir
+
(
tmp_dim
*
2
)][
0
],
tw_now
(
lp
)
);
s
->
next_link_available_time
[
tmp_dir
+
(
tmp_dim
*
2
)][
0
]
=
max
d
(
s
->
next_link_available_time
[
tmp_dir
+
(
tmp_dim
*
2
)][
0
],
tw_now
(
lp
)
);
s
->
next_link_available_time
[
tmp_dir
+
(
tmp_dim
*
2
)][
0
]
+=
ts
;
//e = tw_event_new( dst_lp, s->next_link_available_time[tmp_dir + ( tmp_dim * 2 )][0] - tw_now(lp), lp );
...
...
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