- xbt_assert(std::isfinite(rate), "rate is not finite!");
-
- std::vector<simgrid::s4u::Host*> hosts(host_list, host_list + host_nb);
- std::vector<double> flops_parallel_amount;
- std::vector<double> bytes_parallel_amount;
- if (flops_amount != nullptr)
- flops_parallel_amount = std::vector<double>(flops_amount, flops_amount + host_nb);
- if (bytes_amount != nullptr)
- bytes_parallel_amount = std::vector<double>(bytes_amount, bytes_amount + host_nb * host_nb);
- return simgrid::simix::simcall([name, hosts, flops_parallel_amount, bytes_parallel_amount, timeout] {
- simgrid::kernel::activity::ExecImpl* exec = new simgrid::kernel::activity::ExecImpl();
- (*exec)
- .set_name(name)
- .set_hosts(hosts)
- .set_timeout(timeout)
- .set_flops_amounts(flops_parallel_amount)
- .set_bytes_amounts(bytes_parallel_amount)
- .start();
- return simgrid::kernel::activity::ExecImplPtr(exec);
- });