const double* flops_amount, const double* bytes_amount, double rate,
double timeout)
{
+ /* Check that we are not mixing VMs and PMs in the parallel task */
+ bool is_a_vm = (nullptr != dynamic_cast<simgrid::s4u::VirtualMachine*>(host_list[0]));
+ for (int i = 1; i < host_nb; i++) {
+ bool tmp_is_a_vm = (nullptr != dynamic_cast<simgrid::s4u::VirtualMachine*>(host_list[i]));
+ xbt_assert(is_a_vm == tmp_is_a_vm, "parallel_execute: mixing VMs and PMs is not supported (yet).");
+ }
+
/* checking for infinite values */
for (int i = 0 ; i < host_nb ; ++i) {
if (flops_amount != nullptr)
{
return simgrid::simix::simcall([name, category, flops_amount, priority, bound, host] {
return simgrid::kernel::activity::ExecImplPtr(
- new simgrid::kernel::activity::ExecImpl(std::move(name), std::move(category), nullptr, host))
+ new simgrid::kernel::activity::ExecImpl(std::move(name), std::move(category), host))
->start(flops_amount, priority, bound);
});
}