Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
849b18b7876656a79d04ecd86c8720d85577f18a
[simgrid.git] / examples / lua / console / 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   local task_name = simgrid.task.get_name(tk)
24   alias = "slave "..(i%slave_count);
25   simgrid.info("Master sending  '" .. task_name .."' To '" .. alias .."'");
26   simgrid.task.send(tk,alias); -- C user data set to NULL
27   simgrid.info("Master done sending '".. task_name .."' To '" .. alias .."'");
28 end
29
30 -- Sending Finalize Message To Others
31
32 simgrid.info("Master: All tasks have been dispatched. Let's tell everybody the computation is over.");
33 for i=0,slave_count-1 do
34   alias = "slave "..i;
35   simgrid.info("Master: sending finalize to "..alias);
36   finalize = simgrid.task.new("finalize",comp_size,comm_size);
37   simgrid.task.send(finalize,alias)
38 end
39   simgrid.info("Master: Everything's done.");
40 end
41
42 --end_of_master