XBT
- Remove XBT_LOG_CONNECT, it should be useless nowadays.
+ SimDag
+ - SD_task_dependency_add(): remove unused parameters 'name' and 'data'.
+
SMPI
- The privatization of global variables via mmap() is now significantly more
flexible and allows the use of daemons with SMPI and to add new processes
way:
\code
-SD_task_dependency_add(NULL, NULL, t1, c);
-SD_task_dependency_add(NULL, NULL, c, t2);
+SD_task_dependency_add(t1, c);
+SD_task_dependency_add(c, t2);
\endcode
This way task t2 cannot start before the termination of communication c
-/* Copyright (c) 2012-2016. The SimGrid Team.
+/* Copyright (c) 2012-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_t t4 = SD_task_create_comp_seq("t4", NULL, 25000000);
/* Add dependencies: t1->c1->t2->c2->t3 */
- SD_task_dependency_add(NULL, NULL, t1, c1);
- SD_task_dependency_add(NULL, NULL, c1, t2);
- SD_task_dependency_add(NULL, NULL, t2, c2);
- SD_task_dependency_add(NULL, NULL, c2, t3);
- SD_task_dependency_add(NULL, NULL, t3, c3);
- SD_task_dependency_add(NULL, NULL, c3, t4);
+ SD_task_dependency_add(t1, c1);
+ SD_task_dependency_add(c1, t2);
+ SD_task_dependency_add(t2, c2);
+ SD_task_dependency_add(c2, t3);
+ SD_task_dependency_add(t3, c3);
+ SD_task_dependency_add(c3, t4);
/* Schedule tasks t1 and w3 on first host, t2 on second host */
/* Transfers are auto-scheduled */
-/* Copyright (c) 2009-2016. The SimGrid Team.
+/* Copyright (c) 2009-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
if (last_scheduled_task && (SD_task_get_state(last_scheduled_task) != SD_DONE) &&
(SD_task_get_state(last_scheduled_task) != SD_FAILED) &&
!SD_task_dependency_exists(sg_host_get_last_scheduled_task(selected_host), selected_task))
- SD_task_dependency_add("resource", NULL, last_scheduled_task, selected_task);
+ SD_task_dependency_add(last_scheduled_task, selected_task);
sg_host_set_last_scheduled_task(selected_host, selected_task);
sg_host_set_available_at(selected_host, min_finish_time);
-/* Copyright (c) 2006-2017. The SimGrid Team.
+/* Copyright (c) 2006-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
if (fabs(comp_amount1 - (*(static_cast<double*>(SD_task_get_data(taskA))))) > 1e-12)
XBT_ERROR("User data was corrupted by a simple set/get");
- SD_task_dependency_add(NULL, NULL, taskB, taskA);
- SD_task_dependency_add(NULL, NULL, taskC, taskA);
- SD_task_dependency_add(NULL, NULL, taskD, taskB);
- SD_task_dependency_add(NULL, NULL, taskD, taskC);
- SD_task_dependency_add(NULL, NULL, taskB, taskC);
+ SD_task_dependency_add(taskB, taskA);
+ SD_task_dependency_add(taskC, taskA);
+ SD_task_dependency_add(taskD, taskB);
+ SD_task_dependency_add(taskD, taskC);
+ SD_task_dependency_add(taskB, taskC);
try {
- SD_task_dependency_add(NULL, NULL, taskA, taskA); /* shouldn't work and must raise an exception */
+ SD_task_dependency_add(taskA, taskA); /* shouldn't work and must raise an exception */
xbt_die("Hey, I can add a dependency between Task A and Task A!");
} catch (xbt_ex& ex) {
if (ex.category != arg_error)
}
try {
- SD_task_dependency_add(NULL, NULL, taskB, taskA); /* shouldn't work and must raise an exception */
+ SD_task_dependency_add(taskB, taskA); /* shouldn't work and must raise an exception */
xbt_die("Oh oh, I can add an already existing dependency!");
} catch (xbt_ex& ex) {
if (ex.category != arg_error)
-/* Copyright (c) 2006-2010, 2012-2015. The SimGrid Team.
+/* Copyright (c) 2006-2010, 2012-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_t taskD = SD_task_create_comm_e2e("Task D", NULL, 1e7);
SD_task_t taskE = SD_task_create_comp_seq("Task E", NULL, 5e9);
- SD_task_dependency_add(NULL, NULL, taskA, taskB);
- SD_task_dependency_add(NULL, NULL, taskB, taskC);
- SD_task_dependency_add(NULL, NULL, taskC, taskD);
- SD_task_dependency_add(NULL, NULL, taskD, taskE);
+ SD_task_dependency_add(taskA, taskB);
+ SD_task_dependency_add(taskB, taskC);
+ SD_task_dependency_add(taskC, taskD);
+ SD_task_dependency_add(taskD, taskE);
/* Add watchpoints on completion of compute tasks */
SD_task_watch(taskA, SD_DONE);
-/* Copyright (c) 2006-2010, 2012-2016. The SimGrid Team.
+/* Copyright (c) 2006-2010, 2012-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_t par_comp2 = SD_task_create_comp_par_amdahl("Par. Comp. 2", NULL, 3e8, 0.5);
SD_task_t par_comp3 = SD_task_create("Par. Comp. 3", NULL, 1e9);
- SD_task_dependency_add(NULL, NULL, seq_comp1, e2e_comm);
- SD_task_dependency_add(NULL, NULL, e2e_comm, seq_comp2);
+ SD_task_dependency_add(seq_comp1, e2e_comm);
+ SD_task_dependency_add(e2e_comm, seq_comp2);
- SD_task_dependency_add(NULL, NULL, par_comp1, redist);
- SD_task_dependency_add(NULL, NULL, redist, par_comp2);
+ SD_task_dependency_add(par_comp1, redist);
+ SD_task_dependency_add(redist, par_comp2);
SD_task_schedulel(seq_comp1, 1, hosts[8]);
SD_task_schedulel(seq_comp2, 1, hosts[9]);
-/* Copyright (c) 2006-2010, 2012-2017. The SimGrid Team.
+/* Copyright (c) 2006-2010, 2012-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* @see SD_task_api
* @{
*/
-XBT_PUBLIC(void) SD_task_dependency_add(const char *name, void *data, SD_task_t src, SD_task_t dst);
+XBT_PUBLIC(void) SD_task_dependency_add(SD_task_t src, SD_task_t dst);
XBT_PUBLIC(void) SD_task_dependency_remove(SD_task_t src, SD_task_t dst);
XBT_PUBLIC(int) SD_task_dependency_exists(SD_task_t src, SD_task_t dst);
/** @} */
-/* Copyright (c) 2009-2017. The SimGrid Team.
+/* Copyright (c) 2009-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
if (file->predecessors->empty()) {
for (SD_task_t const& it : *file->successors) {
newfile = SD_task_create_comm_e2e(file->name, nullptr, file->amount);
- SD_task_dependency_add(nullptr, nullptr, root_task, newfile);
- SD_task_dependency_add(nullptr, nullptr, newfile, it);
+ SD_task_dependency_add(root_task, newfile);
+ SD_task_dependency_add(newfile, it);
xbt_dynar_push(result, &newfile);
}
} else if (file->successors->empty()) {
for (SD_task_t const& it : *file->predecessors) {
newfile = SD_task_create_comm_e2e(file->name, nullptr, file->amount);
- SD_task_dependency_add(nullptr, nullptr, it, newfile);
- SD_task_dependency_add(nullptr, nullptr, newfile, end_task);
+ SD_task_dependency_add(it, newfile);
+ SD_task_dependency_add(newfile, end_task);
xbt_dynar_push(result, &newfile);
}
} else {
"This loop dependency will prevent the execution of the task.", file->name, it->name);
}
newfile = SD_task_create_comm_e2e(file->name, nullptr, file->amount);
- SD_task_dependency_add(nullptr, nullptr, it, newfile);
- SD_task_dependency_add(nullptr, nullptr, newfile, it2);
+ SD_task_dependency_add(it, newfile);
+ SD_task_dependency_add(newfile, it2);
xbt_dynar_push(result, &newfile);
}
}
*/
if ((file != root_task) && (file != end_task)) {
if (file->inputs->empty())
- SD_task_dependency_add(nullptr, nullptr, root_task, file);
+ SD_task_dependency_add(root_task, file);
if (file->outputs->empty())
- SD_task_dependency_add(nullptr, nullptr, file, end_task);
+ SD_task_dependency_add(file, end_task);
}
} else {
THROW_IMPOSSIBLE;
}
}
if (is_input) {
- SD_task_dependency_add(nullptr, nullptr, file, current_job);
+ SD_task_dependency_add(file, current_job);
} else {
- SD_task_dependency_add(nullptr, nullptr, current_job, file);
+ SD_task_dependency_add(current_job, file);
if ((file->predecessors->size() + file->inputs->size()) > 1) {
XBT_WARN("File %s created at more than one location...", file->name);
}
auto job = jobs.find(A_dax__parent_ref);
if (job != jobs.end()) {
SD_task_t parent = job->second;
- SD_task_dependency_add(nullptr, nullptr, parent, current_child);
+ SD_task_dependency_add(parent, current_child);
XBT_DEBUG("Control-flow dependency from %s to %s", current_child->name, parent->name);
} else {
throw std::out_of_range(std::string("Parse error on line ") + std::to_string(dax_lineno) +
-/* Copyright (c) 2009-2017. The SimGrid Team.
+/* Copyright (c) 2009-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
task = SD_task_create_comm_e2e(name.c_str(), nullptr, size);
else
task = SD_task_create_comm_par_mxn_1d_block(name.c_str(), nullptr, size);
- SD_task_dependency_add(nullptr, nullptr, src, task);
- SD_task_dependency_add(nullptr, nullptr, task, dst);
+ SD_task_dependency_add(src, task);
+ SD_task_dependency_add(task, dst);
jobs.insert({name, task});
xbt_dynar_push(result, &task);
} else {
XBT_WARN("Task '%s' is defined more than once", name.c_str());
}
} else {
- SD_task_dependency_add(nullptr, nullptr, src, dst);
+ SD_task_dependency_add(src, dst);
}
}
}
xbt_dynar_foreach (result, i, task){
if (task->predecessors->empty() && task->inputs->empty() && task != root) {
XBT_DEBUG("Task '%s' has no source. Add dependency from 'root'", task->name);
- SD_task_dependency_add(nullptr, nullptr, root, task);
+ SD_task_dependency_add(root, task);
}
if (task->successors->empty() && task->outputs->empty() && task != end) {
XBT_DEBUG("Task '%s' has no destination. Add dependency to 'end'", task->name);
- SD_task_dependency_add(nullptr, nullptr, task, end);
+ SD_task_dependency_add(task, end);
}
}
/* add dependency between the previous and the task to avoid parallel execution */
if(task){
if (previous_task && not SD_task_dependency_exists(previous_task, task))
- SD_task_dependency_add(nullptr, nullptr, previous_task, task);
+ SD_task_dependency_add(previous_task, task);
SD_task_schedulel(task, 1, workstations[atoi(elm.first.c_str())]);
previous_task = task;
-/* Copyright (c) 2006-2017. The SimGrid Team.
+/* Copyright (c) 2006-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* \a dst will depend on \a src, ie \a dst will not start before \a src is finished.
* Their \ref e_SD_task_state_t "state" must be #SD_NOT_SCHEDULED, #SD_SCHEDULED or #SD_RUNNABLE.
*
- * \param name the name of the new dependency (can be \c nullptr)
- * \param data the user data you want to associate with this dependency (can be \c nullptr)
* \param src the task which must be executed first
* \param dst the task you want to make depend on \a src
* \see SD_task_dependency_remove()
*/
-void SD_task_dependency_add(const char *name, void *data, SD_task_t src, SD_task_t dst)
+void SD_task_dependency_add(SD_task_t src, SD_task_t dst)
{
if (src == dst)
THROWF(arg_error, 0, "Cannot add a dependency between task '%s' and itself", SD_task_get_name(src));
-/* Copyright (c) 2007-2012, 2014-2015. The SimGrid Team.
+/* Copyright (c) 2007-2012, 2014-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_t taskA = SD_task_create("Task Comm 1", NULL, 1.0);
SD_task_t taskB = SD_task_create("Task Comm 2", NULL, 1.0);
- SD_task_dependency_add(NULL, NULL, taskInit, taskA);
- SD_task_dependency_add(NULL, NULL, taskInit, taskB);
+ SD_task_dependency_add(taskInit, taskA);
+ SD_task_dependency_add(taskInit, taskB);
sg_host_t *hosts = sg_host_list();
SD_task_schedule(taskInit, 1, hosts, no_cost, no_cost, -1.0);
-/* Copyright (c) 2007-2012, 2014-2015. The SimGrid Team.
+/* Copyright (c) 2007-2012, 2014-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_t taskA = SD_task_create("Task Comm A", NULL, 1.0);
SD_task_t taskB = SD_task_create("Task Comm B", NULL, 1.0);
- SD_task_dependency_add(NULL, NULL, taskInit, taskA);
- SD_task_dependency_add(NULL, NULL, taskInit, taskB);
+ SD_task_dependency_add(taskInit, taskA);
+ SD_task_dependency_add(taskInit, taskB);
sg_host_t *hosts = sg_host_list();
SD_task_schedule(taskInit, 1, hosts, SD_SCHED_NO_COST, SD_SCHED_NO_COST, -1.0);
-/* Copyright (c) 2007-2012, 2014-2015. The SimGrid Team.
+/* Copyright (c) 2007-2012, 2014-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_t taskA = SD_task_create("Task A", NULL, 1.0);
SD_task_t taskFin = SD_task_create("Task Fin", NULL, 1.0);
- SD_task_dependency_add(NULL, NULL, taskInit, taskA);
- SD_task_dependency_add(NULL, NULL, taskA, taskFin);
+ SD_task_dependency_add(taskInit, taskA);
+ SD_task_dependency_add(taskA, taskFin);
sg_host_t *hosts = sg_host_list();
SD_task_schedule(taskInit, 1, hosts, no_cost, no_cost, -1.0);
-/* Copyright (c) 2007-2012, 2014-2015. The SimGrid Team.
+/* Copyright (c) 2007-2012, 2014-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_t taskA = SD_task_create("Task A", NULL, 1.0);
SD_task_t taskFin = SD_task_create("Task Fin", NULL, 1.0);
- SD_task_dependency_add(NULL, NULL, taskInit, taskA);
- SD_task_dependency_add(NULL, NULL, taskA, taskFin);
+ SD_task_dependency_add(taskInit, taskA);
+ SD_task_dependency_add(taskA, taskFin);
sg_host_t *hosts = sg_host_list();
SD_task_schedule(taskInit, 1, hosts, no_cost, no_cost, -1.0);
-/* Copyright (c) 2007-2012, 2014-2015. The SimGrid Team.
+/* Copyright (c) 2007-2012, 2014-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_t taskA = SD_task_create("Task A", NULL, 1.0);
SD_task_t taskB = SD_task_create("Task B", NULL, 1.0);
- SD_task_dependency_add(NULL, NULL, taskInit, taskA);
- SD_task_dependency_add(NULL, NULL, taskInit, taskB);
+ SD_task_dependency_add(taskInit, taskA);
+ SD_task_dependency_add(taskInit, taskB);
sg_host_t *hosts = sg_host_list();
SD_task_schedule(taskInit, 1, hosts, no_cost, no_cost, -1.0);
/* Latency tests */
-/* Copyright (c) 2007, 2009-2011, 2013-2015. The SimGrid Team.
+/* Copyright (c) 2007, 2009-2011, 2013-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_schedule(task2, 2, hosts, no_cost, communication_amount2, -1.0);
xbt_free(hosts);
- SD_task_dependency_add(NULL, NULL, root, task1);
- SD_task_dependency_add(NULL, NULL, root, task2);
+ SD_task_dependency_add(root, task1);
+ SD_task_dependency_add(root, task2);
SD_simulate(-1.0);
/* Latency tests */
-/* Copyright (c) 2007, 2009-2011, 2013-2015. The SimGrid Team.
+/* Copyright (c) 2007, 2009-2011, 2013-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_schedule(task2, 2, hosts, no_cost, communication_amount2, -1.0);
xbt_free(hosts);
- SD_task_dependency_add(NULL, NULL, root, task1);
- SD_task_dependency_add(NULL, NULL, root, task2);
+ SD_task_dependency_add(root, task1);
+ SD_task_dependency_add(root, task2);
SD_simulate(-1.0);
/* Latency tests */
-/* Copyright (c) 2007, 2009-2011, 2013-2015. The SimGrid Team.
+/* Copyright (c) 2007, 2009-2011, 2013-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
for (int i = 0; i < TASK_NUM; i++) {
task[i] = SD_task_create("Comm", NULL, 1.0);
SD_task_schedule(task[i], 2, hosts, no_cost, communication_amount, -1.0);
- SD_task_dependency_add(NULL, NULL, root, task[i]);
+ SD_task_dependency_add(root, task[i]);
}
xbt_free(hosts);
-/* Copyright (c) 2007-2012, 2014-2015. The SimGrid Team.
+/* Copyright (c) 2007-2012, 2014-2018. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
SD_task_t taskC = SD_task_create("Task C", NULL, 1.0);
SD_task_t taskD = SD_task_create("Task D", NULL, 1.0);
- SD_task_dependency_add(NULL, NULL, taskInit, taskA);
- SD_task_dependency_add(NULL, NULL, taskInit, taskB);
- SD_task_dependency_add(NULL, NULL, taskC, taskD);
+ SD_task_dependency_add(taskInit, taskA);
+ SD_task_dependency_add(taskInit, taskB);
+ SD_task_dependency_add(taskC, taskD);
sg_host_t *hosts = sg_host_list();
SD_task_schedule(taskInit, 1, hosts, &no_cost, &no_cost, -1.0);