From bad14d23aa8bca6a7a96a68f8e64ea74ee7b20b0 Mon Sep 17 00:00:00 2001 From: SUTER Frederic Date: Mon, 12 Apr 2021 15:10:49 +0200 Subject: [PATCH] modernize cabinet creation --- src/surf/sg_platf.cpp | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/surf/sg_platf.cpp b/src/surf/sg_platf.cpp index 1f4eb20f9a..1e41058fec 100644 --- a/src/surf/sg_platf.cpp +++ b/src/surf/sg_platf.cpp @@ -265,27 +265,17 @@ void routing_cluster_add_backbone(simgrid::kernel::resource::LinkImpl* bb) void sg_platf_new_cabinet(const simgrid::kernel::routing::CabinetCreationArgs* cabinet) { + auto* zone = static_cast(routing_get_current()); for (int const& radical : *cabinet->radicals) { - std::string hostname = cabinet->prefix + std::to_string(radical) + cabinet->suffix; - simgrid::kernel::routing::HostCreationArgs host; - host.pstate = 0; - host.core_amount = 1; - host.id = hostname; - host.speed_per_pstate.push_back(cabinet->speed); - sg_platf_new_host(&host); - - simgrid::kernel::routing::LinkCreationArgs link; - link.policy = simgrid::s4u::Link::SharingPolicy::SPLITDUPLEX; - link.latency = cabinet->lat; - link.bandwidths.push_back(cabinet->bw); - link.id = "link_" + hostname; - sg_platf_new_link(&link); - - simgrid::kernel::routing::HostLinkCreationArgs host_link; - host_link.id = hostname; - host_link.link_up = std::string("link_") + hostname + "_UP"; - host_link.link_down = std::string("link_") + hostname + "_DOWN"; - sg_platf_new_hostlink(&host_link); + std::string id = cabinet->prefix + std::to_string(radical) + cabinet->suffix; + simgrid::s4u::Host* host = zone->create_host(id, std::vector{cabinet->speed})->seal(); + + simgrid::s4u::Link* link_up = + zone->create_link("link_" + id + "_UP", std::vector{cabinet->bw})->set_latency(cabinet->lat)->seal(); + simgrid::s4u::Link* link_down = + zone->create_link("link_" + id + "_DOWN", std::vector{cabinet->bw})->set_latency(cabinet->lat)->seal(); + + zone->add_private_link_at(host->get_netpoint()->id(), {link_up->get_impl(), link_down->get_impl()}); } delete cabinet->radicals; } -- 2.20.1