+++ /dev/null
-
---Master Function
-function master(...)
-
-print("Hello from lua, I'm the master")
-for i,v in ipairs(arg) do
- print("Got "..v)
-end
-
-nb_task = arg[1];
-comp_size = arg[2];
-comm_size = arg[3];
-slave_count = arg[4]
-
-
-argc=#arg
-print("Argc="..argc.." (should be 4)")
-
--- Dispatch the tasks
-
-for i=1,nb_task do
- tk = Msg.Task.new("Task "..i,comp_size,comm_size);
- alias = "slave "..(i%slave_count);
- print("Master sending '" .. Msg.Task.name(tk) .."' To '" .. alias .."'");
- Msg.Task.send(tk,alias); -- C user data set to NULL
- print("Master done sending '".. Msg.Task.name(tk) .."' To '" .. alias .."'");
-end
-
---[[
-Sending Finalize Message To Others
---]]
-
-print("Master: All tasks have been dispatched. Let's tell everybody the computation is over.");
-for i=0,slave_count-1 do
- alias = "slave "..i;
- print("Master: sending finalize to "..alias);
- Msg.Task.send(Msg.Task.new("finalize",0,0),alias);
-end
-print("Master: Everything's done.");
-
-
-end
-
---Slave Function ---------------------------------------------------------
-function slave(...)
-
-my_mailbox="slave "..arg[1]
-print("Hello from lua, I'm a poor slave with mbox: "..my_mailbox)
-
-
-while true do
--- tk = Msg.Task.new("",0,0); --??
--- Msg.Task.recv2(tk,my_mailbox);
- tk = Msg.Task.recv(my_mailbox);
-
- tk_name = Msg.Task.name(tk)
-
- if (tk_name == "finalize") then
- print("Slave '" ..my_mailbox.."' got finalize msg");
- break
- end
-
- print("Slave '" ..my_mailbox.."' processing "..Msg.Task.name(tk))
- Msg.Task.execute(tk);
-
- print("Slave '" ..my_mailbox.."': task "..Msg.Task.name(tk) .. " done")
-end -- while
-
-print("Slave '" ..my_mailbox.."': I'm Done . See You !!");
-
-end -- function ----------------------------------------------------------
---]]