Commit 47bbd8b0 authored by Misbah Mubarak's avatar Misbah Mubarak

Adding AMG 1728 config file, minor updates to dragonfly model

parent 171ca1a0
...@@ -148,6 +148,7 @@ src_libcodes_a_SOURCES = \ ...@@ -148,6 +148,7 @@ src_libcodes_a_SOURCES = \
src/network-workloads/model-net-mpi-wrklds.c \ src/network-workloads/model-net-mpi-wrklds.c \
src/network-workloads/model-net-mpi-replay.c \ src/network-workloads/model-net-mpi-replay.c \
src/network-workloads/model-net-synthetic.c \ src/network-workloads/model-net-synthetic.c \
src/network-workloads/read-dumpi-traces.c \
src/network-workloads/model-net-dumpi-traces-dump.c src/network-workloads/model-net-dumpi-traces-dump.c
...@@ -169,6 +170,7 @@ bin_PROGRAMS += src/network-workloads/model-net-mpi-replay ...@@ -169,6 +170,7 @@ bin_PROGRAMS += src/network-workloads/model-net-mpi-replay
bin_PROGRAMS += src/network-workloads/model-net-mpi-wrklds bin_PROGRAMS += src/network-workloads/model-net-mpi-wrklds
bin_PROGRAMS += src/network-workloads/model-net-dumpi-traces-dump bin_PROGRAMS += src/network-workloads/model-net-dumpi-traces-dump
bin_PROGRAMS += src/network-workloads/model-net-synthetic bin_PROGRAMS += src/network-workloads/model-net-synthetic
bin_PROGRAMS += src/network-workloads/read-dumpi-traces
src_workload_codes_workload_dump_SOURCES = \ src_workload_codes_workload_dump_SOURCES = \
...@@ -179,6 +181,7 @@ src_network_workloads_model_net_mpi_replay_SOURCES = src/network-workloads/model ...@@ -179,6 +181,7 @@ src_network_workloads_model_net_mpi_replay_SOURCES = src/network-workloads/model
src_network_workloads_model_net_mpi_wrklds_SOURCES = src/network-workloads/model-net-mpi-wrklds.c src_network_workloads_model_net_mpi_wrklds_SOURCES = src/network-workloads/model-net-mpi-wrklds.c
src_network_workloads_model_net_synthetic_SOURCES = src/network-workloads/model-net-synthetic.c src_network_workloads_model_net_synthetic_SOURCES = src/network-workloads/model-net-synthetic.c
src_network_workloads_model_net_dumpi_traces_dump_SOURCES = src/network-workloads/model-net-dumpi-traces-dump.c src_network_workloads_model_net_dumpi_traces_dump_SOURCES = src/network-workloads/model-net-dumpi-traces-dump.c
src_network_workloads_read_dumpi_traces_SOURCES = src/network-workloads/read-dumpi-traces.c
#bin_PROGRAMS += src/network-workload/codes-nw-test #bin_PROGRAMS += src/network-workload/codes-nw-test
......
LPGROUPS
{
MODELNET_GRP
{
repetitions="510";
nw-lp="5";
modelnet_dragonfly="5";
modelnet_dragonfly_router="1";
}
}
PARAMS
{
packet_size="512";
modelnet_order=( "dragonfly", "dragonfly_router");
# scheduler options
modelnet_scheduler="fcfs";
chunk_size="256";
# modelnet_scheduler="round-robin";
num_routers="10";
local_vc_size="16384";
global_vc_size="32768";
cn_vc_size="16384";
local_bandwidth="5.25";
global_bandwidth="4.7";
cn_bandwidth="5.25";
message_size="560";
routing="minimal";
}
...@@ -1446,7 +1446,7 @@ int main( int argc, char** argv ) ...@@ -1446,7 +1446,7 @@ int main( int argc, char** argv )
model_net_register(); model_net_register();
net_ids = model_net_configure(&num_nets); net_ids = model_net_configure(&num_nets);
assert(num_nets == 1); // assert(num_nets == 1);
net_id = *net_ids; net_id = *net_ids;
free(net_ids); free(net_ids);
......
...@@ -365,14 +365,14 @@ static int dragonfly_rank_hash_compare( ...@@ -365,14 +365,14 @@ static int dragonfly_rank_hash_compare(
static int dragonfly_hash_func(void *k, int table_size) static int dragonfly_hash_func(void *k, int table_size)
{ {
struct dfly_hash_key *tmp = (struct dfly_hash_key *)k; struct dfly_hash_key *tmp = (struct dfly_hash_key *)k;
uint32_t pc = 0, pb = 0; //uint32_t pc = 0, pb = 0;
bj_hashlittle2(tmp, sizeof(*tmp), &pc, &pb); //bj_hashlittle2(tmp, sizeof(*tmp), &pc, &pb);
/*uint64_t key = (~tmp->message_id) + (tmp->message_id << 18); uint64_t key = (~tmp->message_id) + (tmp->message_id << 18);
key = key * 21; key = key * 21;
key = ~key ^ (tmp->sender_id >> 4); key = ~key ^ (tmp->sender_id >> 4);
key = key * tmp->sender_id; key = key * tmp->sender_id;
return (int)(key & (table_size - 1));*/ return (int)(key & (table_size - 1));
return (int)(pc % (table_size - 1)); //return (int)(pc % (table_size - 1));
} }
/* convert GiB/s and bytes to ns */ /* convert GiB/s and bytes to ns */
...@@ -1366,7 +1366,7 @@ void packet_arrive_rc(terminal_state * s, tw_bf * bf, terminal_message * msg, tw ...@@ -1366,7 +1366,7 @@ void packet_arrive_rc(terminal_state * s, tw_bf * bf, terminal_message * msg, tw
if(bf->c7) if(bf->c7)
{ {
assert(!hash_link); //assert(!hash_link);
N_finished_msgs--; N_finished_msgs--;
s->finished_msgs--; s->finished_msgs--;
total_msg_sz -= msg->total_size; total_msg_sz -= msg->total_size;
...@@ -1386,14 +1386,14 @@ void packet_arrive_rc(terminal_state * s, tw_bf * bf, terminal_message * msg, tw ...@@ -1386,14 +1386,14 @@ void packet_arrive_rc(terminal_state * s, tw_bf * bf, terminal_message * msg, tw
assert(tmp); assert(tmp);
tmp->num_chunks--; tmp->num_chunks--;
if(bf->c5) /*if(bf->c5)
{ {
assert(hash_link); assert(hash_link);
qhash_del(hash_link); qhash_del(hash_link);
free(tmp->remote_event_data); free(tmp->remote_event_data);
free(tmp); free(tmp);
s->rank_tbl_pop--; s->rank_tbl_pop--;
} }*/
return; return;
} }
void send_remote_event(terminal_state * s, terminal_message * msg, tw_lp * lp, tw_bf * bf, char * event_data, int remote_event_size) void send_remote_event(terminal_state * s, terminal_message * msg, tw_lp * lp, tw_bf * bf, char * event_data, int remote_event_size)
...@@ -1450,15 +1450,15 @@ void packet_arrive(terminal_state * s, tw_bf * bf, terminal_message * msg, ...@@ -1450,15 +1450,15 @@ void packet_arrive(terminal_state * s, tw_bf * bf, terminal_message * msg,
if(!total_chunks) if(!total_chunks)
total_chunks = 1; total_chunks = 1;
if(tmp) /*if(tmp)
{ {
if(tmp->num_chunks >= total_chunks || tmp->num_chunks == 0) if(tmp->num_chunks >= total_chunks || tmp->num_chunks < 0)
{ {
tw_output(lp, "\n invalid number of chunks %d for LP %ld ", tmp->num_chunks, lp->gid); //tw_output(lp, "\n invalid number of chunks %d for LP %ld ", tmp->num_chunks, lp->gid);
tw_lp_suspend(lp, 0, 0); tw_lp_suspend(lp, 0, 0);
return; return;
} }
} }*/
assert(lp->gid == msg->dest_terminal_id); assert(lp->gid == msg->dest_terminal_id);
if(msg->packet_ID == LLU(TRACK_PKT)) if(msg->packet_ID == LLU(TRACK_PKT))
...@@ -1571,7 +1571,6 @@ void packet_arrive(terminal_state * s, tw_bf * bf, terminal_message * msg, ...@@ -1571,7 +1571,6 @@ void packet_arrive(terminal_state * s, tw_bf * bf, terminal_message * msg,
assert(tmp); assert(tmp);
tmp->num_chunks++; tmp->num_chunks++;
/* if its the last chunk of the packet then handle the remote event data */
if(msg->chunk_id == num_chunks - 1) if(msg->chunk_id == num_chunks - 1)
{ {
bf->c1 = 1; bf->c1 = 1;
...@@ -1581,6 +1580,7 @@ void packet_arrive(terminal_state * s, tw_bf * bf, terminal_message * msg, ...@@ -1581,6 +1580,7 @@ void packet_arrive(terminal_state * s, tw_bf * bf, terminal_message * msg,
N_finished_packets++; N_finished_packets++;
s->finished_packets++; s->finished_packets++;
} }
/* if its the last chunk of the packet then handle the remote event data */
if(msg->remote_event_size_bytes > 0 && !tmp->remote_event_data) if(msg->remote_event_size_bytes > 0 && !tmp->remote_event_data)
{ {
/* Retreive the remote event entry */ /* Retreive the remote event entry */
......
...@@ -14,7 +14,7 @@ PARAMS ...@@ -14,7 +14,7 @@ PARAMS
modelnet_order=( "dragonfly","dragonfly_router" ); modelnet_order=( "dragonfly","dragonfly_router" );
# scheduler options # scheduler options
modelnet_scheduler="fcfs"; modelnet_scheduler="fcfs";
chunk_size="32"; chunk_size="256";
# modelnet_scheduler="round-robin"; # modelnet_scheduler="round-robin";
num_routers="4"; num_routers="4";
local_vc_size="2048"; local_vc_size="2048";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment