- {"Reno",NULL,surf_network_resource_init_Reno},
- {"Vegas",NULL,surf_network_resource_init_Vegas}
- };
-
-int surf_cpu_resource_description_size=1;
-s_surf_resource_description_t surf_cpu_resource_description[]=
- {
- {"Cas01",NULL,surf_cpu_resource_init_Cas01},
- };
-
-int surf_workstation_resource_description_size=3;
-s_surf_resource_description_t surf_workstation_resource_description[]=
- {
- {"CLM03",NULL,surf_workstation_resource_init_CLM03},
- {"KCCFLN05",NULL,surf_workstation_resource_init_KCCFLN05},
- {"compound",NULL,surf_workstation_resource_init_compound}
- };
-
-void update_resource_description(s_surf_resource_description_t *table,
- int table_size,
- const char* name,
- surf_resource_t resource
- )
+ {"Reno",
+ "Model using lagrange_solve instead of lmm_solve (experts only)", NULL,
+ surf_network_model_init_Reno},
+ {"Reno2",
+ "Model using lagrange_solve instead of lmm_solve (experts only)", NULL,
+ surf_network_model_init_Reno2},
+ {"Vegas",
+ "Model using lagrange_solve instead of lmm_solve (experts only)", NULL,
+ surf_network_model_init_Vegas},
+ {NULL, NULL, NULL, NULL} /* this array must be NULL terminated */
+};
+
+s_surf_model_description_t surf_cpu_model_description[] = {
+ {"Cas01_fullupdate", "CPU classical model time=size/power", NULL,
+ surf_cpu_model_init_Cas01},
+ {"Cas01",
+ "Variation of Cas01_fullupdate with partial invalidation optimization of lmm system. Should produce the same values, only faster",
+ NULL, surf_cpu_model_init_Cas01_im},
+ {"CpuTI",
+ "Variation of Cas01 with also trace integration. Should produce the same values, only faster if you use availability traces",
+ NULL, surf_cpu_model_init_ti},
+ {NULL, NULL, NULL, NULL} /* this array must be NULL terminated */
+};
+
+s_surf_model_description_t surf_workstation_model_description[] = {
+ {"CLM03",
+ "Default workstation model, using LV08 and CM02 as network and CPU",
+ NULL, surf_workstation_model_init_CLM03, create_workstations},
+ {"compound",
+ "Workstation model allowing you to use other network and CPU models",
+ NULL, surf_workstation_model_init_compound, create_workstations},
+ {"ptask_L07", "Workstation model with better parallel task modeling",
+ NULL, surf_workstation_model_init_ptask_L07, NULL},
+ {NULL, NULL, NULL, NULL} /* this array must be NULL terminated */
+};
+
+void update_model_description(s_surf_model_description_t * table,
+ const char *name, surf_model_t model)
+{
+ int i = find_model_description(table, name);
+ table[i].model = model;
+}
+
+/** Displays the long description of all registered models, and quit */
+void model_help(const char *category, s_surf_model_description_t * table)