-/* Copyright (c) 2017-2022. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2017-2023. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
static void streamer(size_t size)
{
auto* bob = sg4::Host::by_name("bob");
- auto* bob_disk = bob->get_disks().front();
auto* alice = sg4::Host::by_name("alice");
- auto* alice_disk = alice->get_disks().front();
+ const auto* bob_disk = bob->get_disks().front();
+ const auto* alice_disk = alice->get_disks().front();
double clock = sg4::Engine::get_clock();
XBT_INFO("[Bob -> Alice] Store and Forward (1 block)");
XBT_INFO(" Total : %.6f seconds", sg4::Engine::get_clock());
XBT_INFO("[Bob -> Alice] Store and Forward (100 blocks)");
- sg4::IoPtr read = bob_disk->read_async(size/100.0);
- sg4::CommPtr transfer = sg4::Comm::sendto_async(bob, alice, size/100.0);
- sg4::IoPtr write = alice_disk->write_async(size/100.);
+ size_t block_size = size / 100;
+ sg4::IoPtr read = bob_disk->read_async(block_size);
+ sg4::CommPtr transfer = sg4::Comm::sendto_async(bob, alice, block_size);
+ sg4::IoPtr write = alice_disk->write_async(block_size);
clock = sg4::Engine::get_clock();
for (int i = 0; i < 99; i++){
read->wait();
- read = bob_disk->read_async(size/100.0);
+ read = bob_disk->read_async(block_size);
transfer->wait();
- transfer = sg4::Comm::sendto_async(bob, alice, size/100.0);
+ transfer = sg4::Comm::sendto_async(bob, alice, block_size);
write->wait();
- write = alice_disk->write_async(size/100.);
+ write = alice_disk->write_async(block_size);
}
read->wait();
sg4::Io::streamto(bob, bob_disk, alice, alice_disk, size);
XBT_INFO(" Total : %.6f seconds", sg4::Engine::get_clock() - clock);
- XBT_INFO("[Bob -> Alice] Streaming (Write bottleneck)");
+ XBT_INFO("[Alice -> Bob] Streaming (Write bottleneck)");
clock = sg4::Engine::get_clock();
sg4::Io::streamto(alice, alice_disk, bob, bob_disk, size);
XBT_INFO(" Total : %.6f seconds", sg4::Engine::get_clock() - clock);
clock = sg4::Engine::get_clock();
sg4::Io::streamto(bob, bob_disk, bob, bob_disk, size);
XBT_INFO(" Total : %.6f seconds", sg4::Engine::get_clock() - clock);
-
}
static void background_send() {
auto* bob = zone->create_host("bob", 1e6);
auto* alice = zone->create_host("alice", 1e6);
- sg4::LinkInRoute link(zone->create_link("link", "2MBps")->set_latency("50us")->seal());
- zone->add_route(bob->get_netpoint(), alice->get_netpoint(), nullptr, nullptr, {link}, true);
+ auto* link = zone->create_link("link", "2MBps")->set_latency("50us");
+ zone->add_route(bob, alice, {link});
bob->create_disk("bob_disk", "1MBps", "500kBps");
- alice->create_disk("alice_disk", 4e6, 4e6);
+ alice->create_disk("alice_disk", "4MBps", "4MBps");
zone->seal();