-------------------------------------------------------
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
+