X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4093630fb785dcdf15e635740f7c770cec59d88b..a09fdaced8717cdcb0aefb66564bd4825c14e4aa:/examples/lua/console/master.lua diff --git a/examples/lua/console/master.lua b/examples/lua/console/master.lua index 52c5d65f79..2ce311816e 100644 --- a/examples/lua/console/master.lua +++ b/examples/lua/console/master.lua @@ -1,42 +1,40 @@ --Master Function function Master(...) -simgrid.info("Hello from lua, I'm the master") -for i,v in ipairs(arg) do - simgrid.info("Got "..v) -end - -nb_task = arg[1]; -comp_size = arg[2]; -comm_size = arg[3]; -slave_count = arg[4]; - -if (#arg ~= 4) then - error("Argc should be 4"); -end -simgrid.info("Argc="..(#arg).." (should be 4)") - --- Dispatch the tasks - -for i=1,nb_task do - tk = simgrid.Task.new("Task "..i,comp_size,comm_size); - local task_name = simgrid.Task.name(tk) - alias = "slave "..(i%slave_count); - simgrid.info("Master sending '" .. task_name .."' To '" .. alias .."'"); - simgrid.Task.send(tk,alias); -- C user data set to NULL - simgrid.info("Master done sending '".. task_name .."' To '" .. alias .."'"); -end - --- Sending Finalize Message To Others - -simgrid.info("Master: All tasks have been dispatched. Let's tell everybody the computation is over."); -for i=0,slave_count-1 do - alias = "slave "..i; - simgrid.info("Master: sending finalize to "..alias); - finalize = simgrid.Task.new("finalize",comp_size,comm_size); - simgrid.Task.send(finalize,alias) -end + if #arg ~= 4 then + error("Wrong number of arguments (got " .. #arg .. + ", expected 4: nb_tasks comp_size comm_size slave_count)") + end + + simgrid.info("Hello from lua, I'm the master") + for i,v in ipairs(arg) do + simgrid.info("Got " .. v) + end + + local nb_task, comp_size, comm_size, slave_count = unpack(arg) + + simgrid.info("Argc=" .. (#arg) .. " (should be 4)") + + -- Dispatch the tasks + + for i = 1, nb_task do + task = simgrid.task.new("Task " .. i, comp_size, comm_size); + local task_name = simgrid.task.get_name(task) + alias = "slave " .. (i%slave_count); + simgrid.info("Master sending '" .. task_name .. "' To '" .. alias .. "'"); + simgrid.task.send(task, alias); -- C user data set to NULL + simgrid.info("Master done sending '" .. task_name .. "' To '" .. alias .. "'"); + end + + -- Sending Finalize Message To Others + + simgrid.info("Master: All tasks have been dispatched. Let's tell everybody the computation is over."); + for i = 0, slave_count-1 do + alias = "slave " .. i; + simgrid.info("Master: sending finalize to " .. alias); + finalize = simgrid.task.new("finalize", comp_size, comm_size); + simgrid.task.send(finalize, alias) + end simgrid.info("Master: Everything's done."); end - --end_of_master