From 09809f0ec0f4e452ce695c2871f2b5121c5ad949 Mon Sep 17 00:00:00 2001 From: Frederic Suter Date: Wed, 24 Feb 2016 12:07:08 +0100 Subject: [PATCH] make surf tesh test something --- teshsuite/surf/lmm_usage/lmm_usage.c | 228 +++++--------------- teshsuite/surf/surf_usage/surf_usage.cpp | 81 +++---- teshsuite/surf/surf_usage/surf_usage.tesh | 52 +++++ teshsuite/surf/surf_usage/surf_usage2.cpp | 65 ++---- teshsuite/surf/trace_usage/trace_usage.cpp | 23 +- teshsuite/surf/trace_usage/trace_usage.tesh | 60 ++++++ 6 files changed, 226 insertions(+), 283 deletions(-) diff --git a/teshsuite/surf/lmm_usage/lmm_usage.c b/teshsuite/surf/lmm_usage/lmm_usage.c index 9868e4e32e..c1b0bdc85c 100644 --- a/teshsuite/surf/lmm_usage/lmm_usage.c +++ b/teshsuite/surf/lmm_usage/lmm_usage.c @@ -12,17 +12,14 @@ #include "xbt/module.h" #include -XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, - "Messages specific for surf example"); +XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, "Messages specific for surf example"); #define PRINT_VAR(var) XBT_DEBUG(#var " = %g",lmm_variable_getvalue(var)); #define SHOW_EXPR(expr) XBT_DEBUG(#expr " = %g",expr); -/* */ /* ______ */ /* ==l1== L2 ==L3== */ /* ------ */ -/* */ typedef enum { MAXMIN, @@ -30,16 +27,12 @@ typedef enum { LAGRANGE_VEGAS } method_t; -static double dichotomy(double func(double), double min, double max, - double min_error) +static double dichotomy(double func(double), double min, double max, double min_error) { - double middle; - double min_func, max_func, middle_func; - double overall_error = 2 * min_error; - min_func = func(min); - max_func = func(max); + double min_func = func(min); + double max_func = func(max); if ((min_func > 0 && max_func > 0)) return min - 1.0; @@ -52,21 +45,20 @@ static double dichotomy(double func(double), double min, double max, while (overall_error > min_error) { SHOW_EXPR(overall_error); - if ((min_func > 0 && max_func > 0) || - (min_func < 0 && max_func < 0) || (min_func > 0 && max_func < 0)) { + if ((min_func > 0 && max_func > 0) || (min_func < 0 && max_func < 0) || (min_func > 0 && max_func < 0)) { abort(); - } + } //TODO replace by xbt_assert SHOW_EXPR(min); SHOW_EXPR(min_func); SHOW_EXPR(max); SHOW_EXPR(max_func); - middle = (max + min) / 2.0; + double middle = (max + min) / 2.0; if ((min == middle) || (max == middle)) { break; } - middle_func = func(middle); + double middle_func = func(middle); SHOW_EXPR(middle); SHOW_EXPR(middle_func); @@ -89,11 +81,8 @@ double a_test_1 = 0; double b_test_1 = 0; static double diff_lagrange_test_1(double x) { - return -(3 / (1 + 3 * x * x / 2) - - 3 / (2 * (3 * (a_test_1 - x) * (a_test_1 - x) / 2 + 1)) + - 3 / (2 * - (3 * (b_test_1 - a_test_1 + x) * - (b_test_1 - a_test_1 + x) / 2 + 1))); + return -(3 / (1 + 3 * x * x / 2) - 3 / (2 * (3 * (a_test_1 - x) * (a_test_1 - x) / 2 + 1)) + + 3 / (2 * (3 * (b_test_1 - a_test_1 + x) * (b_test_1 - a_test_1 + x) / 2 + 1))); } void test1(method_t method); @@ -112,11 +101,9 @@ void test1(method_t method) double a = 1.0, b = 10.0; if (method == LAGRANGE_VEGAS) - lmm_set_default_protocol_function(func_vegas_f, func_vegas_fp, - func_vegas_fpi); + lmm_set_default_protocol_function(func_vegas_f, func_vegas_fp, func_vegas_fpi); else if (method == LAGRANGE_RENO) - lmm_set_default_protocol_function(func_reno_f, func_reno_fpi, - func_reno_fpi); + lmm_set_default_protocol_function(func_reno_f, func_reno_fpi, func_reno_fpi); Sys = lmm_system_new(1); L1 = lmm_constraint_new(Sys, (void *) "L1", a); @@ -138,17 +125,13 @@ void test1(method_t method) lmm_expand(Sys, L3, R_1_2_3, 1.0); lmm_expand(Sys, L1, R_1, 1.0); - lmm_expand(Sys, L2, R_2, 1.0); - lmm_expand(Sys, L3, R_3, 1.0); - if (method == MAXMIN) { lmm_solve(Sys); } else if (method == LAGRANGE_VEGAS) { - double x = 3 * a / 4 - 3 * b / 8 + - sqrt(9 * b * b + 4 * a * a - 4 * a * b) / 8; + double x = 3 * a / 4 - 3 * b / 8 + sqrt(9 * b * b + 4 * a * a - 4 * a * b) / 8; /* Computed with mupad and D_f=1.0 */ double max_deviation = 0.0; if (x > a) { @@ -160,26 +143,20 @@ void test1(method_t method) lagrange_solve(Sys); - max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_1) - x)); - max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_3) - x)); - max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_2) - (b - a + x))); - max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x))); + max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_1) - x)); + max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_3) - x)); + max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_2) - (b - a + x))); + max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x))); if (max_deviation > 0.00001) { // Legacy value used in lagrange.c XBT_WARN("Max Deviation from optimal solution : %g", max_deviation); XBT_WARN("Found x = %1.20f", x); - XBT_WARN("Deviation from optimal solution (R_1 = %g): %1.20f", x, - lmm_variable_getvalue(R_1) - x); - XBT_WARN("Deviation from optimal solution (R_2 = %g): %1.20f", - b - a + x, lmm_variable_getvalue(R_2) - (b - a + x)); - XBT_WARN("Deviation from optimal solution (R_3 = %g): %1.20f", x, - lmm_variable_getvalue(R_3) - x); - XBT_WARN("Deviation from optimal solution (R_1_2_3 = %g): %1.20f", - a - x, lmm_variable_getvalue(R_1_2_3) - (a - x)); + XBT_WARN("Deviation from optimal solution (R_1 = %g): %1.20f", x, lmm_variable_getvalue(R_1) - x); + XBT_WARN("Deviation from optimal solution (R_2 = %g): %1.20f", b - a + x, + lmm_variable_getvalue(R_2) - (b - a + x)); + XBT_WARN("Deviation from optimal solution (R_3 = %g): %1.20f", x, lmm_variable_getvalue(R_3) - x); + XBT_WARN("Deviation from optimal solution (R_1_2_3 = %g): %1.20f", a - x, + lmm_variable_getvalue(R_1_2_3) - (a - x)); } } else if (method == LAGRANGE_RENO) { double x; @@ -195,26 +172,20 @@ void test1(method_t method) x = a; lagrange_solve(Sys); - max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_1) - x)); - max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_3) - x)); - max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_2) - (b - a + x))); - max_deviation = - MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x))); + max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_1) - x)); + max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_3) - x)); + max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_2) - (b - a + x))); + max_deviation = MAX(max_deviation, fabs(lmm_variable_getvalue(R_1_2_3) - (a - x))); if (max_deviation > 0.00001) { // Legacy value used in lagrange.c XBT_WARN("Max Deviation from optimal solution : %g", max_deviation); XBT_WARN("Found x = %1.20f", x); - XBT_WARN("Deviation from optimal solution (R_1 = %g): %1.20f", x, - lmm_variable_getvalue(R_1) - x); - XBT_WARN("Deviation from optimal solution (R_2 = %g): %1.20f", - b - a + x, lmm_variable_getvalue(R_2) - (b - a + x)); - XBT_WARN("Deviation from optimal solution (R_3 = %g): %1.20f", x, - lmm_variable_getvalue(R_3) - x); - XBT_WARN("Deviation from optimal solution (R_1_2_3 = %g): %1.20f", - a - x, lmm_variable_getvalue(R_1_2_3) - (a - x)); + XBT_WARN("Deviation from optimal solution (R_1 = %g): %1.20f", x, lmm_variable_getvalue(R_1) - x); + XBT_WARN("Deviation from optimal solution (R_2 = %g): %1.20f", b - a + x, + lmm_variable_getvalue(R_2) - (b - a + x)); + XBT_WARN("Deviation from optimal solution (R_3 = %g): %1.20f", x, lmm_variable_getvalue(R_3) - x); + XBT_WARN("Deviation from optimal solution (R_1_2_3 = %g): %1.20f", a - x, + lmm_variable_getvalue(R_1_2_3) - (a - x)); } } else { xbt_die( "Invalid method"); @@ -242,13 +213,10 @@ void test2(method_t method) lmm_variable_t T1 = NULL; lmm_variable_t T2 = NULL; - if (method == LAGRANGE_VEGAS) - lmm_set_default_protocol_function(func_vegas_f, func_vegas_fp, - func_vegas_fpi); + lmm_set_default_protocol_function(func_vegas_f, func_vegas_fp, func_vegas_fpi); else if (method == LAGRANGE_RENO) - lmm_set_default_protocol_function(func_reno_f, func_reno_fp, - func_reno_fpi); + lmm_set_default_protocol_function(func_reno_f, func_reno_fp, func_reno_fpi); Sys = lmm_system_new(1); CPU1 = lmm_constraint_new(Sys, (void *) "CPU1", 200.0); @@ -260,12 +228,9 @@ void test2(method_t method) lmm_update_variable_weight(Sys, T1, 1.0); lmm_update_variable_weight(Sys, T2, 1.0); - lmm_expand(Sys, CPU1, T1, 1.0); lmm_expand(Sys, CPU2, T2, 1.0); - - if (method == MAXMIN) { lmm_solve(Sys); } else if (method == LAGRANGE_VEGAS) { @@ -284,8 +249,6 @@ void test2(method_t method) lmm_system_free(Sys); } - - void test3(method_t method); void test3(method_t method) { @@ -303,11 +266,8 @@ void test3(method_t method) char **tmp_name; - /*array to add the the constraints of fictiv variables */ - double B[15] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - - 1, 1, 1, 1, 1 - }; + /*array to add the the constraints of fictitious variables */ + double B[15] = { 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1, 1, 1, 1, 1 }; A = xbt_new0(double *, links + 5); @@ -322,113 +282,48 @@ void test3(method_t method) } } - /*matrix that store the constraints/topollogy */ - /*double A[15][16]= - {{0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0}, - {0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, - {0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, - {1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - {1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - {1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0}, - {0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0}, - {0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0}, - - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0}, - {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1} - }; */ - - A[0][1] = 1.0; - A[0][7] = 1.0; - - A[1][1] = 1.0; - A[1][7] = 1.0; - A[1][8] = 1.0; - - A[2][1] = 1.0; - A[2][8] = 1.0; - - A[2][1] = 1.0; - A[2][8] = 1.0; - - A[3][8] = 1.0; - - A[4][0] = 1.0; - A[4][3] = 1.0; - A[4][9] = 1.0; - - A[5][0] = 1.0; - A[5][3] = 1.0; - A[5][4] = 1.0; - A[5][9] = 1.0; - - A[6][0] = 1.0; - A[6][4] = 1.0; - A[6][9] = 1.0; - A[6][10] = 1.0; - - A[7][2] = 1.0; - A[7][4] = 1.0; - A[7][6] = 1.0; - A[7][9] = 1.0; - A[7][10] = 1.0; - - A[8][2] = 1.0; - A[8][10] = 1.0; - - A[9][5] = 1.0; - A[9][6] = 1.0; - A[9][9] = 1.0; - - - A[10][11] = 1.0; - A[11][12] = 1.0; - A[12][13] = 1.0; - A[13][14] = 1.0; - A[14][15] = 1.0; - + /*matrix that store the constraints/topology */ + A[0][1] = A[0][7] = 1.0; + A[1][1] = A[1][7] = A[1][8] = 1.0; + A[2][1] = A[2][8] = 1.0; + A[3][8] = 1.0; + A[4][0] = A[4][3] = A[4][9] = 1.0; + A[5][0] = A[5][3] = A[5][4] = A[5][9] = 1.0; + A[6][0] = A[6][4] = A[6][9] = A[6][10] = 1.0; + A[7][2] = A[7][4] = A[7][6] = A[7][9] = A[7][10] = 1.0; + A[8][2] = A[8][10] = 1.0; + A[9][5] = A[9][6] = A[9][9] = 1.0; + A[10][11] = 1.0; + A[11][12] = 1.0; + A[12][13] = 1.0; + A[13][14] = 1.0; + A[14][15] = 1.0; if (method == LAGRANGE_VEGAS) - lmm_set_default_protocol_function(func_vegas_f, func_vegas_fp, - func_vegas_fpi); + lmm_set_default_protocol_function(func_vegas_f, func_vegas_fp, func_vegas_fpi); else if (method == LAGRANGE_RENO) - lmm_set_default_protocol_function(func_reno_f, func_reno_fp, - func_reno_fpi); + lmm_set_default_protocol_function(func_reno_f, func_reno_fp, func_reno_fpi); Sys = lmm_system_new(1); - - tmp_name = xbt_new0(char *, 31); - /* - * Creates the constraints - */ + /* Creates the constraints */ tmp_cnst = xbt_new0(lmm_constraint_t, 15); for (i = 0; i < 15; i++) { tmp_name[i] = bprintf("C_%03d", i); tmp_cnst[i] = lmm_constraint_new(Sys, (void *) tmp_name[i], B[i]); } - - /* - * Creates the variables - */ + /* Creates the variables */ tmp_var = xbt_new0(lmm_variable_t, 16); for (j = 0; j < 16; j++) { tmp_name[i + j] = bprintf("X_%03d", j); - tmp_var[j] = - lmm_variable_new(Sys, (void *) tmp_name[i + j], 1.0, -1.0, 15); + tmp_var[j] = lmm_variable_new(Sys, (void *) tmp_name[i + j], 1.0, -1.0, 15); lmm_update_variable_weight(Sys, tmp_var[j], 1.0); } - /* - * Link constraints and variables - */ + /* Link constraints and variables */ for (i = 0; i < 15; i++) { for (j = 0; j < 16; j++) { if (A[i][j]) { @@ -437,8 +332,6 @@ void test3(method_t method) } } - - if (method == MAXMIN) { lmm_solve(Sys); } else if (method == LAGRANGE_VEGAS) { @@ -477,8 +370,6 @@ int main(int argc, char **argv) XBT_INFO("***** Test 1 (Lagrange - Reno)"); test1(LAGRANGE_RENO); - - XBT_INFO("***** Test 2 (Max-Min)"); test2(MAXMIN); XBT_INFO("***** Test 2 (Lagrange - Vegas)"); @@ -486,7 +377,6 @@ int main(int argc, char **argv) XBT_INFO("***** Test 2 (Lagrange - Reno)"); test2(LAGRANGE_RENO); - XBT_INFO("***** Test 3 (Max-Min)"); test3(MAXMIN); XBT_INFO("***** Test 3 (Lagrange - Vegas)"); diff --git a/teshsuite/surf/surf_usage/surf_usage.cpp b/teshsuite/surf/surf_usage/surf_usage.cpp index c05e66ba92..a012ff1746 100644 --- a/teshsuite/surf/surf_usage/surf_usage.cpp +++ b/teshsuite/surf/surf_usage/surf_usage.cpp @@ -35,95 +35,76 @@ const char *string_action(e_surf_action_state_t state) } } -void test(char *platform); -void test(char *platform) +int main(int argc, char **argv) { - sg_host_t hostA = NULL; - sg_host_t hostB = NULL; - surf_action_t actionA = NULL; - surf_action_t actionB = NULL; - surf_action_t actionC = NULL; - e_surf_action_state_t stateActionA; - e_surf_action_state_t stateActionB; - e_surf_action_state_t stateActionC; double now = -1.0; + surf_init(&argc, argv); /* Initialize some common structures */ xbt_cfg_set_parse(_sg_cfg_set, "cpu/model:Cas01"); xbt_cfg_set_parse(_sg_cfg_set, "network/model:CM02"); - parse_platform_file(platform); - /*********************** CPU ***********************************/ - XBT_DEBUG("%p", surf_cpu_model_pm); - hostA = sg_host_by_name("Cpu A"); - hostB = sg_host_by_name("Cpu B"); + xbt_assert(argc >1, "Usage : %s platform.txt\n", argv[0]); + parse_platform_file(argv[1]); + + XBT_DEBUG("CPU model: %p", surf_cpu_model_pm); + XBT_DEBUG("Network model: %p", surf_network_model); + sg_host_t hostA = sg_host_by_name("Cpu A"); + sg_host_t hostB = sg_host_by_name("Cpu B"); /* Let's check that those two processors exist */ XBT_DEBUG("%s : %p", sg_host_get_name(hostA), hostA); XBT_DEBUG("%s : %p", sg_host_get_name(hostB), hostB); /* Let's do something on it */ - actionA = hostA->pimpl_cpu->execution_start(1000.0); - actionB = hostB->pimpl_cpu->execution_start(1000.0); - actionC = surf_host_sleep(hostB, 7.32); + surf_action_t actionA = hostA->pimpl_cpu->execution_start(1000.0); + surf_action_t actionB = hostB->pimpl_cpu->execution_start(1000.0); + surf_action_t actionC = surf_host_sleep(hostB, 7.32); /* Use whatever calling style you want... */ - stateActionA = actionA->getState(); /* When you know actionA model type */ - stateActionB = actionB->getState(); /* If you're unsure about it's model type */ - stateActionC = actionC->getState(); /* When you know actionA model type */ + e_surf_action_state_t stateActionA = actionA->getState(); /* When you know actionA model type */ + e_surf_action_state_t stateActionB = actionB->getState(); /* If you're unsure about it's model type */ + e_surf_action_state_t stateActionC = actionC->getState(); /* When you know actionA model type */ /* And just look at the state of these tasks */ - XBT_DEBUG("actionA : %p (%s)", actionA, string_action(stateActionA)); - XBT_DEBUG("actionB : %p (%s)", actionB, string_action(stateActionB)); - XBT_DEBUG("actionC : %p (%s)", actionB, string_action(stateActionC)); + XBT_INFO("actionA state: %s", string_action(stateActionA)); + XBT_INFO("actionB state: %s", string_action(stateActionB)); + XBT_INFO("actionC state: %s", string_action(stateActionC)); - /*********************** Network *******************************/ - XBT_DEBUG("%p", surf_network_model); /* Let's do something on it */ surf_network_model_communicate(surf_network_model, hostA, hostB, 150.0, -1.0); - surf_solve(-1.0); /* Takes traces into account. Returns 0.0 */ + surf_solve(-1.0); do { surf_action_t action = NULL; now = surf_get_clock(); - XBT_DEBUG("Next Event : %g", now); + XBT_INFO("Next Event : %g", now); XBT_DEBUG("\t CPU actions"); - while ((action = - surf_model_extract_failed_action_set((surf_model_t)surf_cpu_model_pm))) { - XBT_DEBUG("\t * Failed : %p", action); - action->unref(); + while ((action = surf_model_extract_failed_action_set((surf_model_t)surf_cpu_model_pm))) { + XBT_INFO(" CPU Failed action"); + XBT_DEBUG("\t * Failed : %p", action); + action->unref(); } - while ((action = - surf_model_extract_done_action_set((surf_model_t)surf_cpu_model_pm))) { + while ((action = surf_model_extract_done_action_set((surf_model_t)surf_cpu_model_pm))) { + XBT_INFO(" CPU Done action"); XBT_DEBUG("\t * Done : %p", action); action->unref(); } XBT_DEBUG("\t Network actions"); - while ((action = - surf_model_extract_failed_action_set((surf_model_t)surf_network_model))) { + while ((action = surf_model_extract_failed_action_set((surf_model_t)surf_network_model))) { + XBT_INFO(" Network Failed action"); XBT_DEBUG("\t * Failed : %p", action); action->unref(); } - while ((action = - surf_model_extract_done_action_set((surf_model_t)surf_network_model))) { + while ((action = surf_model_extract_done_action_set((surf_model_t)surf_network_model))) { + XBT_INFO(" Network Failed action"); XBT_DEBUG("\t * Done : %p", action); action->unref(); } } while ((surf_model_running_action_set_size((surf_model_t)surf_network_model) || - surf_model_running_action_set_size((surf_model_t)surf_cpu_model_pm)) && - surf_solve(-1.0) >= 0.0); + surf_model_running_action_set_size((surf_model_t)surf_cpu_model_pm)) && surf_solve(-1.0) >= 0.0); XBT_DEBUG("Simulation Terminated"); -} - -int main(int argc, char **argv) -{ - surf_init(&argc, argv); /* Initialize some common structures */ - if (argc == 1) { - fprintf(stderr, "Usage : %s platform.xml\n", argv[0]); - return 1; - } - test(argv[1]); surf_exit(); return 0; diff --git a/teshsuite/surf/surf_usage/surf_usage.tesh b/teshsuite/surf/surf_usage/surf_usage.tesh index e380a3c8f9..c51400e2bd 100644 --- a/teshsuite/surf/surf_usage/surf_usage.tesh +++ b/teshsuite/surf/surf_usage/surf_usage.tesh @@ -3,7 +3,59 @@ $ $SG_TEST_EXENV ${bindir:=.}/surf_usage ../../examples/platforms/two_hosts_platform_with_availability.xml > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'cpu/model' to 'Cas01' > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'CM02' +> [0.000000] [surf_test/INFO] actionA state: SURF_ACTION_RUNNING +> [0.000000] [surf_test/INFO] actionB state: SURF_ACTION_RUNNING +> [0.000000] [surf_test/INFO] actionC state: SURF_ACTION_RUNNING +> [0.000000] [surf_test/INFO] Next Event : 0 +> [0.000000] [surf_test/INFO] CPU Failed action +> [0.200000] [surf_test/INFO] Next Event : 0.2 +> [0.200015] [surf_test/INFO] Next Event : 0.200015 +> [0.200015] [surf_test/INFO] Network Failed action +> [7.320000] [surf_test/INFO] Next Event : 7.32 +> [7.320000] [surf_test/INFO] CPU Done action +> [10.000000] [surf_test/INFO] Next Event : 10 +> [20.000000] [surf_test/INFO] Next Event : 20 +> [30.000000] [surf_test/INFO] Next Event : 30 +> [40.000000] [surf_test/INFO] Next Event : 40 +> [50.000000] [surf_test/INFO] Next Event : 50 +> [60.000000] [surf_test/INFO] Next Event : 60 +> [70.000000] [surf_test/INFO] Next Event : 70 +> [80.000000] [surf_test/INFO] Next Event : 80 +> [90.000000] [surf_test/INFO] Next Event : 90 +> [100.000000] [surf_test/INFO] Next Event : 100 +> [110.000000] [surf_test/INFO] Next Event : 110 +> [120.000000] [surf_test/INFO] Next Event : 120 +> [130.000000] [surf_test/INFO] Next Event : 130 +> [140.000000] [surf_test/INFO] Next Event : 140 +> [150.000000] [surf_test/INFO] Next Event : 150 +> [157.500000] [surf_test/INFO] Next Event : 157.5 +> [157.500000] [surf_test/INFO] CPU Done action $ $SG_TEST_EXENV ${bindir:=.}/surf_usage2 ../../examples/platforms/two_hosts_platform_with_availability.xml > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'network/model' to 'CM02' > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'cpu/model' to 'Cas01' +> [0.000000] [surf_test/INFO] Next Event : 0 +> [0.000000] [surf_test/INFO] * Done Action +> [0.200000] [surf_test/INFO] Next Event : 0.2 +> [0.200015] [surf_test/INFO] Next Event : 0.200015 +> [0.200015] [surf_test/INFO] * Done Action +> [7.320000] [surf_test/INFO] Next Event : 7.32 +> [7.320000] [surf_test/INFO] * Done Action +> [10.000000] [surf_test/INFO] Next Event : 10 +> [20.000000] [surf_test/INFO] Next Event : 20 +> [30.000000] [surf_test/INFO] Next Event : 30 +> [40.000000] [surf_test/INFO] Next Event : 40 +> [50.000000] [surf_test/INFO] Next Event : 50 +> [60.000000] [surf_test/INFO] Next Event : 60 +> [70.000000] [surf_test/INFO] Next Event : 70 +> [80.000000] [surf_test/INFO] Next Event : 80 +> [90.000000] [surf_test/INFO] Next Event : 90 +> [100.000000] [surf_test/INFO] Next Event : 100 +> [110.000000] [surf_test/INFO] Next Event : 110 +> [120.000000] [surf_test/INFO] Next Event : 120 +> [130.000000] [surf_test/INFO] Next Event : 130 +> [140.000000] [surf_test/INFO] Next Event : 140 +> [150.000000] [surf_test/INFO] Next Event : 150 +> [157.500000] [surf_test/INFO] Next Event : 157.5 +> [157.500000] [surf_test/INFO] * Done Action +> [157.500000] [surf_test/INFO] Simulation Terminated diff --git a/teshsuite/surf/surf_usage/surf_usage2.cpp b/teshsuite/surf/surf_usage/surf_usage2.cpp index 3230aa2cbd..7480397b93 100644 --- a/teshsuite/surf/surf_usage/surf_usage2.cpp +++ b/teshsuite/surf/surf_usage/surf_usage2.cpp @@ -6,47 +6,28 @@ /* 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 #include "simgrid/sg_config.h" #include "surf/surf.h" #include "src/surf/surf_interface.hpp" #include "src/surf/cpu_interface.hpp" #include "xbt/log.h" -XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, - "Messages specific for surf example"); +XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, "Messages specific for surf example"); -const char *string_action(e_surf_action_state_t state); -const char *string_action(e_surf_action_state_t state) -{ - switch (state) { - case (SURF_ACTION_READY): - return "SURF_ACTION_READY"; - case (SURF_ACTION_RUNNING): - return "SURF_ACTION_RUNNING"; - case (SURF_ACTION_FAILED): - return "SURF_ACTION_FAILED"; - case (SURF_ACTION_DONE): - return "SURF_ACTION_DONE"; - case (SURF_ACTION_NOT_IN_THE_SYSTEM): - return "SURF_ACTION_NOT_IN_THE_SYSTEM"; - default: - return "INVALID STATE"; - } -} - - -void test(char *platform); -void test(char *platform) +int main(int argc, char **argv) { sg_host_t hostA = NULL; sg_host_t hostB = NULL; double now = -1.0; int running; + surf_init(&argc, argv); /* Initialize some common structures */ + xbt_cfg_set_parse(_sg_cfg_set, "network/model:CM02"); xbt_cfg_set_parse(_sg_cfg_set, "cpu/model:Cas01"); - parse_platform_file(platform); + + xbt_assert(argc >1, "Usage : %s platform.txt\n", argv[0]); + parse_platform_file(argv[1]); /*********************** HOST ***********************************/ hostA = sg_host_by_name("Cpu A"); @@ -71,39 +52,27 @@ void test(char *platform) running = 0; now = surf_get_clock(); - XBT_DEBUG("Next Event : %g", now); + XBT_INFO("Next Event : %g", now); xbt_dynar_foreach(all_existing_models, iter, model) { - XBT_DEBUG("\t Actions"); + if (surf_model_running_action_set_size((surf_model_t)model)) { + XBT_DEBUG("\t Running that model"); + running = 1; + } while ((action = surf_model_extract_failed_action_set((surf_model_t)model))) { - XBT_DEBUG("\t * Failed : %p", action); + XBT_INFO(" * Done Action"); + XBT_DEBUG("\t * Failed Action: %p", action); action->unref(); } while ((action = surf_model_extract_done_action_set((surf_model_t)model))) { - XBT_DEBUG("\t * Done : %p", action); + XBT_INFO(" * Done Action"); + XBT_DEBUG("\t * Done Action: %p", action); action->unref(); } - if (surf_model_running_action_set_size((surf_model_t)model)) { - XBT_DEBUG("running that model"); - running = 1; - } } } while (running && surf_solve(-1.0) >= 0.0); - XBT_DEBUG("Simulation Terminated"); - -} - -int main(int argc, char **argv) -{ - surf_init(&argc, argv); /* Initialize some common structures */ - if (argc == 1) { - fprintf(stderr, "Usage : %s platform.txt\n", argv[0]); - surf_exit(); - return 1; - } - test(argv[1]); - + XBT_INFO("Simulation Terminated"); surf_exit(); return 0; } diff --git a/teshsuite/surf/trace_usage/trace_usage.cpp b/teshsuite/surf/trace_usage/trace_usage.cpp index d6f648c64c..8341c2f5d7 100644 --- a/teshsuite/surf/trace_usage/trace_usage.cpp +++ b/teshsuite/surf/trace_usage/trace_usage.cpp @@ -7,17 +7,11 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "surf/surf.h" - #include "xbt/log.h" - -#include -#include -#include #include "src/surf/network_cm02.hpp" #include "src/surf/trace_mgr.hpp" -XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, - "Messages specific for surf example"); +XBT_LOG_NEW_DEFAULT_CATEGORY(surf_test, "Messages specific for surf example"); class DummyTestResource : public simgrid::surf::Resource { @@ -27,8 +21,10 @@ public: void apply_event(tmgr_trace_iterator_t it, double value) override {} }; -static void test(void) +int main(int argc, char **argv) { + surf_init(&argc, argv); + simgrid::trace_mgr::future_evt_set *fes = new simgrid::trace_mgr::future_evt_set(); tmgr_trace_t trace_A = tmgr_trace_new_from_file("trace_A.txt"); tmgr_trace_t trace_B = tmgr_trace_new_from_file("trace_B.txt"); @@ -42,23 +38,18 @@ static void test(void) fes->add_trace(trace_B, 0.0, hostB); while ((next_event_date = fes->next_date()) != -1.0) { - XBT_DEBUG("%g" " : \n", next_event_date); + XBT_INFO("%g:", next_event_date); while (fes->pop_leq(next_event_date, &value, &resource)) { - XBT_DEBUG("\t %s : " "%g" "\n", resource->getName(), value); + XBT_INFO(" %s: %g", resource->getName(), value); } - if (next_event_date > 1000) + if (next_event_date > 100) break; } delete fes; delete hostA; delete hostB; -} -int main(int argc, char **argv) -{ - surf_init(&argc, argv); - test(); surf_exit(); return 0; } diff --git a/teshsuite/surf/trace_usage/trace_usage.tesh b/teshsuite/surf/trace_usage/trace_usage.tesh index 4a5fed3b47..46ebd6364d 100644 --- a/teshsuite/surf/trace_usage/trace_usage.tesh +++ b/teshsuite/surf/trace_usage/trace_usage.tesh @@ -1,3 +1,63 @@ #! ./tesh $ $SG_TEST_EXENV ${bindir:=.}/trace_usage --cfg=path:../../examples/platforms/trace/ +> [0.000000] [surf_test/INFO] 0: +> [0.000000] [surf_test/INFO] Host B: 1 +> [0.000000] [surf_test/INFO] 1: +> [0.000000] [surf_test/INFO] Host A: 1 +> [0.000000] [surf_test/INFO] 10: +> [0.000000] [surf_test/INFO] Host B: 0.8 +> [0.000000] [surf_test/INFO] 12: +> [0.000000] [surf_test/INFO] Host A: 0.5 +> [0.000000] [surf_test/INFO] 20: +> [0.000000] [surf_test/INFO] Host B: 0.4 +> [0.000000] [surf_test/INFO] 21: +> [0.000000] [surf_test/INFO] Host A: 0.9 +> [0.000000] [surf_test/INFO] 22: +> [0.000000] [surf_test/INFO] Host A: 0.5 +> [0.000000] [surf_test/INFO] 30: +> [0.000000] [surf_test/INFO] Host B: 0.8 +> [0.000000] [surf_test/INFO] 31: +> [0.000000] [surf_test/INFO] Host A: 0.9 +> [0.000000] [surf_test/INFO] 32: +> [0.000000] [surf_test/INFO] Host A: 0.5 +> [0.000000] [surf_test/INFO] 40: +> [0.000000] [surf_test/INFO] Host B: 0.4 +> [0.000000] [surf_test/INFO] 41: +> [0.000000] [surf_test/INFO] Host A: 0.9 +> [0.000000] [surf_test/INFO] 42: +> [0.000000] [surf_test/INFO] Host A: 0.5 +> [0.000000] [surf_test/INFO] 50: +> [0.000000] [surf_test/INFO] Host B: 0.8 +> [0.000000] [surf_test/INFO] 51: +> [0.000000] [surf_test/INFO] Host A: 0.9 +> [0.000000] [surf_test/INFO] 52: +> [0.000000] [surf_test/INFO] Host A: 0.5 +> [0.000000] [surf_test/INFO] 60: +> [0.000000] [surf_test/INFO] Host B: 0.4 +> [0.000000] [surf_test/INFO] 61: +> [0.000000] [surf_test/INFO] Host A: 0.9 +> [0.000000] [surf_test/INFO] 62: +> [0.000000] [surf_test/INFO] Host A: 0.5 +> [0.000000] [surf_test/INFO] 70: +> [0.000000] [surf_test/INFO] Host B: 0.8 +> [0.000000] [surf_test/INFO] 71: +> [0.000000] [surf_test/INFO] Host A: 0.9 +> [0.000000] [surf_test/INFO] 72: +> [0.000000] [surf_test/INFO] Host A: 0.5 +> [0.000000] [surf_test/INFO] 80: +> [0.000000] [surf_test/INFO] Host B: 0.4 +> [0.000000] [surf_test/INFO] 81: +> [0.000000] [surf_test/INFO] Host A: 0.9 +> [0.000000] [surf_test/INFO] 82: +> [0.000000] [surf_test/INFO] Host A: 0.5 +> [0.000000] [surf_test/INFO] 90: +> [0.000000] [surf_test/INFO] Host B: 0.8 +> [0.000000] [surf_test/INFO] 91: +> [0.000000] [surf_test/INFO] Host A: 0.9 +> [0.000000] [surf_test/INFO] 92: +> [0.000000] [surf_test/INFO] Host A: 0.5 +> [0.000000] [surf_test/INFO] 100: +> [0.000000] [surf_test/INFO] Host B: 0.4 +> [0.000000] [surf_test/INFO] 101: +> [0.000000] [surf_test/INFO] Host A: 0.9 -- 2.20.1