Commit 4d25ba0e authored by Caitlin Ross's avatar Caitlin Ross

merged master

parents 77e85ef9 9246469e
...@@ -3,8 +3,10 @@ Nikhil Jain, Abhinav Bhatele (LLNL) ...@@ -3,8 +3,10 @@ Nikhil Jain, Abhinav Bhatele (LLNL)
- Addition of direct scheme for setting up dragonfly network topology. - Addition of direct scheme for setting up dragonfly network topology.
- Network configuration setup for custom dragonfly model. - Network configuration setup for custom dragonfly model.
- Topology generations scripts for custom dragonfly model. - Topology generations scripts for custom dragonfly model.
- Bug fix for virtual channel deadlocks in custom dragonfly model.
- Bug reporter for CODES network models. - Bug reporter for CODES network models.
- Fat tree network setup and adaptive routing. - Fat tree network setup and adaptive routing.
- Pending: Merging Express mesh model to master.
Jens Domke (U. of Dresden) Jens Domke (U. of Dresden)
- Static routing in fat tree network model. - Static routing in fat tree network model.
......
...@@ -72,6 +72,7 @@ struct dumpi_trace_params { ...@@ -72,6 +72,7 @@ struct dumpi_trace_params {
#ifdef ENABLE_CORTEX_PYTHON #ifdef ENABLE_CORTEX_PYTHON
char cortex_script[MAX_NAME_LENGTH_WKLD]; char cortex_script[MAX_NAME_LENGTH_WKLD];
char cortex_class[MAX_NAME_LENGTH_WKLD]; char cortex_class[MAX_NAME_LENGTH_WKLD];
char cortex_gen[MAX_NAME_LENGTH_WKLD];
#endif #endif
}; };
......
...@@ -22,6 +22,7 @@ extern "C" { ...@@ -22,6 +22,7 @@ extern "C" {
#include "model-net.h" #include "model-net.h"
#include "model-net-sched.h" #include "model-net-sched.h"
#include "net/dragonfly.h" #include "net/dragonfly.h"
#include "net/dragonfly-custom.h"
#include "net/slimfly.h" #include "net/slimfly.h"
#include "net/fattree.h" #include "net/fattree.h"
#include "net/loggp.h" #include "net/loggp.h"
...@@ -124,6 +125,7 @@ typedef struct model_net_wrap_msg { ...@@ -124,6 +125,7 @@ typedef struct model_net_wrap_msg {
union { union {
model_net_base_msg m_base; // base lp model_net_base_msg m_base; // base lp
terminal_message m_dfly; // dragonfly terminal_message m_dfly; // dragonfly
terminal_custom_message m_custom_dfly; // dragonfly-custom
slim_terminal_message m_slim; // slimfly slim_terminal_message m_slim; // slimfly
fattree_message m_fat; // fattree fattree_message m_fat; // fattree
loggp_message m_loggp; // loggp loggp_message m_loggp; // loggp
......
...@@ -140,7 +140,7 @@ AC_ARG_WITH([boost],[AS_HELP_STRING([--with-boost@<:@=DIR@:>@], ...@@ -140,7 +140,7 @@ AC_ARG_WITH([boost],[AS_HELP_STRING([--with-boost@<:@=DIR@:>@],
[location of Boost Python installation])]) [location of Boost Python installation])])
if [ test "x${with_python}" != "x" -a "x${with_boost}" != "x"] ; then if [ test "x${with_python}" != "x" -a "x${with_boost}" != "x"] ; then
AC_CHECK_FILES([${with_python}/lib/libpython2.7.a ${with_boost}/lib/libboost_python.a], AC_CHECK_FILES([${with_python}/lib/libpython2.7.so ${with_boost}/lib/libboost_python.a],
AM_CONDITIONAL(USE_PYTHON, true), AM_CONDITIONAL(USE_PYTHON, true),
AC_MSG_ERROR(Could not find Python and/or Boost-Python libraries)) AC_MSG_ERROR(Could not find Python and/or Boost-Python libraries))
PYTHON_CFLAGS="-I${with_python}/include -I${with_boost}/include" PYTHON_CFLAGS="-I${with_python}/include -I${with_boost}/include"
......
...@@ -29,12 +29,15 @@ int main(int argc, char **argv) { ...@@ -29,12 +29,15 @@ int main(int argc, char **argv) {
int r = atoi(argv[2]); int r = atoi(argv[2]);
int c = atoi(argv[3]); int c = atoi(argv[3]);
int total_routers = g * r * c;
FILE *intra = fopen(argv[4], "wb"); FILE *intra = fopen(argv[4], "wb");
FILE *inter = fopen(argv[5], "wb"); FILE *inter = fopen(argv[5], "wb");
int router = 0; int router = 0;
int green = 0, black = 1; int green = 0, black = 1;
int groups = 0; int groups = 0;
printf("\n Rows %d Cols %d Groups %d ", r, c, g);
for(int rows = 0; rows < r; rows++) { for(int rows = 0; rows < r; rows++) {
for(int cols = 0; cols < c; cols++) { for(int cols = 0; cols < c; cols++) {
for(int cols1 = 0; cols1 < c; cols1++) { for(int cols1 = 0; cols1 < c; cols1++) {
...@@ -71,7 +74,7 @@ int main(int argc, char **argv) { ...@@ -71,7 +74,7 @@ int main(int argc, char **argv) {
} else { } else {
ndstg--; ndstg--;
} }
int gsize = 2, gs = 16; int gsize = 2, gs = c;
for(int row = 0; row < r; row++) { for(int row = 0; row < r; row++) {
int srcrB = srcg * r * c + row * c, srcr; int srcrB = srcg * r * c + row * c, srcr;
int dstrB = dstg * r * c + row * c, dstr; int dstrB = dstg * r * c + row * c, dstr;
...@@ -79,15 +82,19 @@ int main(int argc, char **argv) { ...@@ -79,15 +82,19 @@ int main(int argc, char **argv) {
int dstB = (nsrcg % (gs/2)) * 2; int dstB = (nsrcg % (gs/2)) * 2;
srcr = srcrB + srcB; srcr = srcrB + srcB;
dstr = dstrB + dstB; dstr = dstrB + dstB;
for(int r = 0; r < 2; r++) {
for(int block = 0; block < gsize; block++) { if(srcr >= total_routers || dstr >= total_routers)
fwrite(&srcr, sizeof(int), 1, inter); printf("\n connection between invalid routers src %d and dest %d ", srcr, dstr);
fwrite(&dstr, sizeof(int), 1, inter);
printf("INTER %d %d\n", srcr, dstr); for(int r = 0; r < 2; r++) {
for(int block = 0; block < gsize; block++) {
fwrite(&srcr, sizeof(int), 1, inter);
fwrite(&dstr, sizeof(int), 1, inter);
printf("INTER %d %d srcg %d destg %d srcrb %d dstrB %d \n", srcr, dstr, srcg, dstg, srcrB, dstrB);
} }
srcr++; srcr++;
dstr++; dstr++;
} }
} }
} }
} }
......
//////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2014, Lawrence Livermore National Security, LLC.
// Produced at the Lawrence Livermore National Laboratory.
//
// Written by:
// Nikhil Jain <nikhil.jain@acm.org>
// Abhinav Bhatele <bhatele@llnl.gov>
// Peer-Timo Bremer <ptbremer@llnl.gov>
//
// LLNL-CODE-678961. All rights reserved.
//
// This file is part of Damselfly. For details, see:
// https://github.com/scalability-llnl/damselfly
// Please also read the LICENSE file for our notice and the LGPL.
//////////////////////////////////////////////////////////////////////////////
#include "stdio.h"
#include "stdlib.h"
//Usage ./binary num_groups num_rows num_columns intra_file inter_file
int main(int argc, char **argv) {
if(argc < 3) {
printf("Correct usage: %s <num_group> <num_rows> <num_cols> <cons_across_groups> <cons_in_row> <cons_in_col> <intra_file> <inter_file>", argv[0]);
exit(0);
}
int g = atoi(argv[1]);
int r = atoi(argv[2]);
int c = atoi(argv[3]);
int g_p = atoi(argv[4]);
int r_p = atoi(argv[5]);
int c_p = atoi(argv[6]);
int total_routers = g * r * c;
int routers_per_g = r * c;
FILE *intra = fopen(argv[7], "wb");
FILE *inter = fopen(argv[8], "wb");
int router = 0;
int green = 0, black = 1;
int groups = 0;
for(int rows = 0; rows < r; rows++) {
for(int cols = 0; cols < c; cols++) {
for(int cols1 = 0; cols1 < c; cols1++) {
if(cols1 != cols) {
int dest = (rows * c) + cols1;
for(int link = 0; link < c_p; link++) {
fwrite(&router, sizeof(int), 1, intra);
fwrite(&dest, sizeof(int), 1, intra);
fwrite(&green, sizeof(int), 1, intra);
printf("INTRA %d %d %d\n", router, dest, green);
}
}
}
for(int rows1 = 0; rows1 < r; rows1++) {
if(rows1 != rows) {
int dest = (rows1 * c) + cols;
for(int link = 0; link < r_p; link++) {
fwrite(&router, sizeof(int), 1, intra);
fwrite(&dest, sizeof(int), 1, intra);
fwrite(&black, sizeof(int), 1, intra);
printf("INTRA %d %d %d\n", router, dest, black);
}
}
}
router++;
}
}
for(int srcg = 0; srcg < g; srcg++) {
for(int dstg = 0; dstg < g; dstg++) {
if(srcg != dstg) {
int nsrcg = srcg;
int ndstg = dstg;
if(srcg > dstg) {
nsrcg--;
} else {
ndstg--;
}
int startSrc = ndstg * g_p;
int startDst = nsrcg * g_p;
for(int link = 0; link < g_p; link++) {
int srcrB = srcg * routers_per_g, srcr;
int dstrB = dstg * routers_per_g, dstr;
srcr = srcrB + (startSrc + link) % routers_per_g;
dstr = dstrB + (startDst + link) % routers_per_g;
if(srcr >= total_routers || dstr >= total_routers)
printf("\n connection between invalid routers src %d and dest %d ", srcr, dstr);
fwrite(&srcr, sizeof(int), 1, inter);
fwrite(&dstr, sizeof(int), 1, inter);
printf("INTER %d %d srcg %d destg %d\n", srcr, dstr, srcg, dstg);
}
}
}
}
fclose(intra);
fclose(inter);
}
...@@ -49,9 +49,9 @@ PARAMS ...@@ -49,9 +49,9 @@ PARAMS
# number of global channels per router # number of global channels per router
num_global_channels="10"; num_global_channels="10";
# network config file for intra-group connections # network config file for intra-group connections
intra-group-connections="@abs_srcdir@/intra-custom-small"; intra-group-connections="@abs_srcdir@/intra-theta";
# network config file for inter-group connections # network config file for inter-group connections
inter-group-connections="@abs_srcdir@/inter-custom-small"; inter-group-connections="@abs_srcdir@/inter-theta";
# routing protocol to be used # routing protocol to be used
routing="prog-adaptive"; routing="prog-adaptive";
} }
...@@ -2,11 +2,11 @@ LPGROUPS ...@@ -2,11 +2,11 @@ LPGROUPS
{ {
MODELNET_GRP MODELNET_GRP
{ {
repetitions="1600"; repetitions="1520";
# name of this lp changes according to the model # name of this lp changes according to the model
nw-lp="4"; nw-lp="8";
# these lp names will be the same for dragonfly-custom model # these lp names will be the same for dragonfly-custom model
modelnet_dragonfly_custom="4"; modelnet_dragonfly_custom="8";
modelnet_dragonfly_custom_router="1"; modelnet_dragonfly_custom_router="1";
} }
} }
...@@ -24,11 +24,11 @@ PARAMS ...@@ -24,11 +24,11 @@ PARAMS
# number of routers within each group # number of routers within each group
# this is dictated by the dragonfly configuration files # this is dictated by the dragonfly configuration files
# intra-group rows for routers # intra-group rows for routers
num_router_rows="4"; num_router_rows="1";
# intra-group columns for routers # intra-group columns for routers
num_router_cols="20"; num_router_cols="40";
# number of groups in the network # number of groups in the network
num_groups="20"; num_groups="38";
# buffer size in bytes for local virtual channels # buffer size in bytes for local virtual channels
local_vc_size="8192"; local_vc_size="8192";
#buffer size in bytes for global virtual channels #buffer size in bytes for global virtual channels
...@@ -38,20 +38,24 @@ PARAMS ...@@ -38,20 +38,24 @@ PARAMS
#bandwidth in GiB/s for local channels #bandwidth in GiB/s for local channels
local_bandwidth="5.25"; local_bandwidth="5.25";
# bandwidth in GiB/s for global channels # bandwidth in GiB/s for global channels
global_bandwidth="18.75"; global_bandwidth="4.69";
# bandwidth in GiB/s for compute node-router channels # bandwidth in GiB/s for compute node-router channels
cn_bandwidth="8.0"; cn_bandwidth="8.0";
# Number of row channels
num_row_chans="2";
# Number of column channels
num_col_chans="1";
# ROSS message size # ROSS message size
message_size="592"; message_size="592";
# number of compute nodes connected to router, dictated by dragonfly config # number of compute nodes connected to router, dictated by dragonfly config
# file # file
num_cns_per_router="4"; num_cns_per_router="8";
# number of global channels per router # number of global channels per router
num_global_channels="10"; num_global_channels="4";
# network config file for intra-group connections # network config file for intra-group connections
intra-group-connections="../src/network-workloads/conf/dragonfly-custom/intra-custom"; intra-group-connections="/Users/mmubarak/Documents/software_development/codes/scripts/gen-cray-topo/intratest";
# network config file for inter-group connections # network config file for inter-group connections
inter-group-connections="../src/network-workloads/conf/dragonfly-custom/inter-custom"; inter-group-connections="/Users/mmubarak/Documents/software_development/codes/scripts/gen-cray-topo/intertest";
# routing protocol to be used # routing protocol to be used
routing="prog-adaptive"; routing="prog-adaptive";
} }
...@@ -37,7 +37,7 @@ PARAMS ...@@ -37,7 +37,7 @@ PARAMS
#bandwidth in GiB/s for local channels #bandwidth in GiB/s for local channels
local_bandwidth="5.25"; local_bandwidth="5.25";
# bandwidth in GiB/s for global channels # bandwidth in GiB/s for global channels
global_bandwidth="18.75"; global_bandwidth="4.69";
# bandwidth in GiB/s for compute node-router channels # bandwidth in GiB/s for compute node-router channels
cn_bandwidth="16.0"; cn_bandwidth="16.0";
# ROSS message size # ROSS message size
...@@ -46,7 +46,7 @@ PARAMS ...@@ -46,7 +46,7 @@ PARAMS
# file # file
num_cns_per_router="4"; num_cns_per_router="4";
# number of global channels per router # number of global channels per router
num_global_channels="10"; num_global_channels="4";
# network config file for intra-group connections # network config file for intra-group connections
intra-group-connections="../src/network-workloads/conf/dragonfly-custom/intra-theta"; intra-group-connections="../src/network-workloads/conf/dragonfly-custom/intra-theta";
# network config file for inter-group connections # network config file for inter-group connections
......
...@@ -35,8 +35,8 @@ static lp_io_handle io_handle; ...@@ -35,8 +35,8 @@ static lp_io_handle io_handle;
static unsigned int lp_io_use_suffix = 0; static unsigned int lp_io_use_suffix = 0;
static int do_lp_io = 0; static int do_lp_io = 0;
static int num_msgs = 20; static int num_msgs = 20;
static unsigned int sampling_interval = 800000; static tw_stime sampling_interval = 800000;
static unsigned int sampling_end_time = 1600000; static tw_stime sampling_end_time = 1600000;
typedef struct svr_msg svr_msg; typedef struct svr_msg svr_msg;
typedef struct svr_state svr_state; typedef struct svr_state svr_state;
...@@ -111,8 +111,8 @@ const tw_optdef app_opt [] = ...@@ -111,8 +111,8 @@ const tw_optdef app_opt [] =
TWOPT_GROUP("Model net synthetic traffic " ), TWOPT_GROUP("Model net synthetic traffic " ),
TWOPT_UINT("traffic", traffic, "UNIFORM RANDOM=1, NEAREST NEIGHBOR=2 "), TWOPT_UINT("traffic", traffic, "UNIFORM RANDOM=1, NEAREST NEIGHBOR=2 "),
TWOPT_UINT("num_messages", num_msgs, "Number of messages to be generated per terminal "), TWOPT_UINT("num_messages", num_msgs, "Number of messages to be generated per terminal "),
TWOPT_UINT("sampling-interval", sampling_interval, "the sampling interval "), TWOPT_STIME("sampling-interval", sampling_interval, "the sampling interval "),
TWOPT_UINT("sampling-end-time", sampling_end_time, "sampling end time "), TWOPT_STIME("sampling-end-time", sampling_end_time, "sampling end time "),
TWOPT_STIME("arrival_time", arrival_time, "INTER-ARRIVAL TIME"), TWOPT_STIME("arrival_time", arrival_time, "INTER-ARRIVAL TIME"),
TWOPT_CHAR("lp-io-dir", lp_io_dir, "Where to place io output (unspecified -> no output"), TWOPT_CHAR("lp-io-dir", lp_io_dir, "Where to place io output (unspecified -> no output"),
TWOPT_UINT("lp-io-use-suffix", lp_io_use_suffix, "Whether to append uniq suffix to lp-io directory (default 0)"), TWOPT_UINT("lp-io-use-suffix", lp_io_use_suffix, "Whether to append uniq suffix to lp-io directory (default 0)"),
......
...@@ -35,8 +35,8 @@ static lp_io_handle io_handle; ...@@ -35,8 +35,8 @@ static lp_io_handle io_handle;
static unsigned int lp_io_use_suffix = 0; static unsigned int lp_io_use_suffix = 0;
static int do_lp_io = 0; static int do_lp_io = 0;
static int num_msgs = 20; static int num_msgs = 20;
static unsigned int sampling_interval = 800000; static tw_stime sampling_interval = 800000;
static unsigned int sampling_end_time = 1600000; static tw_stime sampling_end_time = 1600000;
typedef struct svr_msg svr_msg; typedef struct svr_msg svr_msg;
typedef struct svr_state svr_state; typedef struct svr_state svr_state;
...@@ -146,8 +146,8 @@ const tw_optdef app_opt [] = ...@@ -146,8 +146,8 @@ const tw_optdef app_opt [] =
TWOPT_GROUP("Model net synthetic traffic " ), TWOPT_GROUP("Model net synthetic traffic " ),
TWOPT_UINT("traffic", traffic, "UNIFORM RANDOM=1, NEAREST NEIGHBOR=2 "), TWOPT_UINT("traffic", traffic, "UNIFORM RANDOM=1, NEAREST NEIGHBOR=2 "),
TWOPT_UINT("num_messages", num_msgs, "Number of messages to be generated per terminal "), TWOPT_UINT("num_messages", num_msgs, "Number of messages to be generated per terminal "),
TWOPT_UINT("sampling-interval", sampling_interval, "the sampling interval "), TWOPT_STIME("sampling-interval", sampling_interval, "the sampling interval "),
TWOPT_UINT("sampling-end-time", sampling_end_time, "sampling end time "), TWOPT_STIME("sampling-end-time", sampling_end_time, "sampling end time "),
TWOPT_STIME("arrival_time", arrival_time, "INTER-ARRIVAL TIME"), TWOPT_STIME("arrival_time", arrival_time, "INTER-ARRIVAL TIME"),
TWOPT_CHAR("lp-io-dir", lp_io_dir, "Where to place io output (unspecified -> no output"), TWOPT_CHAR("lp-io-dir", lp_io_dir, "Where to place io output (unspecified -> no output"),
TWOPT_UINT("lp-io-use-suffix", lp_io_use_suffix, "Whether to append uniq suffix to lp-io directory (default 0)"), TWOPT_UINT("lp-io-use-suffix", lp_io_use_suffix, "Whether to append uniq suffix to lp-io directory (default 0)"),
......
...@@ -84,31 +84,27 @@ tar xzf fts.tgz ...@@ -84,31 +84,27 @@ tar xzf fts.tgz
cd fault_tolerance_simulation/ cd fault_tolerance_simulation/
rm 0001-*.patch 0002-*.patch 0003-*.patch 0004-*.patch 0005-*.patch rm 0001-*.patch 0002-*.patch 0003-*.patch 0004-*.patch 0005-*.patch
tar xzf $P_PATH/sar.patches.tgz tar xzf $P_PATH/sar.patches.tgz
wget http://downloads.openfabrics.org/management/opensm-3.3.20.tar.gz wget http://downloads.openfabrics.org/management/opensm-3.3.20.tar.gz
mv opensm-3.3.20.tar.gz opensm.tar.gz mv opensm-3.3.20.tar.gz opensm.tar.gz
wget http://downloads.openfabrics.org/ibutils/ibutils-1.5.7-0.2.gbd7e502.tar.gz
mv ibutils-1.5.7-0.2.gbd7e502.tar.gz ibutils.tar.gz
wget http://downloads.openfabrics.org/management/infiniband-diags-1.6.7.tar.gz
mv infiniband-diags-1.6.7.tar.gz infiniband-diags.tar.gz
wget https://www.openfabrics.org/downloads/management/libibmad-1.3.12.tar.gz wget https://www.openfabrics.org/downloads/management/libibmad-1.3.12.tar.gz
mv libibmad-1.3.12.tar.gz libibmad.tar.gz mv libibmad-1.3.12.tar.gz libibmad.tar.gz
wget https://www.openfabrics.org/downloads/management/libibumad-1.3.10.2.tar.gz wget https://www.openfabrics.org/downloads/management/libibumad-1.3.10.2.tar.gz
mv libibumad-1.3.10.2.tar.gz libibumad.tar.gz mv libibumad-1.3.10.2.tar.gz libibumad.tar.gz
patch -p1 < $P_PATH/fts.patch patch -p1 < $P_PATH/fts.patch
./simuate.py -s ./simulate.py -s
2. Add LFT creating scripts to the fall-in-place toolchain. 2. Add LFT creating scripts to the fall-in-place toolchain.
cd $HOME/simulation/scripts cd $HOME/simulation/scripts
patch -p1 < $P_PATH/lft.patch patch -p1 < $P_PATH/lft.patch
chmod +x post_process_* chmod +x post_process_*
chmod +x create_static_lft.sh chmod +x create_static_lft.sh
3. Choose a routing algorithm which should be used by OpenSM 3. Choose a routing algorithm which should be used by OpenSM
(possible options: updn, dnup, ftree, lash, dor, torus-2QoS, dfsssp, sssp) (possible options: updn, dnup, ftree, lash, dor, torus-2QoS, dfsssp, sssp)
export OSM_ROUTING="ftree" export OSM_ROUTING="ftree"
~/simulation/scripts/create_static_lft.sh routing_folder dot_file ~/simulation/scripts/create_static_lft.sh routing_folder dot_file
(here routing_folder and dot_file should be same as the one used during the run used to dump the topology) (here routing_folder and dot_file should be same as the one used during the run used to dump the topology)
......
This diff is collapsed.
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
/**** BEGIN SIMULATION DATA STRUCTURES ****/ /**** BEGIN SIMULATION DATA STRUCTURES ****/
int model_net_base_magic; int model_net_base_magic;
int mn_sample_enabled = 0;
// message-type specific offsets - don't want to get bitten later by alignment // message-type specific offsets - don't want to get bitten later by alignment
// issues... // issues...
...@@ -36,7 +37,6 @@ static const char * annos[CONFIGURATION_MAX_ANNOS]; ...@@ -36,7 +37,6 @@ static const char * annos[CONFIGURATION_MAX_ANNOS];
static model_net_base_params all_params[CONFIGURATION_MAX_ANNOS]; static model_net_base_params all_params[CONFIGURATION_MAX_ANNOS];
static tw_stime mn_sample_interval = 0.0; static tw_stime mn_sample_interval = 0.0;
static int mn_sample_enabled = 0;
static tw_stime mn_sample_end = 0.0; static tw_stime mn_sample_end = 0.0;
typedef struct model_net_base_state { typedef struct model_net_base_state {
...@@ -323,9 +323,9 @@ void model_net_base_configure(){ ...@@ -323,9 +323,9 @@ void model_net_base_configure(){
msg_offsets[DRAGONFLY_ROUTER] = msg_offsets[DRAGONFLY_ROUTER] =
offsetof(model_net_wrap_msg, msg.m_dfly); offsetof(model_net_wrap_msg, msg.m_dfly);
msg_offsets[DRAGONFLY_CUSTOM] = msg_offsets[DRAGONFLY_CUSTOM] =
offsetof(model_net_wrap_msg, msg.m_dfly); offsetof(model_net_wrap_msg, msg.m_custom_dfly);
msg_offsets[DRAGONFLY_CUSTOM_ROUTER] = msg_offsets[DRAGONFLY_CUSTOM_ROUTER] =
offsetof(model_net_wrap_msg, msg.m_dfly); offsetof(model_net_wrap_msg, msg.m_custom_dfly);
msg_offsets[SLIMFLY] = msg_offsets[SLIMFLY] =
offsetof(model_net_wrap_msg, msg.m_slim); offsetof(model_net_wrap_msg, msg.m_slim);
msg_offsets[FATTREE] = msg_offsets[FATTREE] =
......
...@@ -1694,7 +1694,7 @@ static void torus_report_stats() ...@@ -1694,7 +1694,7 @@ static void torus_report_stats()
if(!g_tw_mynode) if(!g_tw_mynode)
{ {
printf(" Average number of hops traversed %f average message latency %lf us maximum message latency %lf us finished packets %lld finished hops %lld \n", printf(" Average number of hops traversed %f average packet latency %lf us maximum packet latency %lf us finished packets %lld finished hops %lld \n",
(float)avg_hops/total_finished_packets, avg_time/(total_finished_packets*1000), max_time/1000, total_finished_packets, avg_hops); (float)avg_hops/total_finished_packets, avg_time/(total_finished_packets*1000), max_time/1000, total_finished_packets, avg_hops);
} }
} }
......
This diff is collapsed.
This diff is collapsed.
...@@ -38,6 +38,9 @@ void rc_stack_create(struct rc_stack **s){ ...@@ -38,6 +38,9 @@ void rc_stack_create(struct rc_stack **s){
case OPTIMISTIC: case OPTIMISTIC:
ss->mode = RC_OPT; ss->mode = RC_OPT;
break; break;
case OPTIMISTIC_REALTIME:
ss->mode = RC_OPT;
break;
case OPTIMISTIC_DEBUG: case OPTIMISTIC_DEBUG:
ss->mode = RC_OPT_DBG; ss->mode = RC_OPT_DBG;
break; break;
......
...@@ -23,12 +23,12 @@ ...@@ -23,12 +23,12 @@
#include <cortex/cortex-python.h> #include <cortex/cortex-python.h>
#endif #endif
#define PROFILE_TYPE cortex_dumpi_profile* #define PROFILE_TYPE cortex_dumpi_profile*
#define UNDUMPI_OPEN cortex_undumpi_open //#define UNDUMPI_OPEN cortex_undumpi_open
#define DUMPI_START_STREAM_READ cortex_dumpi_start_stream_read #define DUMPI_START_STREAM_READ cortex_dumpi_start_stream_read
#define UNDUMPI_CLOSE cortex_undumpi_close #define UNDUMPI_CLOSE cortex_undumpi_close
#else #else
#define PROFILE_TYPE dumpi_profile* #define PROFILE_TYPE dumpi_profile*
#define UNDUMPI_OPEN undumpi_open //#define UNDUMPI_OPEN undumpi_open
#define DUMPI_START_STREAM_READ dumpi_start_stream_read #define DUMPI_START_STREAM_READ dumpi_start_stream_read
#define UNDUMPI_CLOSE undumpi_close #define UNDUMPI_CLOSE undumpi_close
#endif #endif
...@@ -646,7 +646,11 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank) ...@@ -646,7 +646,11 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank)
else else
sprintf(file_name, "%s%d.bin", dumpi_params->file_name, rank); sprintf(file_name, "%s%d.bin", dumpi_params->file_name, rank);
#ifdef ENABLE_CORTEX #ifdef ENABLE_CORTEX
profile = cortex_undumpi_open(file_name, app_id, dumpi_params->num_net_traces, rank); if(strcmp(dumpi_params->file_name,"none") == 0) {
profile = cortex_undumpi_open(NULL, app_id, dumpi_params->num_net_traces, rank);
} else {
profile = cortex_undumpi_open(file_name, app_id, dumpi_params->num_net_traces, rank);
}
#else #else
profile = undumpi_open(file_name); profile = undumpi_open(file_name);
#endif #endif
...@@ -728,7 +732,11 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank) ...@@ -728,7 +732,11 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank)
#ifdef ENABLE_CORTEX #ifdef ENABLE_CORTEX
#ifdef ENABLE_CORTEX_PYTHON #ifdef ENABLE_CORTEX_PYTHON
libundumpi_populate_callbacks(CORTEX_PYTHON_TRANSLATION, transarr); if(dumpi_params->cortex_script[0] != 0) {
libundumpi_populate_callbacks(CORTEX_PYTHON_TRANSLATION, transarr);
} else {
libundumpi_populate_callbacks(CORTEX_MPICH_TRANSLATION, transarr);
}
#else #else
libundumpi_populate_callbacks(CORTEX_MPICH_TRANSLATION, transarr); libundumpi_populate_callbacks(CORTEX_MPICH_TRANSLATION, transarr);
#endif #endif
...@@ -738,7 +746,16 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank) ...@@ -738,7 +746,16 @@ int dumpi_trace_nw_workload_load(const char* params, int app_id, int rank)
//dumpi_free_header(trace_header); //dumpi_free_header(trace_header);
#ifdef ENABLE_CORTEX_PYTHON #ifdef ENABLE_CORTEX_PYTHON
cortex_python_set_module(dumpi_params->cortex_script,dumpi_params->cortex_class); if(dumpi_params->cortex_script[0] != 0) {
if(dumpi_params->cortex_class[0] != 0) {
cortex_python_set_module(dumpi_params->cortex_script, dumpi_params->cortex_class);
} else {
cortex_python_set_module(dumpi_params->cortex_script, NULL);
}
if(dumpi_params->cortex_gen[0] != 0) {
cortex_python_call_generator(profile, dumpi_params->cortex_gen);
}
}
#endif #endif
int finalize_reached = 0; int finalize_reached = 0;
......
...@@ -28,13 +28,17 @@ TESTS += tests/lp-io-test.sh \ ...@@ -28,13 +28,17 @@ TESTS += tests/lp-io-test.sh \
tests/map-ctx-test.sh \ tests/map-ctx-test.sh \
tests/modelnet-test.sh \ tests/modelnet-test.sh \
tests/modelnet-test-torus.sh \ tests/modelnet-test-torus.sh \
tests/modelnet-test-torus-traces.sh \
tests/modelnet-test-loggp.sh \ tests/modelnet-test-loggp.sh \
tests/modelnet-test-dragonfly.sh \ tests/modelnet-test-dragonfly.sh \
tests/modelnet-test-slimfly.sh \ tests/modelnet-test-slimfly.sh \
tests/modelnet-test-dragonfly-synthetic.sh \ tests/modelnet-test-dragonfly-synthetic.sh \
tests/modelnet-test-dragonfly-traces.sh \
tests/modelnet-test-dragonfly-custom-synthetic.sh \ tests/modelnet-test-dragonfly-custom-synthetic.sh \
tests/modelnet-test-dragonfly-custom-traces.sh \
tests/modelnet-test-fattree-synthetic.sh \ tests/modelnet-test-fattree-synthetic.sh \
tests/modelnet-test-slimfly-synthetic.sh \ tests/modelnet-test-slimfly-synthetic.sh \
tests/modelnet-test-slimfly-traces.sh \
tests/modelnet-p2p-bw-loggp.sh \ tests/modelnet-p2p-bw-loggp.sh \
tests/modelnet-prio-sched-test.sh tests/modelnet-prio-sched-test.sh
...@@ -57,9 +61,16 @@ EXTRA_DIST += tests/lp-io-test.sh \ ...@@ -57,9 +61,16 @@ EXTRA_DIST += tests/lp-io-test.sh \
tests/expected/mapping_test.out \ tests/expected/mapping_test.out \
tests/modelnet-test.sh \ tests/modelnet-test.sh \
tests/modelnet-test-torus.sh \ tests/modelnet-test-torus.sh \
tests/modelnet-test-torus-traces.sh \
tests/modelnet-test-loggp.sh \ tests/modelnet-test-loggp.sh \
tests/modelnet-test-dragonfly.sh \ tests/modelnet-test-dragonfly.sh \
tests/modelnet-test-dragonfly-synthetic.sh \
tests/modelnet-test-dragonfly-traces.sh \
tests/modelnet-test-dragonfly-custom-synthetic.sh \
tests/modelnet-test-dragonfly-custom-traces.sh \
tests/modelnet-test-slimfly.sh \ tests/modelnet-test-slimfly.sh \
tests/modelnet-test-slimfly-synthetic.sh \
tests/modelnet-test-slimfly-traces.sh \
tests/modelnet-p2p-bw-loggp.sh \ tests/modelnet-p2p-bw-loggp.sh \