int main(int argc, char **argv) { int nprocs; int rank; int num_nets, *net_ids; int i; //for later random pairing: srand(time(NULL)); g_tw_ts_end = s_to_ns(60*60*24*365); tw_opt_add(app_opt); tw_init(&argc, &argv); if (!conf_file_name[0]) { fprintf(stderr, "Expected \"codes-config\" option, please see --help.\n"); MPI_Finalize(); return 1; } MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); if (configuration_load(conf_file_name, MPI_COMM_WORLD, &config)) { fprintf(stderr, "Error loading config file %s.\n", conf_file_name); MPI_Finalize(); return 1; } model_net_register(); node_add_lp_type(); codes_mapping_setup(); net_ids = model_net_configure(&num_nets); assert(num_nets==1); net_id = *net_ids; free(net_ids); if(net_id != TORUS) { printf("\n This is written to simulate torus networks."); MPI_Finalize(); return 0; } num_nodes = codes_mapping_get_lp_count(group_name, 0, "node", NULL, 1); configuration_get_value_int(&config, param_group_nm, num_reqs_key, NULL, &num_reqs); configuration_get_value_int(&config, param_group_nm, payload_sz_key, NULL, &payload_sz); configuration_get_value_int(&config, param_group_nm, num_messages_key, NULL, &num_messages); tw_run(); model_net_report_stats(net_id); tw_end(); free_node_mappings(); return 0; }
int main(int argc, char *argv[]) { int num_nets, *net_ids; g_tw_ts_end = s_to_ns(60*60*24*365); /* one year, in nsecs */ tw_opt_add(app_opt); tw_init(&argc, &argv); if (!conf_file_name[0]) { fprintf(stderr, "Expected \"codes-config\" option, please see --help.\n"); MPI_Finalize(); return 1; } /* loading the config file into the codes-mapping utility, giving us the * parsed config object in return. * "config" is a global var defined by codes-mapping */ if (configuration_load(conf_file_name, MPI_COMM_WORLD, &config)){ fprintf(stderr, "Error loading config file %s.\n", conf_file_name); MPI_Finalize(); return 1; } /* currently restrict to simplenet, as other networks are trickier to * setup. TODO: handle other networks properly */ if(net_id != SIMPLENET) { printf("\n The test works with simple-net configuration only! "); MPI_Finalize(); return 1; } testsvr_init(); model_net_register(); codes_mapping_setup(); /* Setup the model-net parameters specified in the global config object, * returned are the identifier for the network type */ net_ids = model_net_configure(&num_nets); assert(num_nets==1); net_id = *net_ids; free(net_ids); tw_run(); tw_end(); return 0; }
int main( int argc, char **argv) { int num_nets; int *net_ids; g_tw_ts_end = s_to_ns(60*60*24*365); /* one year, in nsecs */ tw_opt_add(app_opt); tw_init(&argc, &argv); if(argc < 2) { printf("\n Usage: mpirun <args> --sync=[1,3] -- mapping_file_name.conf (optional --nkp) "); MPI_Finalize(); return 0; } configuration_load(argv[2], MPI_COMM_WORLD, &config); model_net_register(); svr_add_lp_type(); codes_mapping_setup(); net_ids = model_net_configure(&num_nets); assert(num_nets==1); net_id = *net_ids; free(net_ids); assert(net_id == SIMPLENET); assert(NUM_SERVERS == codes_mapping_get_lp_count("MODELNET_GRP", 0, "server", NULL, 1)); tw_run(); tw_end(); return prog_rtn; }
int main(int argc, char *argv[]) { //printf("In main\n"); g_tw_ts_end = s_to_ns(60 * 60 * 24 * 365); /* one year, in nsecs */ /* ROSS initialization function calls */ tw_opt_add(app_opt); /* add user-defined args */ /* initialize ROSS and parse args. NOTE: tw_init calls MPI_Init */ tw_init(&argc, &argv); if (!conf_file_name[0]) { tw_error(TW_LOC, "Expected \"codes-config\" option, please see --help.\n"); return 1; } /* loading the config file into the codes-mapping utility, giving us the * parsed config object in return. * "config" is a global var defined by codes-mapping */ if (configuration_load(conf_file_name, MPI_COMM_WORLD, &config)) { tw_error(TW_LOC, "Error loading config file %s.\n", conf_file_name); return 1; } lsm_register(); //lsm_configure(); /* register model-net LPs with ROSS */ model_net_register(); /* register the user LPs */ node_register(); forwarder_register(); /* setup the LPs and codes_mapping structures */ codes_mapping_setup(); /* setup the globals */ int rc = configuration_get_value_int(&config, "server_pings", "num_reqs", NULL, &num_reqs); if (rc != 0) tw_error(TW_LOC, "unable to read server_pings:num_reqs"); int payload_sz_d; rc = configuration_get_value_int(&config, "server_pings", "payload_sz", NULL, &payload_sz_d); if (rc != 0) tw_error(TW_LOC, "unable to read server_pings:payload_sz"); payload_sz = (uint64_t) payload_sz_d; /* get the counts for the client and svr clusters */ num_client_nodes = codes_mapping_get_lp_count("client_CLUSTER", 0, "node", NULL, 1); num_svr_nodes = codes_mapping_get_lp_count("svr_CLUSTER", 0, "node", NULL, 1); num_burst_buffer_nodes = codes_mapping_get_lp_count("bb_CLUSTER", 0, "node", NULL, 1); num_storage_nodes = codes_mapping_get_lp_count("storage_CLUSTER", 0, "node", NULL, 1); num_client_forwarders = codes_mapping_get_lp_count("client_FORWARDERS", 0, "forwarder", NULL, 1); num_svr_forwarders = codes_mapping_get_lp_count("svr_FORWARDERS", 0, "forwarder", NULL, 1); num_burst_buffer_forwarders = codes_mapping_get_lp_count("bb_FORWARDERS", 0, "forwarder", NULL, 1); num_storage_forwarders = codes_mapping_get_lp_count("storage_FORWARDERS", 0, "forwarder", NULL, 1); /* Setup the model-net parameters specified in the global config object, * returned are the identifier(s) for the network type. * 1 ID -> all the same modelnet model * 2 IDs -> clusters are the first id, forwarding network the second * 3 IDs -> client is first, svr and bb second and forwarding network the third * 4 IDs -> cluster client is the first, svr is the second, burst buffer the third and forwarding network the last * */ int num_nets; int *net_ids = model_net_configure(&num_nets); assert(num_nets <= 5); if (num_nets == 1) { net_id_client = net_ids[0]; net_id_svr = net_ids[0]; net_id_bb = net_ids[0]; net_id_storage = net_ids[0]; net_id_forwarding = net_ids[0]; } else if (num_nets == 2) { net_id_client = net_ids[0]; net_id_svr = net_ids[0]; net_id_bb = net_ids[0]; net_id_storage = net_ids[0]; net_id_forwarding = net_ids[1]; } else if (num_nets == 3) { net_id_client = net_ids[0]; net_id_svr = net_ids[1]; net_id_bb = net_ids[1]; net_id_storage = net_ids[1]; net_id_forwarding = net_ids[2]; } else if (num_nets == 4) { net_id_client = net_ids[0]; net_id_svr = net_ids[1]; net_id_bb = net_ids[2]; net_id_storage = net_ids[2]; net_id_forwarding = net_ids[3]; } else { net_id_client = net_ids[0]; net_id_svr = net_ids[1]; net_id_bb = net_ids[2]; net_id_storage = net_ids[3]; net_id_forwarding = net_ids[4]; } free(net_ids); configuration_get_value_int(&config, param_group_nm, num_reqs_key, NULL, &num_reqs); configuration_get_value_int(&config, param_group_nm, payload_sz_key, NULL, (int *) &payload_sz); configuration_get_value_int(&config, param_group_nm, pvfs_file_sz_key, NULL, &pvfs_file_sz); /*Sughosh: added for pvfsfs*/ configuration_get_value_int(&config, param_group_nm, bb_file_size_key, NULL, &bb_file_sz); /*Tony: added for bb*/ configuration_get_value_int(&config, param_group_nm, bb_capacity_key, NULL, &burst_buffer_max_capacity); /*Tony: added for bb*/ /* begin simulation */ model_net_report_stats(net_id); tw_run(); tw_end(); return 0; }
int main( int argc, char **argv) { int nprocs; int rank; int num_nets; int *net_ids; //printf("\n Config count %d ",(int) config.lpgroups_count); g_tw_ts_end = s_to_ns(60*60*24*365); /* one year, in nsecs */ lp_io_handle handle; tw_opt_add(app_opt); tw_init(&argc, &argv); if(argc < 2) { printf("\n Usage: mpirun <args> --sync=2/3 mapping_file_name.conf (optional --nkp) "); MPI_Finalize(); return 0; } MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); configuration_load(argv[2], MPI_COMM_WORLD, &config); model_net_register(); svr_add_lp_type(); codes_mapping_setup(); net_ids = model_net_configure(&num_nets); assert(num_nets==1); net_id = *net_ids; free(net_ids); num_servers = codes_mapping_get_lp_count("MODELNET_GRP", 0, "server", NULL, 1); if(net_id == DRAGONFLY) { num_routers = codes_mapping_get_lp_count("MODELNET_GRP", 0, "dragonfly_router", NULL, 1); offset = 1; } if(lp_io_prepare("modelnet-test", LP_IO_UNIQ_SUFFIX, &handle, MPI_COMM_WORLD) < 0) { return(-1); } tw_run(); model_net_report_stats(net_id); if(lp_io_flush(handle, MPI_COMM_WORLD) < 0) { return(-1); } tw_end(); return 0; }
int main( int argc, char **argv) { int nprocs; int rank; int num_nets; int *net_ids; char* anno; lp_io_handle handle; tw_opt_add(app_opt); tw_init(&argc, &argv); offset = 1; if(argc < 2) { printf("\n Usage: mpirun <args> --sync=2/3 mapping_file_name.conf (optional --nkp) "); MPI_Finalize(); return 0; } MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); configuration_load(argv[2], MPI_COMM_WORLD, &config); model_net_register(); svr_add_lp_type(); codes_mapping_setup(); net_ids = model_net_configure(&num_nets); assert(num_nets==1); net_id = *net_ids; free(net_ids); if(net_id != DRAGONFLY) { printf("\n The test works with dragonfly model configuration only! "); MPI_Finalize(); return 0; } num_servers_per_rep = codes_mapping_get_lp_count("MODELNET_GRP", 1, "server", NULL, 1); configuration_get_value_int(&config, "PARAMS", "num_routers", anno, &num_routers_per_grp); num_groups = (num_routers_per_grp * (num_routers_per_grp/2) + 1); 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); if(lp_io_prepare("modelnet-test", LP_IO_UNIQ_SUFFIX, &handle, MPI_COMM_WORLD) < 0) { return(-1); } tw_run(); model_net_report_stats(net_id); if(lp_io_flush(handle, MPI_COMM_WORLD) < 0) { return(-1); } tw_end(); return 0; }