Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions htsim/sim/datacenter/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ set(LIB_SOURCES
star_topology.cpp
fat_tree_switch.cpp
dragon_fly_topology.cpp
slimfly_topology.cpp
slimfly_switch.cpp
generic_topology.cpp
)

Expand Down Expand Up @@ -42,6 +44,7 @@ add_executable(htsim_eqds main_eqds.cpp)
set_property(TARGET htsim_eqds PROPERTY EXCLUDE_FROM_ALL TRUE)

add_executable(htsim_uec main_uec.cpp)
add_executable(htsim_uec_sf main_uec_sf.cpp)

# -------------------------------
# Linking Executables with Libraries
Expand All @@ -54,6 +57,7 @@ set (ALL_EXECUTABLES
htsim_hpcc
htsim_eqds
htsim_uec
htsim_uec_sf
)
foreach(EXECUTABLE ${ALL_EXECUTABLES})
# Link each executable with the 'htsim' library defined in the parent directory.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Nodes 200
Connections 1
0->1 id 1 start 0 size 1000000
22 changes: 13 additions & 9 deletions htsim/sim/datacenter/main_uec.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ int main(int argc, char **argv) {
simtime_picosec switch_latency = timeFromUs((uint32_t)0);
queue_type qt = COMPOSITE;

enum LoadBalancing_Algo { BITMAP, REPS, REPS_LEGACY, OBLIVIOUS, MIXED, ECMP};
enum LoadBalancing_Algo { BITMAP, REPS, REPS_LEGACY, FREEZING, OBLIVIOUS, MIXED, ECMP};
LoadBalancing_Algo load_balancing_algo = MIXED;

bool log_sink = false;
Expand Down Expand Up @@ -230,6 +230,9 @@ int main(int argc, char **argv) {
else if (!strcmp(argv[i+1], "reps_legacy")) {
load_balancing_algo = REPS_LEGACY;
}
else if (!strcmp(argv[i+1], "freezing")) {
load_balancing_algo = FREEZING;
}
else if (!strcmp(argv[i+1], "oblivious")) {
load_balancing_algo = OBLIVIOUS;
}
Expand All @@ -243,7 +246,7 @@ int main(int argc, char **argv) {
load_balancing_algo = ECMP;
}
else {
cout << "Unknown load balancing algorithm of type " << argv[i+1] << ", expecting bitmap, reps or reps2" << endl;
cout << "Unknown load balancing algorithm of type " << argv[i+1] << ", expecting bitmap, reps, reps_legacy, freezing, oblivious, mixed, or ecmp" << endl;
exit_error(argv[0]);
}
cout << "Load balancing algorithm set to "<< argv[i+1] << endl;
Expand Down Expand Up @@ -820,15 +823,16 @@ int main(int argc, char **argv) {
});
break;
case REPS:
api->setMultipathFactory([path_entropy_size, disable_trim]() {
return std::make_unique<UecMpReps>(path_entropy_size, UecSrc::_debug, !disable_trim);
});
break;
case REPS_LEGACY:
api->setMultipathFactory([path_entropy_size]() {
return std::make_unique<UecMpRepsLegacy>(path_entropy_size, UecSrc::_debug);
});
break;
case FREEZING:
api->setMultipathFactory([path_entropy_size, disable_trim]() {
return std::make_unique<UecMpReps>(path_entropy_size, UecSrc::_debug, !disable_trim);
});
break;
case OBLIVIOUS:
api->setMultipathFactory([path_entropy_size]() {
return std::make_unique<UecMpOblivious>(path_entropy_size, UecSrc::_debug);
Expand Down Expand Up @@ -893,10 +897,10 @@ int main(int argc, char **argv) {
unique_ptr<UecMultipath> mp = nullptr;
if (load_balancing_algo == BITMAP){
mp = make_unique<UecMpBitmap>(path_entropy_size, UecSrc::_debug);
} else if (load_balancing_algo == REPS){
mp = make_unique<UecMpReps>(path_entropy_size, UecSrc::_debug, !disable_trim);
} else if (load_balancing_algo == REPS_LEGACY){
} else if (load_balancing_algo == REPS || load_balancing_algo == REPS_LEGACY){
mp = make_unique<UecMpRepsLegacy>(path_entropy_size, UecSrc::_debug);
} else if (load_balancing_algo == FREEZING){
mp = make_unique<UecMpReps>(path_entropy_size, UecSrc::_debug, !disable_trim);
}else if (load_balancing_algo == OBLIVIOUS){
mp = make_unique<UecMpOblivious>(path_entropy_size, UecSrc::_debug);
} else if (load_balancing_algo == MIXED){
Expand Down
Loading