X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cb54c8994ad2d9cb4133e22365168ad9d602220b..b85de8f1e83118f564f9ee5af0c4d90049147739:/src/surf/host_ptask_L07.cpp diff --git a/src/surf/host_ptask_L07.cpp b/src/surf/host_ptask_L07.cpp index bf409bd6cb..5dca16698b 100644 --- a/src/surf/host_ptask_L07.cpp +++ b/src/surf/host_ptask_L07.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2010, 2013-2014. The SimGrid Team. +/* Copyright (c) 2007-2010, 2013-2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -8,6 +8,7 @@ #include "cpu_interface.hpp" #include "surf_routing.hpp" +#include "xbt/lib.h" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_host); @@ -45,19 +46,18 @@ void surf_host_model_init_ptask_L07(void) } -HostL07Model::HostL07Model() : HostModel("Host ptask_L07") { +HostL07Model::HostL07Model() : HostModel() { if (!ptask_maxmin_system) ptask_maxmin_system = lmm_system_new(1); surf_host_model = NULL; - surf_network_model = new NetworkL07Model(); - surf_cpu_model_pm = new CpuL07Model(); + surf_network_model = new NetworkL07Model(this); + surf_cpu_model_pm = new CpuL07Model(this); routing_model_create(surf_network_model->createLink("__loopback__", 498000000, NULL, 0.000015, NULL, SURF_RESOURCE_ON, NULL, SURF_LINK_FATPIPE, NULL)); - p_cpuModel = surf_cpu_model_pm; } HostL07Model::~HostL07Model() { @@ -168,7 +168,7 @@ void HostL07Model::updateActionsState(double /*now*/, double delta) { } Action *HostL07Model::executeParallelTask(int host_nb, - void **host_list, + sg_host_t*host_list, double *flops_amount, double *bytes_amount, double rate) @@ -181,7 +181,7 @@ Action *HostL07Model::executeParallelTask(int host_nb, action->p_edgeList->reserve(host_nb); for (int i = 0; ip_edgeList->push_back(static_cast(host_list[i])->p_netElm); + action->p_edgeList->push_back(sg_host_edge(host_list[i])); if (ptask_parallel_task_link_set == NULL) ptask_parallel_task_link_set = xbt_dict_new_homogeneous(NULL); @@ -235,7 +235,7 @@ Action *HostL07Model::executeParallelTask(int host_nb, for (int i = 0; i < host_nb; i++) lmm_expand(ptask_maxmin_system, - static_cast(host_list[i])->p_cpu->getConstraint(), + sg_host_surfcpu(host_list[i])->getConstraint(), action->getVariable(), flops_amount[i]); for (int i = 0; i < host_nb; i++) { @@ -284,19 +284,19 @@ Host *HostL07Model::createHost(const char *name) return wk; } -Action *HostL07Model::communicate(Host *src, Host *dst, +Action *NetworkL07Model::communicate(RoutingEdge *src, RoutingEdge *dst, double size, double rate) { - void **host_list = xbt_new0(void *, 2); + sg_host_t*host_list = xbt_new0(sg_host_t, 2); double *flops_amount = xbt_new0(double, 2); double *bytes_amount = xbt_new0(double, 4); Action *res = NULL; - host_list[0] = src; - host_list[1] = dst; + host_list[0] = sg_host_by_name(src->getName()); + host_list[1] = sg_host_by_name(dst->getName()); bytes_amount[1] = size; - res = executeParallelTask(2, host_list, + res = p_hostModel->executeParallelTask(2, host_list, flops_amount, bytes_amount, rate); @@ -550,12 +550,11 @@ e_surf_resource_state_t HostL07::getState() { Action *HostL07::execute(double size) { - void **host_list = xbt_new0(void *, 1); + sg_host_t*host_list = xbt_new0(sg_host_t, 1); double *flops_amount = xbt_new0(double, 1); double *bytes_amount = xbt_new0(double, 1); - host_list[0] = this; - bytes_amount[0] = 0.0; + host_list[0] = sg_host_by_name(getName()); flops_amount[0] = size; return static_cast(getModel())->executeParallelTask(1, host_list, @@ -657,7 +656,7 @@ int L07Action::unref() { m_refcount--; if (!m_refcount) { - if (actionHook::is_linked()) + if (action_hook.is_linked()) p_stateSet->erase(p_stateSet->iterator_to(*this)); if (getVariable()) lmm_variable_free(ptask_maxmin_system, getVariable());