X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0ca1291c2f63ca6235f4b4885c48413a900aade4..df8e28a2d5e178c74aabcf2ab7467687186db917:/examples/msg/pmm/msg_pmm.c diff --git a/examples/msg/pmm/msg_pmm.c b/examples/msg/pmm/msg_pmm.c index 9a3174ef87..163950ae3d 100644 --- a/examples/msg/pmm/msg_pmm.c +++ b/examples/msg/pmm/msg_pmm.c @@ -8,19 +8,23 @@ #include "msg/msg.h" #include "xbt/matrix.h" #include "xbt/log.h" + +// #define BENCH_THIS_CODE /* Will only work from within the source tree as we require xbt/xbt_os_time.h, that is not public yet) */ +#ifdef BENCH_THIS_CODE #include "xbt/xbt_os_time.h" +#endif XBT_LOG_NEW_DEFAULT_CATEGORY(msg_pmm, "Messages specific for this msg example"); -/* This example should always be executed using a MATRIX_SIZE multiple of - * GRID_SIZE and with GRID_SIZE^2 nodes. */ -#define MATRIX_SIZE 900 -#define GRID_SIZE 3 +/* This example should always be executed using a deployment of + * GRID_SIZE * GRID_SIZE nodes. */ +#define GRID_SIZE 3 /* Modify to adjust the grid's size */ +#define NODE_MATRIX_SIZE 300 /* Ammount of work done by each node*/ -#define MAILBOX_NAME_SIZE 10 #define GRID_NUM_NODES GRID_SIZE * GRID_SIZE -#define NODE_MATRIX_SIZE MATRIX_SIZE / GRID_SIZE +#define MATRIX_SIZE NODE_MATRIX_SIZE * GRID_SIZE +#define MAILBOX_NAME_SIZE 10 #define NEIGHBOURS_COUNT GRID_SIZE - 1 /* @@ -158,7 +162,7 @@ int node(int argc, char **argv) result->sC = xbt_matrix_new_sub(sC, NODE_MATRIX_SIZE, NODE_MATRIX_SIZE, 0, 0, NULL); task = MSG_task_create("result",100,100,result); - MSG_task_dsend(task, "0", NULL); + MSG_task_dsend(task, "0", (void_f_pvoid_t) MSG_task_destroy); } /* Clean up and finish*/ @@ -244,7 +248,9 @@ static void task_cleanup(void *arg){ */ int main(int argc, char *argv[]) { +#ifdef BENCH_THIS_CODE xbt_os_timer_t timer = xbt_os_timer_new(); +#endif MSG_global_init(&argc, argv); @@ -252,15 +258,18 @@ int main(int argc, char *argv[]) const char* platform_file = options[0]; const char* application_file = options[1]; - MSG_set_channel_number(0); MSG_create_environment(platform_file); MSG_function_register("node", node); MSG_launch_application(application_file); +#ifdef BENCH_THIS_CODE xbt_os_timer_start(timer); +#endif MSG_error_t res = MSG_main(); +#ifdef BENCH_THIS_CODE xbt_os_timer_stop(timer); +#endif XBT_CRITICAL("Simulated time: %g", MSG_get_clock()); MSG_clean();