Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
318cea382e3ae86f8c14e2b43295466fda42d5b9
[simgrid.git] / teshsuite / simdag / network / mxn / test_intra_scatter.c
1 /* Latency tests                                                            */
2
3 /* Copyright (c) 2007, 2009-2011, 2013-2015. The SimGrid Team.
4  * All rights reserved.                                                     */
5
6 /* This program is free software; you can redistribute it and/or modify it
7  * under the terms of the license (GNU LGPL) which comes with this package. */
8
9 #include <stdio.h>
10 #include <stdlib.h>
11
12 #include "simgrid/simdag.h"
13
14 /*
15  * intra communication test 1
16  * scatter
17  * 
18  * start: 1 2 3 (each having 1/3 of the bandwidth)
19  * after 3 sec: 0 1 2 (having 1/2 of the bandwidth)
20  * after another 2 sec: 0 0 1 (having all the bandwidth)
21  * -> finished after 1 sec
22  * time to send: 6 + latency at the beginning: 0.5 + 1 + 0.5
23  */
24
25 int main(int argc, char **argv)
26 {
27   double time;
28   SD_task_t task;
29   xbt_dynar_t ret;
30
31   double communication_amount[] = { 0.0, 1.0, 2.0, 3.0,
32     0.0, 0.0, 0.0, 0.0,
33     0.0, 0.0, 0.0, 0.0,
34     0.0, 0.0, 0.0, 0.0,
35   };
36
37   double no_cost[] = { 0.0, 0.0, 0.0, 0.0 };
38
39
40   /***************************************/
41
42   SD_init(&argc, argv);
43   SD_create_environment(argv[1]);
44
45   task = SD_task_create("Scatter task", NULL, 1.0);
46
47   SD_task_schedule(task, 4, SD_workstation_get_list(), no_cost,
48                    communication_amount, -1.0);
49
50   ret = SD_simulate(-1.0);
51   xbt_dynar_free(&ret);
52
53   time = SD_get_clock();
54
55   printf("%g\n", time);
56   fflush(stdout);
57
58   SD_task_destroy(task);
59
60   SD_exit();
61
62   return 0;
63 }