+/* Don't forget to update the option description in smx_config when you change this */
+s_surf_model_description_t surf_network_model_description[] = {
+ {"Constant",
+ "Simplistic network model where all communication take a constant time (one second)",
+ surf_network_model_init_Constant},
+ {"CM02",
+ "Realistic network model with lmm_solve and no correction factors",
+ surf_network_model_init_CM02},
+ {"LV08",
+ "Realistic network model with lmm_solve, adequate correction factors (latency*=10.4, bandwidth*=.92, S=8775) and partial invalidation optimization",
+ im_surf_network_model_init_LegrandVelho},
+ {"LV08_fullupdate",
+ "Realistic network model wit lmm_solve, adequate correction factors (latency*=10.4, bandwidth*=.92, S=8775) but no further optimization. Should produce the same results as LV08, only slower.",
+ surf_network_model_init_LegrandVelho},
+ {"SMPI",
+ "Realistic network model with lmm_solve and correction factors on three intervals (< 1KiB, < 64 KiB, >= 64 KiB)",
+ surf_network_model_init_SMPI},
+#ifdef HAVE_GTNETS
+ {"GTNets",
+ "Network Pseudo-model using the GTNets simulator instead of an analytic model",
+ surf_network_model_init_GTNETS},
+#endif
+#ifdef HAVE_NS3
+ {"NS3",
+ "Use NS3 tcp model",
+ surf_network_model_init_NS3},
+#endif
+ {"Reno",
+ "Model using lagrange_solve instead of lmm_solve (experts only)",
+ surf_network_model_init_Reno},
+ {"Reno2",
+ "Model using lagrange_solve instead of lmm_solve (experts only)",
+ surf_network_model_init_Reno2},
+ {"Vegas",
+ "Model using lagrange_solve instead of lmm_solve (experts only)",
+ surf_network_model_init_Vegas},
+ {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",
+ surf_cpu_model_init_Cas01},
+ {"Cas01",
+ "Variation of Cas01_fullupdate with partial invalidation optimization of lmm system. Should produce the same values, only faster",
+ 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",
+ surf_cpu_model_init_ti},
+ {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",
+ surf_workstation_model_init_CLM03},
+ {"compound",
+ "Workstation model allowing you to use other network and CPU models",
+ surf_workstation_model_init_compound},
+ {"ptask_L07", "Workstation model with better parallel task modeling",
+ surf_workstation_model_init_ptask_L07},
+ {NULL, NULL, NULL} /* this array must be NULL terminated */
+};
+
+/** Displays the long description of all registered models, and quit */
+void model_help(const char *category, s_surf_model_description_t * table)