void surf_config_models_setup(const char *platform_file) { char *workstation_model_name; int workstation_id = -1; char *network_model_name = NULL; char *cpu_model_name = NULL; workstation_model_name = xbt_cfg_get_string(_surf_cfg_set, "workstation/model"); network_model_name = xbt_cfg_get_string(_surf_cfg_set, "network/model"); cpu_model_name = xbt_cfg_get_string(_surf_cfg_set, "cpu/model"); /* Check whether we use a net/cpu model differing from the default ones, in which case * we should switch to the "compound" workstation model to correctly dispatch stuff to * the right net/cpu models. */ if ((strcmp(network_model_name, "LV08") || strcmp(cpu_model_name, "Cas01")) && !strcmp(workstation_model_name, "CLM03")) { const char *val = "compound"; XBT_INFO ("Switching workstation model to compound since you changed the network and/or cpu model(s)"); xbt_cfg_set_string(_surf_cfg_set, "workstation/model", val); workstation_model_name = (char *) "compound"; } XBT_DEBUG("Workstation model: %s", workstation_model_name); workstation_id = find_model_description(surf_workstation_model_description, workstation_model_name); if (!strcmp(workstation_model_name, "compound")) { int network_id = -1; int cpu_id = -1; xbt_assert(cpu_model_name, "Set a cpu model to use with the 'compound' workstation model"); xbt_assert(network_model_name, "Set a network model to use with the 'compound' workstation model"); network_id = find_model_description(surf_network_model_description, network_model_name); cpu_id = find_model_description(surf_cpu_model_description, cpu_model_name); surf_cpu_model_description[cpu_id].model_init_preparse(platform_file); surf_network_model_description[network_id].model_init_preparse (platform_file); } XBT_DEBUG("Call workstation_model_init"); surf_workstation_model_description[workstation_id].model_init_preparse (platform_file); }
/* Pick the right models for CPU, net and host, and call their model_init_preparse */ void surf_config_models_setup() { const char *host_model_name; const char *vm_model_name; int host_id = -1; int vm_id = -1; char *network_model_name = NULL; char *cpu_model_name = NULL; int storage_id = -1; char *storage_model_name = NULL; host_model_name = xbt_cfg_get_string(_sg_cfg_set, "host/model"); vm_model_name = xbt_cfg_get_string(_sg_cfg_set, "vm/model"); network_model_name = xbt_cfg_get_string(_sg_cfg_set, "network/model"); cpu_model_name = xbt_cfg_get_string(_sg_cfg_set, "cpu/model"); storage_model_name = xbt_cfg_get_string(_sg_cfg_set, "storage/model"); /* Check whether we use a net/cpu model differing from the default ones, in which case * we should switch to the "compound" host model to correctly dispatch stuff to * the right net/cpu models. */ if ((!xbt_cfg_is_default_value(_sg_cfg_set, "network/model") || !xbt_cfg_is_default_value(_sg_cfg_set, "cpu/model")) && xbt_cfg_is_default_value(_sg_cfg_set, "host/model")) { host_model_name = "compound"; xbt_cfg_set_string(_sg_cfg_set, "host/model", host_model_name); } XBT_DEBUG("host model: %s", host_model_name); host_id = find_model_description(surf_host_model_description, host_model_name); if (!strcmp(host_model_name, "compound")) { int network_id = -1; int cpu_id = -1; xbt_assert(cpu_model_name, "Set a cpu model to use with the 'compound' host model"); xbt_assert(network_model_name, "Set a network model to use with the 'compound' host model"); if(surf_cpu_model_init_preparse){ surf_cpu_model_init_preparse(); } else { cpu_id = find_model_description(surf_cpu_model_description, cpu_model_name); surf_cpu_model_description[cpu_id].model_init_preparse(); } network_id = find_model_description(surf_network_model_description, network_model_name); surf_network_model_description[network_id].model_init_preparse(); } XBT_DEBUG("Call host_model_init"); surf_host_model_description[host_id].model_init_preparse(); XBT_DEBUG("Call vm_model_init"); vm_id = find_model_description(surf_vm_model_description, vm_model_name); surf_vm_model_description[vm_id].model_init_preparse(); XBT_DEBUG("Call storage_model_init"); storage_id = find_model_description(surf_storage_model_description, storage_model_name); surf_storage_model_description[storage_id].model_init_preparse(); }
/* Pick the right models for CPU, net and workstation, and call their model_init_preparse */ void surf_config_models_setup() { char *workstation_model_name; int workstation_id = -1; char *network_model_name = NULL; char *cpu_model_name = NULL; int storage_id = -1; char *storage_model_name = NULL; workstation_model_name = xbt_cfg_get_string(_sg_cfg_set, "workstation/model"); network_model_name = xbt_cfg_get_string(_sg_cfg_set, "network/model"); cpu_model_name = xbt_cfg_get_string(_sg_cfg_set, "cpu/model"); storage_model_name = xbt_cfg_get_string(_sg_cfg_set, "storage/model"); /* Check whether we use a net/cpu model differing from the default ones, in which case * we should switch to the "compound" workstation model to correctly dispatch stuff to * the right net/cpu models. */ if((!xbt_cfg_is_default_value(_sg_cfg_set, "network/model") || !xbt_cfg_is_default_value(_sg_cfg_set, "cpu/model")) && xbt_cfg_is_default_value(_sg_cfg_set, "workstation/model")) { const char *val = "compound"; XBT_INFO ("Switching workstation model to compound since you changed the network and/or cpu model(s)"); xbt_cfg_set_string(_sg_cfg_set, "workstation/model", val); workstation_model_name = (char *) "compound"; } XBT_DEBUG("Workstation model: %s", workstation_model_name); workstation_id = find_model_description(surf_workstation_model_description, workstation_model_name); if (!strcmp(workstation_model_name, "compound")) { int network_id = -1; int cpu_id = -1; xbt_assert(cpu_model_name, "Set a cpu model to use with the 'compound' workstation model"); xbt_assert(network_model_name, "Set a network model to use with the 'compound' workstation model"); network_id = find_model_description(surf_network_model_description, network_model_name); cpu_id = find_model_description(surf_cpu_model_description, cpu_model_name); surf_cpu_model_description[cpu_id].model_init_preparse(); surf_network_model_description[network_id].model_init_preparse(); } XBT_DEBUG("Call workstation_model_init"); surf_workstation_model_description[workstation_id].model_init_preparse(); XBT_DEBUG("Call storage_model_init"); storage_id = find_model_description(surf_storage_model_description, storage_model_name); surf_storage_model_description[storage_id].model_init_preparse(); /* ********************************************************************* */ /* TUTORIAL: New model */ int new_model_id = -1; char *new_model_name = NULL; new_model_name = xbt_cfg_get_string(_sg_cfg_set, "new_model/model"); XBT_DEBUG("Call new model_init"); new_model_id = find_model_description(surf_new_model_description, new_model_name); surf_new_model_description[new_model_id].model_init_preparse(); /* ********************************************************************* */ }