X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f4200e5d5322e9e2fef74725fb43c605876212d8..70595966d0d7225d1406acf94e1ebb3a8b9b4357:/examples/msg/app-pmm/app-pmm.c diff --git a/examples/msg/app-pmm/app-pmm.c b/examples/msg/app-pmm/app-pmm.c index d6ee681457..dd5e22af34 100644 --- a/examples/msg/app-pmm/app-pmm.c +++ b/examples/msg/app-pmm/app-pmm.c @@ -54,7 +54,9 @@ int node(int argc, char **argv) { char my_mbox[MAILBOX_NAME_SIZE]; node_job_t myjob, jobs[GRID_NUM_NODES]; - xbt_matrix_t A, B, C, sA, sB, sC; + xbt_matrix_t A = NULL; + xbt_matrix_t B = NULL; + xbt_matrix_t C = NULL; result_t result; xbt_assert(argc != 1, "Wrong number of arguments for this node"); @@ -62,9 +64,9 @@ int node(int argc, char **argv) /* Initialize the node's data-structures */ int myid = xbt_str_parse_int(argv[1], "Invalid ID received as first node parameter: %s"); snprintf(my_mbox, MAILBOX_NAME_SIZE - 1, "%d", myid); - sC = xbt_matrix_double_new_zeros(NODE_MATRIX_SIZE, NODE_MATRIX_SIZE); + xbt_matrix_t sC = xbt_matrix_double_new_zeros(NODE_MATRIX_SIZE, NODE_MATRIX_SIZE); - if(myid == 0){ + if (myid == 0){ /* Create the matrices to multiply and one to store the result */ A = xbt_matrix_double_new_id(MATRIX_SIZE, MATRIX_SIZE); B = xbt_matrix_double_new_seq(MATRIX_SIZE, MATRIX_SIZE); @@ -80,13 +82,15 @@ int node(int argc, char **argv) broadcast_jobs(jobs + 1); } else { - A = B = C = NULL; /* Avoid warning at compilation */ myjob = wait_job(myid); } /* Multiplication main-loop */ XBT_VERB("Start Multiplication's Main-loop"); for (int k=0; k < GRID_SIZE; k++){ + xbt_matrix_t sA; + xbt_matrix_t sB; + if(k == myjob->col){ XBT_VERB("Broadcast sA(%d,%d) to row %d", myjob->row, k, myjob->row); broadcast_matrix(myjob->A, NEIGHBOURS_COUNT, myjob->nodes_in_row); @@ -239,7 +243,10 @@ int main(int argc, char *argv[]) xbt_os_timer_t timer = xbt_os_timer_new(); MSG_init(&argc, argv); - MSG_create_environment(argv[1]); + const char *platform = "../../platforms/cluster.xml"; + if (argc > 1) + platform = argv[1]; + MSG_create_environment(platform); MSG_function_register("node", node); for(int i = 0 ; i< 9; i++) { @@ -255,14 +262,15 @@ int main(int argc, char *argv[]) xbt_os_cputimer_start(timer); msg_error_t res = MSG_main(); xbt_os_cputimer_stop(timer); - XBT_CRITICAL("Simulated time: %g", MSG_get_clock()); + XBT_INFO("Simulated time: %g", MSG_get_clock()); return res != MSG_OK; } static void create_jobs(xbt_matrix_t A, xbt_matrix_t B, node_job_t *jobs) { - int row = 0, col = 0; + int row = 0; + int col = 0; for (int node = 0; node < GRID_NUM_NODES; node++){ XBT_VERB("Create job %d", node);