Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
codes
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
38
Issues
38
List
Boards
Labels
Milestones
Merge Requests
8
Merge Requests
8
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
codes
codes
Commits
dd369556
Commit
dd369556
authored
Apr 16, 2014
by
Jonathan Jenkins
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Packet-ordering fix - packets had essentially random order
parent
8a4cd871
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
38 additions
and
17 deletions
+38
-17
codes/dragonfly.h
codes/dragonfly.h
+1
-1
codes/model-net-method.h
codes/model-net-method.h
+2
-1
codes/torus.h
codes/torus.h
+2
-1
src/models/networks/model-net/dragonfly.c
src/models/networks/model-net/dragonfly.c
+3
-3
src/models/networks/model-net/loggp.c
src/models/networks/model-net/loggp.c
+6
-3
src/models/networks/model-net/model-net.c
src/models/networks/model-net/model-net.c
+15
-3
src/models/networks/model-net/simplenet-upd.c
src/models/networks/model-net/simplenet-upd.c
+6
-3
src/models/networks/model-net/torus.c
src/models/networks/model-net/torus.c
+3
-2
No files found.
codes/dragonfly.h
View file @
dd369556
...
...
@@ -65,7 +65,7 @@ static tw_lpid dragonfly_find_local_device(tw_lp *sender);
/* dragonfly packet event method called by modelnet, this method triggers the packet
* generate event of dragonfly and attached remote and local events to the last packet
* of the message */
static
void
dragonfly_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
const
void
*
self_event
,
tw_lp
*
sender
,
int
is_last_pckt
);
static
tw_stime
dragonfly_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
tw_stime
offset
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
const
void
*
self_event
,
tw_lp
*
sender
,
int
is_last_pckt
);
/* returns dragonfly message size */
static
int
dragonfly_get_msg_sz
(
void
);
...
...
codes/model-net-method.h
View file @
dd369556
...
...
@@ -14,10 +14,11 @@ struct model_net_method
char
*
method_name
;
/* example: "dragonfly" */
int
packet_size
;
/* packet size */
void
(
*
mn_setup
)(
const
void
*
net_params
);
/* For initializing the network */
void
(
*
model_net_method_packet_event
)(
tw_stime
(
*
model_net_method_packet_event
)(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
tw_stime
offset
,
int
remote_event_size
,
/* 0 means don't deliver remote event */
const
void
*
remote_event
,
int
self_event_size
,
/* 0 means don't deliver self event */
...
...
codes/torus.h
View file @
dd369556
...
...
@@ -59,10 +59,11 @@ typedef struct nodes_state nodes_state;
typedef
struct
nodes_message
nodes_message
;
/* Issues a torus packet event call */
static
void
torus_packet_event
(
static
tw_stime
torus_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
tw_stime
offset
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
...
...
src/models/networks/model-net/dragonfly.c
View file @
dd369556
...
...
@@ -56,7 +56,7 @@ static void dragonfly_report_stats()
return
;
}
/* dragonfly packet event , generates a dragonfly packet on the compute node */
static
void
dragonfly_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
const
void
*
self_event
,
tw_lp
*
sender
,
int
is_last_pckt
)
static
tw_stime
dragonfly_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
tw_stime
offset
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
const
void
*
self_event
,
tw_lp
*
sender
,
int
is_last_pckt
)
{
tw_event
*
e_new
;
tw_stime
xfer_to_nic_time
;
...
...
@@ -73,7 +73,7 @@ static void dragonfly_packet_event(char* category, tw_lpid final_dest_lp, int pa
codes_mapping_get_lp_id
(
lp_group_name
,
"modelnet_dragonfly"
,
mapping_rep_id
,
mapping_offset
,
&
dest_nic_id
);
xfer_to_nic_time
=
0
.
01
+
codes_local_latency
(
sender
);
/* Throws an error of found last KP time > current event time otherwise when LPs of one type are placed together*/
e_new
=
tw_event_new
(
local_nic_id
,
xfer_to_nic_time
,
sender
);
e_new
=
tw_event_new
(
local_nic_id
,
xfer_to_nic_time
+
offset
,
sender
);
msg
=
tw_event_data
(
e_new
);
strcpy
(
msg
->
category
,
category
);
msg
->
final_dest_gid
=
final_dest_lp
;
...
...
@@ -103,7 +103,7 @@ static void dragonfly_packet_event(char* category, tw_lpid final_dest_lp, int pa
}
//printf("\n torus remote event %d local event %d last packet %d %lf ", msg->remote_event_size_bytes, msg->local_event_size_bytes, is_last_pckt, xfer_to_nic_time);
tw_event_send
(
e_new
);
return
;
return
xfer_to_nic_time
;
}
/* returns the torus message size */
...
...
src/models/networks/model-net/loggp.c
View file @
dd369556
...
...
@@ -105,10 +105,11 @@ static int loggp_get_magic();
static
void
loggp_setup
(
const
void
*
net_params
);
/* Issues a loggp packet event call */
static
void
loggp_packet_event
(
static
tw_stime
loggp_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
tw_stime
offset
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
...
...
@@ -480,10 +481,11 @@ static void handle_msg_start_event(
/*This method will serve as an intermediate layer between loggp and modelnet.
* It takes the packets from modelnet layer and calls underlying loggp methods*/
static
void
loggp_packet_event
(
static
tw_stime
loggp_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
tw_stime
offset
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
...
...
@@ -503,7 +505,7 @@ static void loggp_packet_event(
codes_mapping_get_lp_id
(
lp_group_name
,
"modelnet_loggp"
,
mapping_rep_id
,
mapping_offset
,
&
dest_id
);
xfer_to_nic_time
=
codes_local_latency
(
sender
);
e_new
=
tw_event_new
(
dest_id
,
xfer_to_nic_time
,
sender
);
e_new
=
tw_event_new
(
dest_id
,
xfer_to_nic_time
+
offset
,
sender
);
msg
=
tw_event_data
(
e_new
);
strcpy
(
msg
->
category
,
category
);
msg
->
final_dest_gid
=
final_dest_lp
;
...
...
@@ -536,6 +538,7 @@ static void loggp_packet_event(
// printf("\n Last packet size: %d ", loggp_get_msg_sz() + remote_event_size + self_event_size);
}
tw_event_send
(
e_new
);
return
xfer_to_nic_time
;
}
static
void
loggp_setup
(
const
void
*
net_params
)
...
...
src/models/networks/model-net/model-net.c
View file @
dd369556
...
...
@@ -14,13 +14,14 @@
#define PROC_TIME 10.0
extern
struct
model_net_method
simplenet_method
;
extern
struct
model_net_method
simplewan_method
;
extern
struct
model_net_method
torus_method
;
extern
struct
model_net_method
dragonfly_method
;
extern
struct
model_net_method
loggp_method
;
/* Global array initialization, terminated with a NULL entry */
static
struct
model_net_method
*
method_array
[]
=
{
&
simplenet_method
,
&
torus_method
,
&
dragonfly_method
,
&
loggp_method
,
NULL
};
{
&
simplenet_method
,
&
simplewan_method
,
&
torus_method
,
&
dragonfly_method
,
&
loggp_method
,
NULL
};
static
int
model_net_get_msg_sz
(
int
net_id
);
...
...
@@ -174,6 +175,7 @@ void model_net_event(
* passed along through network hops and delivered to final_dest_lp
*/
tw_stime
offset
=
0
.
0
;
for
(
i
=
0
;
i
<
num_packets
;
i
++
)
{
/*Mark the last packet to the net method API*/
...
...
@@ -184,7 +186,9 @@ void model_net_event(
packet_size
=
message_size
-
((
num_packets
-
1
)
*
packet_size
);
}
/* Number of packets and packet ID is passed to the underlying network to mark the final packet for local event completion*/
method_array
[
net_id
]
->
model_net_method_packet_event
(
category
,
final_dest_lp
,
packet_size
,
remote_event_size
,
remote_event
,
self_event_size
,
self_event
,
sender
,
last
);
offset
+=
method_array
[
net_id
]
->
model_net_method_packet_event
(
category
,
final_dest_lp
,
packet_size
,
offset
,
remote_event_size
,
remote_event
,
self_event_size
,
self_event
,
sender
,
last
);
}
return
;
}
...
...
@@ -216,6 +220,12 @@ int model_net_set_params()
net_params
.
net_bw_mbps
=
net_bw_mbps
;
net_id
=
model_net_setup
(
"simplenet"
,
packet_size
,
(
const
void
*
)
&
net_params
);
/* Sets the network as simplenet and packet size 512 */
}
else
if
(
strcmp
(
"simplewan"
,
mn_name
)
==
0
){
simplewan_param
net_params
;
configuration_get_value_relpath
(
&
config
,
"PARAMS"
,
"net_startup_ns_file"
,
net_params
.
startup_filename
,
MAX_NAME_LENGTH
);
configuration_get_value_relpath
(
&
config
,
"PARAMS"
,
"net_bw_mbps_file"
,
net_params
.
bw_filename
,
MAX_NAME_LENGTH
);
net_id
=
model_net_setup
(
"simplewan"
,
packet_size
,
(
const
void
*
)
&
net_params
);
}
else
if
(
strcmp
(
"loggp"
,
mn_name
)
==
0
)
{
char
net_config_file
[
256
];
...
...
@@ -462,7 +472,9 @@ void model_net_add_lp_type(int net_id)
case
SIMPLENET
:
lp_type_register
(
"modelnet_simplenet"
,
model_net_get_lp_type
(
net_id
));
break
;
case
SIMPLEWAN
:
lp_type_register
(
"modelnet_simplewan"
,
model_net_get_lp_type
(
net_id
));
break
;
case
TORUS
:
lp_type_register
(
"modelnet_torus"
,
model_net_get_lp_type
(
net_id
));
break
;
...
...
src/models/networks/model-net/simplenet-upd.c
View file @
dd369556
...
...
@@ -98,10 +98,11 @@ static int sn_get_magic();
static
void
sn_setup
(
const
void
*
net_params
);
/* Issues a simplenet packet event call */
static
void
simplenet_packet_event
(
static
tw_stime
simplenet_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
tw_stime
offset
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
...
...
@@ -476,10 +477,11 @@ static void handle_msg_start_event(
/*This method will serve as an intermediate layer between simplenet and modelnet.
* It takes the packets from modelnet layer and calls underlying simplenet methods*/
static
void
simplenet_packet_event
(
static
tw_stime
simplenet_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
tw_stime
offset
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
...
...
@@ -499,7 +501,7 @@ static void simplenet_packet_event(
codes_mapping_get_lp_id
(
lp_group_name
,
"modelnet_simplenet"
,
mapping_rep_id
,
mapping_offset
,
&
dest_id
);
xfer_to_nic_time
=
codes_local_latency
(
sender
);
e_new
=
tw_event_new
(
dest_id
,
xfer_to_nic_time
,
sender
);
e_new
=
tw_event_new
(
dest_id
,
xfer_to_nic_time
+
offset
,
sender
);
msg
=
tw_event_data
(
e_new
);
strcpy
(
msg
->
category
,
category
);
msg
->
final_dest_gid
=
final_dest_lp
;
...
...
@@ -532,6 +534,7 @@ static void simplenet_packet_event(
// printf("\n Last packet size: %d ", sn_get_msg_sz() + remote_event_size + self_event_size);
}
tw_event_send
(
e_new
);
return
xfer_to_nic_time
;
}
static
void
sn_setup
(
const
void
*
net_params
)
...
...
src/models/networks/model-net/torus.c
View file @
dd369556
...
...
@@ -38,7 +38,7 @@ static void torus_packet_event_rc(tw_lp *sender)
}
/* torus packet event , generates a torus packet on the compute node */
static
void
torus_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
const
void
*
self_event
,
tw_lp
*
sender
,
int
is_last_pckt
)
static
tw_stime
torus_packet_event
(
char
*
category
,
tw_lpid
final_dest_lp
,
int
packet_size
,
tw_stime
offset
,
int
remote_event_size
,
const
void
*
remote_event
,
int
self_event_size
,
const
void
*
self_event
,
tw_lp
*
sender
,
int
is_last_pckt
)
{
tw_event
*
e_new
;
tw_stime
xfer_to_nic_time
;
...
...
@@ -56,7 +56,7 @@ static void torus_packet_event(char* category, tw_lpid final_dest_lp, int packet
/* TODO: Should send the packets in correct sequence. Currently the last packet is being sent first due to codes_local_latency offset. */
xfer_to_nic_time
=
0
.
01
+
codes_local_latency
(
sender
);
/* Throws an error of found last KP time > current event time otherwise */
e_new
=
tw_event_new
(
local_nic_id
,
xfer_to_nic_time
,
sender
);
e_new
=
tw_event_new
(
local_nic_id
,
xfer_to_nic_time
+
offset
,
sender
);
msg
=
tw_event_data
(
e_new
);
strcpy
(
msg
->
category
,
category
);
msg
->
final_dest_gid
=
final_dest_lp
;
...
...
@@ -93,6 +93,7 @@ static void torus_packet_event(char* category, tw_lpid final_dest_lp, int packet
// printf("\n torus remote event %d local event %d last packet %d %lf ", msg->remote_event_size_bytes, msg->local_event_size_bytes, is_last_pckt, xfer_to_nic_time);
}
tw_event_send
(
e_new
);
return
xfer_to_nic_time
;
}
/*Initialize the torus model, this initialization part is borrowed from Ning's torus model */
...
...
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