Commit 2e3b5f39 authored by Caitlin Ross's avatar Caitlin Ross

Merge branch 'master' into ross-updates

parents c8cf3cc6 1ebb152f
Contributors to date (in chronological order, with current affiliations)
- Ning Liu, IBM
- Jason Cope, DDN
- Philip Carns, Argonne National Labs
- Misbah Mubarak, Argonne National Labs
- Shane Snyder, Argonne National Labs
- Jonathan P. Jenkins
- Noah Wolfe, RPI
- Nikhil Jain, Nvidia
- Giorgis Georgakoudis, Lawrence Livermore Labs
- Matthieu Dorier, Argonne National Labs
- Caitlin Ross, RPI
- Xu Yang, Amazon
Contributors to date (with affiliations at time of contribution)
- Philip Carns, Argonne National Laboratory
- Misbah Mubarak, Argonne National Laboratory
- Shane Snyder, Argonne National Laboratory
- Jonathan P. Jenkins, Argonne National Laboratory
- Noah Wolfe, Rensselaer Polytechnic Institute
- Nikhil Jain, Lawrence Livermore National Laboratory
- Jens Domke, Univ. of Dresden
- Giorgis Georgakoudis, Lawrence Livermore National Laboratory
- Matthieu Dorier, Argonne National Laboratory
- Caitlin Ross, Rennselaer Polytechnic Institute
- Xu Yang, Illinois Institute of Tech.
- Jens Domke, Tokyo Institute of Tech.
- Xin Wang, IIT
- Xin Wang, Illinois Institute of Tech.
- Neil McGlohon, Rensselaer Polytechnic Institute
- Elsa Gonsiorowski, Rensselaer Polytechnic Institute
- Justin M. Wozniak, Argonne National Laboratory
- Robert B. Ross, Argonne National Laboratory
- Lee Savoie, Univ. of Arizona
- Ning Liu, Rensselaer Polytechnic Institute
- Jason Cope, Argonne National Laboratory
Contributions:
Contributions of external (non-Argonne) collaborators:
Misbah Mubarak (ANL)
- Introduced 1-D dragonfly and enhanced torus network model.
- Added quality of service in dragonfly and megafly network models.
- Added MPI simulation layer to simulate MPI operations.
- Updated and merged burst buffer storage model with 2-D dragonfly.
- Added and validated 2-D dragonfly network model.
- Added multiple workload sources including MPI communication, Scalable
Workload Models, DUMPI communication traces.
- Added online simulation capability with Argobots and SWMs.
- Instrumented the network models to report time-stepped series statistics.
- Bug fixes for network, storage and workload models with CODES.
Neil McGlohon (RPI)
- Introduced Dragonfly Plus/Megafly network model.
- Merged 1-D dragonfly and 2-D dragonfly network models.
- Updated adaptive routing in megafly and 1-D dragonfly network models.
- Extended slim fly network model's dual-rail mode to arbitrary number of rails (pending).
Nikhil Jain, Abhinav Bhatele (LLNL)
- Improvements in credit-based flow control of CODES dragonfly and torus network models.
......@@ -30,6 +55,12 @@ Jens Domke (U. of Dresden)
- Static routing in fat tree network model including ground work for
dumping the topology and reading the routing tables.
John Jenkins
- Introduced storage models in a separate codes-storage-repo.
- Enhanced the codes-mapping APIs to map advanced combinations on PEs.
- Bug fixing with network models.
- Bug fixing with MPI simulation layer.
Xu Yang (IIT)
- Added support for running multiple application workloads with CODES MPI
Simulation layer, along with supporting scripts and utilities.
......@@ -40,6 +71,7 @@ Noah Wolfe (RPI):
- Added a fat tree network model that supports full and pruned fat tree
network.
- Added a multi-rail implementation for the fat tree networks (pending).
- Added a dual-rail implementation for slim fly networks (pending).
- Bug reporter for CODES network models.
Caitlin Ross (RPI):
......
COPYRIGHT
The following is a notice of limited availability of the code, and disclaimer
which must be included in the prologue of the code and in all source listings
of the code.
Copyright Notice
+ 2013 University of Chicago
Permission is hereby granted to use, reproduce, prepare derivative works, and
to redistribute to others. This software was authored by:
Mathematics and Computer Science Division
Argonne National Laboratory, Argonne IL 60439
(and)
Computer Science Department
Rensselaer Polytechnic Institute, Troy NY 12180
GOVERNMENT LICENSE
Portions of this material resulted from work developed under a U.S.
Government Contract and are subject to the following license: the Government
is granted for itself and others acting on its behalf a paid-up, nonexclusive,
irrevocable worldwide license in this computer software to reproduce, prepare
derivative works, and perform publicly and display publicly.
DISCLAIMER
This computer code material was prepared, in part, as an account of work
sponsored by an agency of the United States Government. Neither the United
States, nor the University of Chicago, nor any of their employees, makes any
warranty express or implied, or assumes any legal liability or responsibility
for the accuracy, completeness, or usefulness of any information, apparatus,
product, or process disclosed, or represents that its use would not infringe
privately owned rights.
************** Copyright © 2019, UChicago Argonne, LLC ***************
All Rights Reserved
Software Name: CO-Design of Exascale Storage and Network Architectures (CODES)
By: Argonne National Laboratory, Rensselaer Polytechnic Institute, Lawrence Livermore National Laboratory, and Illinois Institute of Technology
OPEN SOURCE LICENSE
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
******************************************************************************************************
DISCLAIMER
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
***************************************************************************************************
************** Copyright © 2019, UChicago Argonne, LLC ***************
All Rights Reserved
Software Name: CO-Design of Exascale Storage and Network Architectures (CODES)
By: Argonne National Laboratory, Rensselaer Polytechnic Institute, Lawrence Livermore National Laboratory, and Illinois Institute of Technology
OPEN SOURCE LICENSE
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
******************************************************************************************************
DISCLAIMER
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
***************************************************************************************************
......@@ -109,7 +109,7 @@ st_model_types svr_model_types[] = {
static void svr_register_model_types()
{
st_model_type_register("server", &svr_model_types[0]);
st_model_type_register("ns-lp", &svr_model_types[0]);
}
int main(int argc, char **argv)
......
......@@ -246,7 +246,7 @@ int main(
/* calculate the number of servers in this simulation,
* ignoring annotations */
num_servers = codes_mapping_get_lp_count(group_name, 0, "server", NULL, 1);
num_servers = codes_mapping_get_lp_count(group_name, 0, "nw-lp", NULL, 1);
/* for this example, we read from a separate configuration group for
* server message parameters. Since they are constant for all LPs,
......@@ -273,7 +273,7 @@ static void svr_add_lp_type()
{
/* lp_type_register should be called exactly once per process per
* LP type */
lp_type_register("server", svr_get_lp_type());
lp_type_register("nw-lp", svr_get_lp_type());
}
static void svr_init(
......
......@@ -3,14 +3,14 @@
# of application- and codes-specific key-value pairs.
LPGROUPS
{
# in our simulation, we simply have a set of servers, each with
# in our simulation, we simply have a set of servers (nw-lp), each with
# point-to-point access to each other
SERVERS
{
# required: number of times to repeat the following key-value pairs
repetitions="16";
# application-specific: parsed in main
server="1";
nw-lp="1";
# model-net-specific field defining the network backend. In this example,
# each server has one NIC, and each server are point-to-point connected
modelnet_simplenet="1";
......
......@@ -3,14 +3,14 @@
# of application- and codes-specific key-value pairs.
LPGROUPS
{
# in our simulation, we simply have a set of servers, each with
# in our simulation, we simply have a set of servers (nw-lp), each with
# point-to-point access to each other
SERVERS
{
# required: number of times to repeat the following key-value pairs
repetitions="C_NUM_SERVERS";
# application-specific: parsed in main
server="1";
nw-lp="1";
# model-net-specific field defining the network backend. In this example,
# each server has one NIC, and each server are point-to-point connected
modelnet_simplenet="1";
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="198";
server="384";
nw-lp="384";
modelnet_fattree="24";
fattree_switch="6";
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="252";
server="288";
nw-lp="288";
modelnet_fattree="18";
fattree_switch="6";
}
......
......@@ -12,7 +12,7 @@ PARAMS
{
ft_type="0";
packet_size="512";
message_size="592";
message_size="736";
chunk_size="512";
modelnet_scheduler="fcfs";
#modelnet_scheduler="round-robin";
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="264";
server="4";
nw-lp="4";
modelnet_dragonfly="4";
modelnet_dragonfly_router="1";
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="198"; # repetitions = Ne = total # of edge switches. For type0 Ne = Np*Ns = ceil(N/Ns*(k/2))*(k/2) = ceil(N/(k/2)^2)*(k/2)
server="18";
nw-lp="18";
modelnet_fattree="18";
fattree_switch="3";
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="32"; # repetitions = Ne = total # of edge switches. For type0 Ne = Np*Ns = ceil(N/Ns*(k/2))*(k/2) = ceil(N/(k/2)^2)*(k/2)
server="4";
nw-lp="4";
modelnet_fattree="4";
fattree_switch="3";
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="50";
server="3";
nw-lp="3";
modelnet_slimfly="3";
slimfly_router="1";
}
......
......@@ -46,6 +46,7 @@ static int enable_msg_tracking = 0;
static int is_synthetic = 0;
static unsigned long long max_gen_data = 1310720;
static int num_qos_levels;
static double compute_time_speedup;
tw_lpid TRACK_LP = -1;
int nprocs = 0;
static double total_syn_data = 0;
......@@ -1444,9 +1445,9 @@ static void codes_exec_comp_delay(
m->rc.saved_delay = s->compute_time;
m->rc.saved_delay_sample = s->ross_sample.compute_time;
s->compute_time += mpi_op->u.delay.nsecs;
s->ross_sample.compute_time += mpi_op->u.delay.nsecs;
ts = mpi_op->u.delay.nsecs;
s->compute_time += (mpi_op->u.delay.nsecs/compute_time_speedup);
s->ross_sample.compute_time += (mpi_op->u.delay.nsecs/compute_time_speedup);
ts = (mpi_op->u.delay.nsecs/compute_time_speedup);
if(ts <= g_tw_lookahead)
{
bf->c28 = 1;
......@@ -2921,6 +2922,19 @@ static int msg_size_hash_compare(
return 0;
}
/* Method to organize all mpi_replay specific configuration parameters
to be specified in the loaded .conf file*/
void modelnet_mpi_replay_read_config()
{
// Load the factor by which the compute time is sped up by. e.g. If compute_time_speedup = 2, all compute time delay is halved.
int rc = configuration_get_value_double(&config, "PARAMS", "compute_time_speedup", NULL, &compute_time_speedup);
if (rc) {
compute_time_speedup = 1;
}
}
int modelnet_mpi_replay(MPI_Comm comm, int* argc, char*** argv )
{
int rank;
......@@ -3034,6 +3048,8 @@ int modelnet_mpi_replay(MPI_Comm comm, int* argc, char*** argv )
net_id = *net_ids;
free(net_ids);
modelnet_mpi_replay_read_config();
if(enable_debug)
{
workload_log = fopen("mpi-op-logs", "w+");
......
......@@ -165,7 +165,7 @@ static const st_model_types *ft_svr_get_model_stat_types(void)
void ft_svr_register_model_stats()
{
st_model_type_register("server", ft_svr_get_model_stat_types());
st_model_type_register("nw-lp", ft_svr_get_model_stat_types());
}
const tw_optdef app_opt [] =
......@@ -184,7 +184,7 @@ const tw_lptype* svr_get_lp_type()
static void svr_add_lp_type()
{
lp_type_register("server", svr_get_lp_type());
lp_type_register("nw-lp", svr_get_lp_type());
}
static void issue_event(
......@@ -477,7 +477,7 @@ int main(
MPI_Finalize();
return 0;
}
num_servers_per_rep = codes_mapping_get_lp_count("MODELNET_GRP", 1, "server",
num_servers_per_rep = codes_mapping_get_lp_count("MODELNET_GRP", 1, "nw-lp",
NULL, 1);
configuration_get_value_int(&config, "PARAMS", "num_routers", NULL, &num_routers_per_grp);
......@@ -485,7 +485,7 @@ int main(
num_nodes = num_groups * num_routers_per_grp * (num_routers_per_grp / 2);
num_nodes_per_grp = num_routers_per_grp * (num_routers_per_grp / 2);
num_nodes = codes_mapping_get_lp_count("MODELNET_GRP", 0, "server", NULL, 1);
num_nodes = codes_mapping_get_lp_count("MODELNET_GRP", 0, "nw-lp", NULL, 1);
printf("num_nodes:%d \n",num_nodes);
......
......@@ -160,7 +160,7 @@ static const st_model_types *svr_get_model_stat_types(void)
void svr_register_model_types()
{
st_model_type_register("server", svr_get_model_stat_types());
st_model_type_register("nw-lp", svr_get_model_stat_types());
}
const tw_optdef app_opt [] =
......@@ -181,7 +181,7 @@ const tw_lptype* svr_get_lp_type()
static void svr_add_lp_type()
{
lp_type_register("server", svr_get_lp_type());
lp_type_register("nw-lp", svr_get_lp_type());
}
/* convert GiB/s and bytes to ns */
......@@ -523,7 +523,7 @@ int main(
net_id = *net_ids;
free(net_ids);
num_servers_per_rep = codes_mapping_get_lp_count("MODELNET_GRP", 1, "server", NULL, 1);
num_servers_per_rep = codes_mapping_get_lp_count("MODELNET_GRP", 1, "nw-lp", NULL, 1);
configuration_get_value_int(&config, "PARAMS", "num_terminals", NULL, &num_terminals);
configuration_get_value_int(&config, "PARAMS", "num_routers", NULL, &num_routers_per_grp);
num_groups = (num_routers_per_grp * 2);
......
......@@ -147,7 +147,7 @@ static const st_model_types *svr_get_model_stat_types(void)
void svr_register_model_types()
{
st_model_type_register("server", svr_get_model_stat_types());
st_model_type_register("nw-lp", svr_get_model_stat_types());
}
const tw_optdef app_opt [] =
......@@ -170,7 +170,7 @@ const tw_lptype* svr_get_lp_type()
static void svr_add_lp_type()
{
lp_type_register("server", svr_get_lp_type());
lp_type_register("nw-lp", svr_get_lp_type());
}
static void issue_event(
......@@ -448,7 +448,7 @@ int main(
MPI_Finalize();
return 0;
}
num_servers_per_rep = codes_mapping_get_lp_count("MODELNET_GRP", 1, "server",
num_servers_per_rep = codes_mapping_get_lp_count("MODELNET_GRP", 1, "nw-lp",
NULL, 1);
configuration_get_value_int(&config, "PARAMS", "num_routers", NULL, &num_routers_per_grp);
......
......@@ -58,7 +58,7 @@ p*a*g=8*4*33). This configuration can be specified in the config file in the fol
MODELNET_GRP
{
repetitions="264";
server="4";
nw-lp="4";
modelnet_dragonfly="4";
dragonfly_router="1";
}
......@@ -70,7 +70,7 @@ PARAMS
}
The first section, MODELNET_GRP specified the number of LPs and the layout of
LPs. In the above case, there are 264 repetitions of 4 server LPs, 4 dragonfly
LPs. In the above case, there are 264 repetitions of 4 server LPs (nw-lp), 4 dragonfly
network node LPs and 1 dragonfly router LP, which makes a total of 264 routers,
1056 network nodes and 1056 servers in the network. The second section, PARAMS
uses 'num_routers' for the dragonfly topology lay out and setsup the
......
......@@ -8,7 +8,7 @@ bare-minimum example config file:
MODELNET_GRP
{
repetitions="12";
server="4";
nw-lp="4";
modelnet_fattree="4";
fattree_switch="3";
}
......@@ -24,7 +24,7 @@ PARAMS
The first section, MODELNET_GRP specifies the LP types, number of LPs per type
and their configuration. In the above case, there are 12 repetitions each with 4
server LPs, 4 fat tree network node/terminal LPs and 3 fat tree switch LPs. Each
server LPs (nw-lp), 4 fat tree network node/terminal LPs and 3 fat tree switch LPs. Each
repetition represents a leaf level switch, nodes connected to it, and higher
level switches that may be needed to construct the fat-tree. The
'fattree_switch' parameter indicates there are 3 levels to this fat tree and
......
......@@ -73,7 +73,7 @@ generator sets. This configuration can be specified in the config file in the fo
MODELNET_GRP
{
repetitions="50";
server="3";
nw-lp="3";
modelnet_slimfly="3";
slimfly_router="1";
}
......@@ -88,7 +88,7 @@ PARAMS
}
The first section, MODELNET_GRP specified the number of LPs and the layout of
LPs. In the above case, there are 50 repetitions of 3 server LPs, 3 slim fly
LPs. In the above case, there are 50 repetitions of 3 server LPs (nw-lp), 3 slim fly
network node LPs and 1 slim fly router LP, which makes a total of 50 routers,
150 network nodes and 150 servers in the network. The second section, PARAMS
uses 'num_routers' for the slim fly topology lay out and sets up the
......
......@@ -12,13 +12,13 @@ LPGROUPS
MODELNET_GRP
{
repetitions="16";
server="1";
nw-lp="1";
example_net="1";
}
}
------------------------------------------------------------------------------
In this config file, there are multiple LP types defined in a single LP group (As we will see in a later
example, there can be multiple LP groups in a config file too). There is 1 server LP and 1 example_net
example, there can be multiple LP groups in a config file too). There is 1 server LP (nw-lp) and 1 example_net
LP type in a group and this combination is repeated 16 time (repetitions="16"). ROSS will assign the
LPs to the PEs (PEs is an abstraction for MPI rank in ROSS) by placing 1 server LP then 1 example_net
LP a total of 16 times. This configuration is useful if there is some form of communication involved
......@@ -33,7 +33,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="16";
server="1";
nw-lp="1";
example_net="2";
}
}
......@@ -51,7 +51,7 @@ Following is an example function that registers 'server' lp type.
static void svr_add_lp_type()
{
lp_type_register("server", svr_get_lp_type());
lp_type_register("nw-lp", svr_get_lp_type());
}
Step 4: Call to codes_mapping_setup that sets up the LPs of each registered LP type as specified in the config
......@@ -67,7 +67,7 @@ The second argument indicates whether to include the number of repetitions into
the count or not (the NULL, 0 arguments will be discussed later). For example,
to query the number of server LPs in example-test2.conf file, calling
num_servers = codes_mapping_get_lp_count("MODELNET_GRP", 1, "server", NULL, 0);
num_servers = codes_mapping_get_lp_count("MODELNET_GRP", 1, "nw-lp", NULL, 0);
will return 2.
......
......@@ -3,7 +3,7 @@ LPGROUPS
BUF
{
repetitions="2";
server="2";
nw-lp="2";
resource="1";
}
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
TRITON_GRP
{
repetitions="1";
server="1";
nw-lp="1";
lsm="1";
}
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="2";
server="1";
nw-lp="1";
modelnet_loggp="1";
}
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="2";
server="1";
nw-lp="1";
modelnet_simplenet="1";
}
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="288";
server="4";
nw-lp="4";
modelnet_dragonfly_custom="4";
modelnet_dragonfly_custom_router="1";
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="36";
server="2";
nw-lp="2";
modelnet_dragonfly="2";
modelnet_dragonfly_router="1";
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="64";
server="3";
nw-lp="3";
modelnet_express_mesh="3";
modelnet_express_mesh_router="1";
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="16";
server="1";
nw-lp="1";
modelnet_loggp="1";
}
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="3";
server="1";
nw-lp="1";
modelnet_simplep2p="1";
}
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="50";
server="3";
nw-lp="3";
modelnet_slimfly="3";
slimfly_router="1";
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="16";
server="1";
nw-lp="1";
modelnet_torus="1";
}
}
......
......@@ -3,7 +3,7 @@ LPGROUPS
MODELNET_GRP
{
repetitions="16";
server="1";
nw-lp="1";
modelnet_simplenet="1";
}
}
......
......@@ -143,7 +143,7 @@ int main(
return(-1);
}
lp_type_register("server", &svr_lp);
lp_type_register("nw-lp", &svr_lp);
lsm_register();
codes_mapping_setup();
......
......@@ -105,7 +105,7 @@ int main(
if((NUM_SERVERS) % nprocs)
{
fprintf(stderr, "Error: number of server LPs (%d total) is not evenly divisible by the number of MPI processes (%d)\n", NUM_SERVERS, nprocs);
fprintf(stderr, "Error: number of server (or nw-lp) LPs (%d total) is not evenly divisible by the number of MPI processes (%d)\n", NUM_SERVERS, nprocs);
exit(-1);
}
......
......@@ -155,7 +155,7 @@ int main(
assert(num_nets==1);
net_id = *net_ids;
free(net_ids);
num_servers = codes_mapping_get_lp_count("MODELNET_GRP", 0, "server",
num_servers = codes_mapping_get_lp_count("MODELNET_GRP", 0, "nw-lp",
NULL, 1);
assert(num_servers == 2);
if(net_id == DRAGONFLY)
......@@ -189,7 +189,7 @@ const tw_lptype* svr_get_lp_type()
static void svr_add_lp_type()
{
lp_type_register("server", svr_get_lp_type());
lp_type_register("nw-lp", svr_get_lp_type());
}
static void svr_init(
......@@ -382,7 +382,7 @@ static void handle_pong_event(
return;
}
codes_mapping_get_lp_id("MODELNET_GRP", "server", NULL, 1, 1,
codes_mapping_get_lp_id("MODELNET_GRP", "nw-lp", NULL, 1, 1,
0, &peer_gid);
m_remote.svr_event_type = PING;
......
......@@ -137,7 +137,7 @@ int main(
assert(net_id == SIMPLENET);
assert(NUM_SERVERS == codes_mapping_get_lp_count("MODELNET_GRP", 0,
"server", NULL, 1));
"nw-lp", NULL, 1));
tw_run();
......@@ -147,7 +147,7 @@ int main(
static void svr_add_lp_type()
{
lp_type_register("server", &svr_lp);
lp_type_register("nw-lp", &svr_lp);
}
static void svr_init(
......
......@@ -160,7 +160,7 @@ int main(
net_id = *net_ids;
free(net_ids);
num_servers = codes_mapping_get_lp_count("MODELNET_GRP", 0, "server",
num_servers = codes_mapping_get_lp_count("MODELNET_GRP", 0, "nw-lp",
NULL, 1);
assert(num_servers == 3);
......@@ -188,7 +188,7 @@ const tw_lptype* svr_get_lp_type()
static void svr_add_lp_type()
{
lp_type_register("server", svr_get_lp_type());
lp_type_register("nw-lp", svr_get_lp_type());
}
static void svr_init(
......