X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/122a5a2813fd6d64d4db8ee7f1fdb5a62b7e0d6a..6051369d9427154f912e8affc417f20a26a0eb95:/examples/cpp/clusters-multicpu/s4u-clusters-multicpu.cpp?ds=sidebyside diff --git a/examples/cpp/clusters-multicpu/s4u-clusters-multicpu.cpp b/examples/cpp/clusters-multicpu/s4u-clusters-multicpu.cpp index b637a23464..b2ca2e78f7 100644 --- a/examples/cpp/clusters-multicpu/s4u-clusters-multicpu.cpp +++ b/examples/cpp/clusters-multicpu/s4u-clusters-multicpu.cpp @@ -24,7 +24,7 @@ public: void operator()() const { /* Vector in which we store all ongoing communications */ - std::vector pending_comms; + sg4::ActivitySet pending_comms; /* Make a vector of the mailboxes to use */ std::vector mboxes; @@ -40,13 +40,13 @@ public: auto* mbox = sg4::Mailbox::by_name(host->get_name()); mboxes.push_back(mbox); sg4::CommPtr comm = mbox->put_async(payload, msg_size); - pending_comms.push_back(comm); + pending_comms.push(comm); } XBT_INFO("Done dispatching all messages"); /* Now that all message exchanges were initiated, wait for their completion in one single call */ - sg4::Comm::wait_all(pending_comms); + pending_comms.wait_all(); XBT_INFO("Goodbye now!"); } @@ -87,8 +87,7 @@ public: * @param id Internal identifier in the torus (for information) * @return netpoint, gateway: the netpoint to the StarZone and CPU0 as gateway */ -static std::pair -create_hostzone(const sg4::NetZone* zone, const std::vector& /*coord*/, unsigned long id) +static sg4::NetZone* create_hostzone(const sg4::NetZone* zone, const std::vector& /*coord*/, unsigned long id) { constexpr int num_cpus = 8; //!< Number of CPUs in the zone constexpr double speed = 1e9; //!< Speed of each CPU @@ -101,24 +100,21 @@ create_hostzone(const sg4::NetZone* zone, const std::vector& /*co /* setting my Torus parent zone */ host_zone->set_parent(zone); - simgrid::kernel::routing::NetPoint* gateway = nullptr; /* create CPUs */ for (int i = 0; i < num_cpus; i++) { std::string cpu_name = hostname + "-cpu" + std::to_string(i); - const sg4::Host* host = host_zone->create_host(cpu_name, speed)->seal(); + const sg4::Host* host = host_zone->create_host(cpu_name, speed); /* the first CPU is the gateway */ if (i == 0) - gateway = host->get_netpoint(); + host_zone->set_gateway(host->get_netpoint()); /* create split-duplex link */ - sg4::SplitDuplexLink* link = host_zone->create_split_duplex_link("link-" + cpu_name, link_bw); - link->set_latency(link_lat)->seal(); + auto* link = host_zone->create_split_duplex_link("link-" + cpu_name, link_bw)->set_latency(link_lat); /* connecting CPU to outer world */ - host_zone->add_route(host->get_netpoint(), nullptr, nullptr, nullptr, {{link, sg4::LinkInRoute::Direction::UP}}, - true); + host_zone->add_route(host, nullptr, {{link, sg4::LinkInRoute::Direction::UP}}, true); } /* seal newly created netzone */ host_zone->seal(); - return std::make_pair(host_zone->get_netpoint(), gateway); + return host_zone; } /*************************************************************************************************/