X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/9f54e5c450791e19b01f31e86c93e5a603fd0c4b..3a5d9c005d8ff9357133dbf65af9743e49b1bb6f:/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 8ee0ec9142..7bf64aaed5 100644 --- a/examples/msg/parallel_task/test_ptask.c +++ b/examples/msg/parallel_task/test_ptask.c @@ -1,6 +1,11 @@ +/* Copyright (c) 2008-2015. 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 "simgrid/msg.h" /* Yeah! If you want to use msg, you need to include simgrid/msg.h */ #include "xbt/sysdep.h" /* calloc, printf */ /* Create a log channel to have nice outputs. */ @@ -11,49 +16,46 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(msg_test, 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); - -typedef enum { - PORT_22 = 0, - MAX_CHANNEL -} channel_t; +msg_error_t test_all(const char *platform_file, + const char *application_file); int execute(int argc, char *argv[]) { char buffer[32]; int i, j; - m_host_t *m_host_list = NULL; - m_task_t task = NULL; + msg_host_t *m_host_list = NULL; + msg_task_t task = NULL; 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); - m_host_list = calloc(host_list_size, sizeof(m_host_t)); + XBT_DEBUG("host_list_size=%d", host_list_size); + m_host_list = calloc(host_list_size, sizeof(msg_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, + m_host_list[i - 1] = MSG_host_by_name(argv[i]); + xbt_assert(m_host_list[i - 1] != NULL, "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]); + XBT_ATTRIB_UNUSED int read; + read = sscanf(argv[argc - 2], "%lg", &computation_amount); + xbt_assert(read, "Invalid argument %s\n", argv[argc - 2]); + read = sscanf(argv[argc - 1], "%lg", &communication_amount); + xbt_assert(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)); + (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_amount / (host_list_size * host_list_size); } sprintf(buffer, "redist#0\n"); @@ -65,9 +67,11 @@ int execute(int argc, char *argv[]) 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; } @@ -77,33 +81,34 @@ int redistribute(int argc, char *argv[]) { char buffer[32]; int i, j; - m_host_t *m_host_list = NULL; - m_task_t task = NULL; + msg_host_t *m_host_list = NULL; + msg_task_t task = NULL; 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); - m_host_list = calloc(host_list_size, sizeof(m_host_t)); + XBT_DEBUG("host_list_size=%d", host_list_size); + m_host_list = calloc(host_list_size, sizeof(msg_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, + m_host_list[i - 1] = MSG_host_by_name(argv[i]); + xbt_assert(m_host_list[i - 1] != NULL, "Unknown host %s. Stopping Now! ", argv[i]); } - xbt_assert1(sscanf(argv[argc - 1], "%lg", &communication_amount), - "Invalid argument %s\n", argv[argc - 1]); + XBT_ATTRIB_UNUSED int read; + read = sscanf(argv[argc - 1], "%lg", &communication_amount); + xbt_assert(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)); + (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_amount / (host_list_size * host_list_size); } sprintf(buffer, "redist#0\n"); @@ -115,23 +120,25 @@ int redistribute(int argc, char *argv[]) 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) +msg_error_t test_all(const char *platform_file, + const char *application_file) { - MSG_error_t res = MSG_OK; + msg_error_t res = MSG_OK; - MSG_config("workstation/model", "ptask_L07"); + MSG_config("host/model", "ptask_L07"); /* Simulation setting */ - MSG_set_channel_number(MAX_CHANNEL); MSG_create_environment(platform_file); /* Application deployment */ @@ -141,25 +148,21 @@ MSG_error_t test_all(const char *platform_file, const char *application_file) res = MSG_main(); - INFO1("Simulation time %g", MSG_get_clock()); + XBT_INFO("Simulation time %g", MSG_get_clock()); return res; } int main(int argc, char *argv[]) { - MSG_error_t res = MSG_OK; + msg_error_t res = MSG_OK; + + MSG_init(&argc, argv); + xbt_assert(argc > 2, "Usage: %s platform_file deployment_file\n" + "\tExample: %s msg_platform.xml msg_deployment.xml\n", + argv[0], argv[0]); - MSG_global_init(&argc, argv); - if (argc < 3) { - printf("Usage: %s platform_file deployment_file\n", argv[0]); - exit(1); - } res = test_all(argv[1], argv[2]); - MSG_clean(); - if (res == MSG_OK) - return 0; - else - return 1; + return res != MSG_OK; }