X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/85cb15c2b564f7557aee4d98e93176ce4c39ef73:/src/surf/workstation_clm03.cpp..e26d84ebd86c18af7d79d4afd659e53fd62ac9eb:/src/surf/host_clm03.cpp?ds=inline diff --git a/src/surf/workstation_clm03.cpp b/src/surf/host_clm03.cpp similarity index 56% rename from src/surf/workstation_clm03.cpp rename to src/surf/host_clm03.cpp index 1472e155eb..5c1a5d60fa 100644 --- a/src/surf/workstation_clm03.cpp +++ b/src/surf/host_clm03.cpp @@ -4,12 +4,13 @@ /* 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. */ -#include "workstation_clm03.hpp" -#include "vm_workstation_interface.hpp" +#include "host_clm03.hpp" + #include "cpu_cas01.hpp" #include "simgrid/sg_config.h" +#include "vm_interface.hpp" -XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_workstation); +XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_host); /************* * CallBacks * @@ -19,52 +20,52 @@ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(surf_workstation); * Model * *********/ -void surf_workstation_model_init_current_default(void) +void surf_host_model_init_current_default(void) { - surf_workstation_model = new WorkstationCLM03Model(); + surf_host_model = new HostCLM03Model(); xbt_cfg_setdefault_boolean(_sg_cfg_set, "network/crosstraffic", "yes"); surf_cpu_model_init_Cas01(); surf_network_model_init_LegrandVelho(); - surf_workstation_model->p_cpuModel = surf_cpu_model_pm; + surf_host_model->p_cpuModel = surf_cpu_model_pm; - ModelPtr model = surf_workstation_model; + ModelPtr model = surf_host_model; xbt_dynar_push(model_list, &model); xbt_dynar_push(model_list_invoke, &model); - sg_platf_host_add_cb(workstation_parse_init); + sg_platf_host_add_cb(host_parse_init); } -void surf_workstation_model_init_compound() +void surf_host_model_init_compound() { xbt_assert(surf_cpu_model_pm, "No CPU model defined yet!"); xbt_assert(surf_network_model, "No network model defined yet!"); - surf_workstation_model = new WorkstationCLM03Model(); + surf_host_model = new HostCLM03Model(); - ModelPtr model = surf_workstation_model; + ModelPtr model = surf_host_model; xbt_dynar_push(model_list, &model); xbt_dynar_push(model_list_invoke, &model); - sg_platf_host_add_cb(workstation_parse_init); + sg_platf_host_add_cb(host_parse_init); } -WorkstationCLM03Model::WorkstationCLM03Model() - : WorkstationModel("Workstation") +HostCLM03Model::HostCLM03Model() + : HostModel("Host CLM03") { } -WorkstationCLM03Model::~WorkstationCLM03Model() +HostCLM03Model::~HostCLM03Model() {} -WorkstationPtr WorkstationCLM03Model::createWorkstation(const char *name){ - WorkstationPtr workstation = new WorkstationCLM03(surf_workstation_model, name, NULL, +HostPtr HostCLM03Model::createHost(const char *name){ + HostPtr host = new HostCLM03(surf_host_model, name, NULL, (xbt_dynar_t)xbt_lib_get_or_null(storage_lib, name, ROUTING_STORAGE_HOST_LEVEL), (RoutingEdgePtr)xbt_lib_get_or_null(host_lib, name, ROUTING_HOST_LEVEL), static_cast(xbt_lib_get_or_null(host_lib, name, SURF_CPU_LEVEL))); - XBT_DEBUG("Create workstation %s with %ld mounted disks", name, xbt_dynar_length(workstation->p_storage)); - xbt_lib_set(host_lib, name, SURF_WKS_LEVEL, workstation); - return workstation; + XBT_DEBUG("Create host %s with %ld mounted disks", name, xbt_dynar_length(host->p_storage)); + xbt_lib_set(host_lib, name, SURF_HOST_LEVEL, host); + return host; } -double WorkstationCLM03Model::shareResources(double now){ +double HostCLM03Model::shareResources(double now){ adjustWeightOfDummyCpuActions(); double min_by_cpu = p_cpuModel->shareResources(now); @@ -88,48 +89,48 @@ double WorkstationCLM03Model::shareResources(double now){ return res; } -void WorkstationCLM03Model::updateActionsState(double /*now*/, double /*delta*/){ +void HostCLM03Model::updateActionsState(double /*now*/, double /*delta*/){ return; } -ActionPtr WorkstationCLM03Model::executeParallelTask(int workstation_nb, - void **workstation_list, +ActionPtr HostCLM03Model::executeParallelTask(int host_nb, + void **host_list, double *flops_amount, double *bytes_amount, double rate){ #define cost_or_zero(array,pos) ((array)?(array)[pos]:0.0) ActionPtr action =NULL; - if ((workstation_nb == 1) + if ((host_nb == 1) && (cost_or_zero(bytes_amount, 0) == 0.0)){ - action = ((WorkstationCLM03Ptr)workstation_list[0])->execute(flops_amount[0]); - } else if ((workstation_nb == 1) + action = ((HostCLM03Ptr)host_list[0])->execute(flops_amount[0]); + } else if ((host_nb == 1) && (cost_or_zero(flops_amount, 0) == 0.0)) { - action = communicate((WorkstationCLM03Ptr)workstation_list[0], - (WorkstationCLM03Ptr)workstation_list[0],bytes_amount[0], rate); - } else if ((workstation_nb == 2) + action = communicate((HostCLM03Ptr)host_list[0], + (HostCLM03Ptr)host_list[0],bytes_amount[0], rate); + } else if ((host_nb == 2) && (cost_or_zero(flops_amount, 0) == 0.0) && (cost_or_zero(flops_amount, 1) == 0.0)) { int i,nb = 0; double value = 0.0; - for (i = 0; i < workstation_nb * workstation_nb; i++) { + for (i = 0; i < host_nb * host_nb; i++) { if (cost_or_zero(bytes_amount, i) > 0.0) { nb++; value = cost_or_zero(bytes_amount, i); } } if (nb == 1){ - action = communicate((WorkstationCLM03Ptr)workstation_list[0], - (WorkstationCLM03Ptr)workstation_list[1],value, rate); + action = communicate((HostCLM03Ptr)host_list[0], + (HostCLM03Ptr)host_list[1],value, rate); } } else THROW_UNIMPLEMENTED; /* This model does not implement parallel tasks */ #undef cost_or_zero - xbt_free((WorkstationCLM03Ptr)workstation_list); + xbt_free((HostCLM03Ptr)host_list); return action; } -ActionPtr WorkstationCLM03Model::communicate(WorkstationPtr src, WorkstationPtr dst, double size, double rate){ +ActionPtr HostCLM03Model::communicate(HostPtr src, HostPtr dst, double size, double rate){ return surf_network_model->communicate(src->p_netElm, dst->p_netElm, size, rate); } @@ -138,27 +139,27 @@ ActionPtr WorkstationCLM03Model::communicate(WorkstationPtr src, WorkstationPtr /************ * Resource * ************/ -WorkstationCLM03::WorkstationCLM03(WorkstationModelPtr model, const char* name, xbt_dict_t properties, xbt_dynar_t storage, RoutingEdgePtr netElm, CpuPtr cpu) - : Workstation(model, name, properties, storage, netElm, cpu) {} +HostCLM03::HostCLM03(HostModelPtr model, const char* name, xbt_dict_t properties, xbt_dynar_t storage, RoutingEdgePtr netElm, CpuPtr cpu) + : Host(model, name, properties, storage, netElm, cpu) {} -bool WorkstationCLM03::isUsed(){ +bool HostCLM03::isUsed(){ THROW_IMPOSSIBLE; /* This model does not implement parallel tasks */ return -1; } -void WorkstationCLM03::updateState(tmgr_trace_event_t /*event_type*/, double /*value*/, double /*date*/){ +void HostCLM03::updateState(tmgr_trace_event_t /*event_type*/, double /*value*/, double /*date*/){ THROW_IMPOSSIBLE; /* This model does not implement parallel tasks */ } -ActionPtr WorkstationCLM03::execute(double size) { +ActionPtr HostCLM03::execute(double size) { return p_cpu->execute(size); } -ActionPtr WorkstationCLM03::sleep(double duration) { +ActionPtr HostCLM03::sleep(double duration) { return p_cpu->sleep(duration); } -e_surf_resource_state_t WorkstationCLM03::getState() { +e_surf_resource_state_t HostCLM03::getState() { return p_cpu->getState(); }