X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/93425711d72657a979fd9188202ec63a35574fb5..e89f9f044e0a5071de93ec27bfca5993b9c86d1f:/examples/msg/parallel_task/test_ptask.c diff --git a/examples/msg/parallel_task/test_ptask.c b/examples/msg/parallel_task/test_ptask.c index b74a2e2bd2..f4a79a4e24 100644 --- a/examples/msg/parallel_task/test_ptask.c +++ b/examples/msg/parallel_task/test_ptask.c @@ -1,18 +1,24 @@ +/* Copyright (c) 2008, 2009, 2010. The SimGrid Team. + * All rights reserved. */ + +/* 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 "msg/msg.h" /* Yeah! If you want to use msg, you - need to include msg/msg.h */ -#include "xbt/sysdep.h" /* calloc, printf */ +#include "msg/msg.h" /* Yeah! If you want to use msg, you + need to include msg/msg.h */ +#include "xbt/sysdep.h" /* calloc, printf */ /* Create a log channel to have nice outputs. */ #include "xbt/log.h" #include "xbt/asserts.h" XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, - "Messages specific for this msg example"); + "Messages specific for this msg example"); int execute(int argc, char *argv[]); int redistribute(int argc, char *argv[]); MSG_error_t test_all(const char *platform_file, - const char *application_file); + const char *application_file); typedef enum { PORT_22 = 0, @@ -29,46 +35,49 @@ int execute(int argc, char *argv[]) int host_list_size; double *computation_duration = NULL; double *communication_table = NULL; - double communication_amount; - double computation_amount; + double communication_amount = 0; + double computation_amount = 0; double execution_time; host_list_size = argc - 3; - DEBUG1("host_list_size=%d", host_list_size); + XBT_DEBUG("host_list_size=%d", host_list_size); m_host_list = calloc(host_list_size, sizeof(m_host_t)); for (i = 1; i <= host_list_size; i++) { m_host_list[i - 1] = MSG_get_host_by_name(argv[i]); xbt_assert1(m_host_list[i - 1] != NULL, - "Unknown host %s. Stopping Now! ", argv[i]); + "Unknown host %s. Stopping Now! ", argv[i]); } - xbt_assert1(sscanf(argv[argc - 2], "%lg", &computation_amount), - "Invalid argument %s\n",argv[argc - 2]); - xbt_assert1(sscanf(argv[argc - 1], "%lg", &communication_amount), - "Invalid argument %s\n",argv[argc - 1]); + int read; + read = sscanf(argv[argc - 2], "%lg", &computation_amount); + xbt_assert1(read, "Invalid argument %s\n", argv[argc - 2]); + read = sscanf(argv[argc - 1], "%lg", &communication_amount); + xbt_assert1(read, "Invalid argument %s\n", argv[argc - 1]); computation_duration = (double *) calloc(host_list_size, sizeof(double)); communication_table = (double *) calloc(host_list_size * host_list_size, sizeof(double)); for (i = 0; i < host_list_size; i++) { computation_duration[i] = computation_amount / host_list_size; for (j = 0; j < host_list_size; j++) - communication_table[i * host_list_size + j] = - communication_amount / (host_list_size * host_list_size); + communication_table[i * host_list_size + j] = + communication_amount / (host_list_size * host_list_size); } sprintf(buffer, "redist#0\n"); task = MSG_parallel_task_create(buffer, - host_list_size, - m_host_list, - computation_duration, - communication_table, NULL); + host_list_size, + m_host_list, + computation_duration, + communication_table, NULL); execution_time = MSG_get_clock(); MSG_parallel_task_execute(task); + MSG_task_destroy(task); + xbt_free(m_host_list); execution_time = MSG_get_clock() - execution_time; - INFO1("execution_time=%g ", execution_time); + XBT_INFO("execution_time=%g ", execution_time); return 0; } @@ -83,67 +92,70 @@ int redistribute(int argc, char *argv[]) int host_list_size; double *computation_duration = NULL; double *communication_table = NULL; - double communication_amount; + double communication_amount = 0; double redistribution_time; host_list_size = argc - 2; - DEBUG1("host_list_size=%d", host_list_size); + XBT_DEBUG("host_list_size=%d", host_list_size); m_host_list = calloc(host_list_size, sizeof(m_host_t)); for (i = 1; i <= host_list_size; i++) { m_host_list[i - 1] = MSG_get_host_by_name(argv[i]); xbt_assert1(m_host_list[i - 1] != NULL, - "Unknown host %s. Stopping Now! ", argv[i]); + "Unknown host %s. Stopping Now! ", argv[i]); } - xbt_assert1(sscanf(argv[argc - 1], "%lg", &communication_amount), - "Invalid argument %s\n",argv[argc - 1]); + int read; + read = sscanf(argv[argc - 1], "%lg", &communication_amount); + xbt_assert1(read, "Invalid argument %s\n", argv[argc - 1]); computation_duration = (double *) calloc(host_list_size, sizeof(double)); communication_table = (double *) calloc(host_list_size * host_list_size, sizeof(double)); for (i = 0; i < host_list_size; i++) { for (j = 0; j < host_list_size; j++) - communication_table[i * host_list_size + j] = - communication_amount / (host_list_size * host_list_size); + communication_table[i * host_list_size + j] = + communication_amount / (host_list_size * host_list_size); } sprintf(buffer, "redist#0\n"); task = MSG_parallel_task_create(buffer, - host_list_size, - m_host_list, - computation_duration, - communication_table, NULL); + host_list_size, + m_host_list, + computation_duration, + communication_table, NULL); redistribution_time = MSG_get_clock(); MSG_parallel_task_execute(task); + MSG_task_destroy(task); + xbt_free(m_host_list); redistribution_time = MSG_get_clock() - redistribution_time; - INFO1("redistribution_time=%g ", redistribution_time); + XBT_INFO("redistribution_time=%g ", redistribution_time); return 0; } MSG_error_t test_all(const char *platform_file, - const char *application_file) + const char *application_file) { MSG_error_t res = MSG_OK; - MSG_config("workstation_model","ptask_L07"); + MSG_config("workstation/model", "ptask_L07"); /* Simulation setting */ MSG_set_channel_number(MAX_CHANNEL); MSG_create_environment(platform_file); - + /* Application deployment */ MSG_function_register("execute", execute); MSG_function_register("redistribute", redistribute); MSG_launch_application(application_file); - + res = MSG_main(); - INFO1("Simulation time %g", MSG_get_clock()); + XBT_INFO("Simulation time %g", MSG_get_clock()); return res; }