Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[Lua] Renamed host 'power' to 'speed' for hosts
[simgrid.git] / examples / lua / tracing / master.lua
1 -- Copyright (c) 2011, 2014. The SimGrid Team.
2 -- All rights reserved.
3
4 -- This program is free software; you can redistribute it and/or modify it
5 -- under the terms of the license (GNU LGPL) which comes with this package.
6
7 --Master Function
8 function Master(...) 
9
10 simgrid.info("Hello from lua, I'm the master")
11 for i,v in ipairs(arg) do
12     simgrid.info("Got "..v)
13 end
14
15 prop_value = simgrid.host.get_prop_value(simgrid.host.self(),"peace");
16 simgrid.info("Prop Value >>> ".. prop_value);
17
18 nb_task = arg[1];
19 comp_size = arg[2];
20 comm_size = arg[3];
21 slave_count = arg[4]
22
23 if (#arg ~= 4) then
24     error("Argc should be 4");
25 end
26 simgrid.info("Argc="..(#arg).." (should be 4)")
27
28 -- Dispatch the tasks
29
30 for i=1,nb_task do
31   tk = simgrid.task.new("Task "..i,comp_size,comm_size);
32   alias = "slave "..(i%slave_count);
33   -- Set Trace Category
34   simgrid.Trace.setTaskCategory(tk,"compute");
35   simgrid.info("Master sending  '" .. simgrid.task.get_name(tk) .."' To '" .. alias .."'");
36   simgrid.task.send(tk,alias); -- C user data set to NULL
37   simgrid.info("Master done sending '".. simgrid.task.get_name(tk) .."' To '" .. alias .."'");
38 end
39
40 -- Sending Finalize Message To Others
41
42 simgrid.info("Master: All tasks have been dispatched. Let's tell everybody the computation is over.");
43 for i=0,slave_count-1 do
44   alias = "slave "..i;
45   simgrid.info("Master: sending finalize to "..alias);
46   finalize = simgrid.task.new("finalize",comp_size,comm_size);
47   --set Trace Category 
48   simgrid.Trace.setTaskCategory(finalize,"finalize");
49   simgrid.task.send(finalize,alias);
50 end
51   simgrid.info("Master: Everything's done.");
52 end
53
54 --end of master