Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Make a tesh file for ns3.
[simgrid.git] / examples / lua / splaySim / master.lua
1 --Master Function
2 function Master(...) 
3
4 simgrid.info("Hello from lua, I'm the master")
5 for i,v in ipairs(arg) do
6     simgrid.info("Got "..v)
7 end
8
9 nb_task = arg[1];
10 comp_size = arg[2];
11 comm_size = arg[3];
12 slave_count = arg[4]
13
14 if (#arg ~= 4) then
15     error("Argc should be 4");
16 end
17 simgrid.info("Argc="..(#arg).." (should be 4)")
18
19 -- Dispatch the tasks
20
21 for i=1,nb_task do
22   tk = simgrid.Task.new("Task "..i,comp_size,comm_size);
23   alias = "slave "..(i%slave_count);
24   simgrid.info("Master sending  '" .. simgrid.Task.name(tk) .."' To '" .. alias .."'");
25   simgrid.Task.send(tk,alias); -- C user data set to NULL
26   simgrid.info("Master done sending '".. simgrid.Task.name(tk) .."' To '" .. alias .."'");
27 end
28
29 -- Sending Finalize Message To Others
30
31 simgrid.info("Master: All tasks have been dispatched. Let's tell everybody the computation is over.");
32 for i=0,slave_count-1 do
33   alias = "slave "..i;
34   simgrid.info("Master: sending finalize to "..alias);
35   finalize = simgrid.Task.new("finalize",comp_size,comm_size);
36   simgrid.Task.send(finalize,alias)
37 end
38   simgrid.info("Master: Everything's done.");
39 end
40
41 -- end_of_master