Reindent, remove useless semicolons, declare variables as local, etc.
---Master Function
function Master(...)
-simgrid.info("Hello from lua, I'm the master")
-for i,v in ipairs(arg) do
+ 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
- simgrid.info("Master: Everything's done.");
-end
-
---end_of_master
+ end
+
+ local nb_task = arg[1]
+ local comp_size = arg[2]
+ local comm_size = arg[3]
+ local 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
+ local tk = simgrid.Task.new("Task "..i, comp_size, comm_size)
+ local task_name = simgrid.Task.name(tk)
+ local 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
+ local alias = "slave " .. i
+ simgrid.info("Master: sending finalize to " .. alias)
+ local finalize = simgrid.Task.new("finalize", comp_size, comm_size)
+ simgrid.Task.send(finalize, alias)
+ end
+ simgrid.info("Master: Everything's done.")
+end -- Master
+
-- Simulation Code ----------------------------------------------------------
require "simgrid"
+
if (#arg == 2) then
-simgrid.platform(arg[1])
-simgrid.application(arg[2])
+ simgrid.platform(arg[1])
+ simgrid.application(arg[2])
else
-simgrid.platform("../../msg/small_platform.xml")
-simgrid.application("../deploy.xml")
+ simgrid.platform("../../msg/small_platform.xml")
+ simgrid.application("../deploy.xml")
end
simgrid.run()
simgrid.info("Simulation's over.See you.")
-
-
--- Slave Function ---------------------------------------------------------
function Slave(...)
-local my_mailbox="slave "..arg[1]
-simgrid.info("Hello from lua, I'm a poor slave with mbox: "..my_mailbox)
-
+ local my_mailbox = "slave " .. arg[1]
+ simgrid.info("Hello from lua, I'm a poor slave with mbox: " .. my_mailbox)
-while true do
+ while true do
- local tk = simgrid.Task.recv(my_mailbox);
- if (simgrid.Task.name(tk) == "finalize") then
- simgrid.info("Slave '" ..my_mailbox.."' got finalize msg");
- break
+ local tk = simgrid.Task.recv(my_mailbox)
+ if (simgrid.Task.name(tk) == "finalize") then
+ simgrid.info("Slave '" .. my_mailbox .. "' got finalize msg")
+ break
+ end
+ local task_name = simgrid.Task.name(tk)
+ simgrid.info("Slave '" .. my_mailbox.. "' processing " .. task_name)
+ simgrid.Task.execute(tk)
+ simgrid.info("Slave '" .. my_mailbox .. "': task " .. task_name .. " done")
end
- --local tk_name = simgrid.Task.name(tk)
- simgrid.info("Slave '" ..my_mailbox.."' processing "..simgrid.Task.name(tk))
- simgrid.Task.execute(tk)
- simgrid.info("Slave '" ..my_mailbox.."': task "..simgrid.Task.name(tk) .. " done")
-end -- while
-simgrid.info("Slave '" ..my_mailbox.."': I'm Done . See You !!");
+ simgrid.info("Slave '" .. my_mailbox .. "': I'm Done . See You !!")
+end -- Slave
-end
--- end_of_slave
dofile 'sender.lua'
dofile 'receiver.lua'
require "simgrid"
+
simgrid.platform("quicksort_platform.xml")
simgrid.application("quicksort_deployment.xml")
simgrid.run()
simgrid.info("Simulation's over.See you.")
simgrid.clean()
-
-
-------------------------------------------------------
function Receiver(...)
-
- simgrid.info("Hello From Receiver")
- sender = simgrid.Host.getByName(arg[1])
- send_alias = arg[2]
- recv_alias = "Receiver";
- simgrid.info("Receiving Task from "..simgrid.Host.name(sender));
- task = simgrid.Task.recv(recv_alias);
- mm = mmult(task['size'],task['size'],task['matrix_1'],task['matrix_2']);
- --mprint(task['size'],task['size'],mm)
- task['matrix_res'] = mm;
- simgrid.info("Calcul is done ... Bye");
-
+ simgrid.info("Hello From Receiver")
+ local sender = simgrid.Host.getByName(arg[1])
+ local send_alias = arg[2]
+ local recv_alias = "Receiver"
+ simgrid.info("Receiving Task from " .. simgrid.Host.name(sender))
+ local task = simgrid.Task.recv(recv_alias)
+ local mm = mmult(task['size'], task['size'], task['matrix_1'], task['matrix_2'])
+ --mprint(task['size'], task['size'], mm)
+ task['matrix_res'] = mm
+ simgrid.info("Calcul is done ... Bye")
end
local n = tonumber((arg and arg[1]) or 1)
function mkmatrix(rows, cols)
- local count = 1
- local mx = {}
- for i=0,(rows - 1) do
+ local count = 1
+ local mx = {}
+ for i = 0, (rows - 1) do
local row = {}
- for j=0,(cols - 1) do
- row[j] = count
- count = count + 1
+ for j = 0, (cols - 1) do
+ row[j] = count
+ count = count + 1
end
mx[i] = row
- end
- return(mx)
+ end
+ return mx
end
function mmult(rows, cols, m1, m2)
- local m3 = {}
- for i=0,(rows-1) do
- m3[i] = {}
- for j=0,(cols-1) do
- local rowj = 0
- for k=0,(cols-1) do
- rowj = rowj + m1[i][k] * m2[k][j]
- end
- m3[i][j] = rowj
- end
+ local m3 = {}
+ for i = 0, (rows - 1) do
+ m3[i] = {}
+ for j = 0, (cols - 1) do
+ local rowj = 0
+ for k = 0, (cols - 1) do
+ rowj = rowj + m1[i][k] * m2[k][j]
+ end
+ m3[i][j] = rowj
end
- return(m3)
+ end
+ return m3
end
-function mprint(rows,cols,m)
- for i=0,(cols-1)do
- for j=0,(rows-1)do
- print (m[i][j])
- end
- end
+function mprint(rows, cols, m)
+ for i = 0, (cols - 1) do
+ for j = 0, (rows - 1 )do
+ print(m[i][j])
+ end
+ end
end
+
function Sender(...)
- simgrid.info("Hello From Sender")
- receiver = simgrid.Host.getByName(arg[1])
- task_comp = arg[2]
- task_comm = arg[3]
- rec_alias = arg[4]
-
- size = 4
- m1 = mkmatrix(size, size)
- m2 = mkmatrix(size, size)
+ simgrid.info("Hello From Sender")
+ local receiver = simgrid.Host.getByName(arg[1])
+ local task_comp = arg[2]
+ local task_comm = arg[3]
+ local rec_alias = arg[4]
- if (#arg ~= 4) then
- error("Argc should be 4");
- end
- simgrid.info("Argc="..(#arg).." (should be 4)")
+ local size = 4
+ local m1 = mkmatrix(size, size)
+ local m2 = mkmatrix(size, size)
- -- Sending Task
- task = simgrid.Task.new("matrix_task",task_comp,task_comm);
- task['matrix_1'] = m1;
- task['matrix_2'] = m2;
- task['size'] = size;
- simgrid.info("Sending "..simgrid.Task.name(task).." to "..simgrid.Host.name(receiver));
- simgrid.Task.send(task,rec_alias);
- -- Read The Result
- mm = task['matrix_res']
- simgrid.info("Got the Multiplication result ...Bye");
- --mprint(size,size,mm);
+ if #arg ~= 4 then
+ error("Argc should be 4")
+ end
+ simgrid.info("Argc=" .. (#arg) .. " (should be 4)")
+ -- Sending Task
+ local task = simgrid.Task.new("matrix_task", task_comp, task_comm)
+ task['matrix_1'] = m1
+ task['matrix_2'] = m2
+ task['size'] = size
+ simgrid.info("Sending " .. simgrid.Task.name(task) .. " to " .. simgrid.Host.name(receiver))
+ simgrid.Task.send(task, rec_alias)
+ simgrid.info("Got the Multiplication result ...Bye")
end
+
-- Prints the value of global_string
function print_global()
- simgrid.info("Global string is '"..global_string.."'")
+ simgrid.info("Global string is '" .. global_string .. "'")
end
print_global()