4 simgrid.info("Hello from lua, I'm the master")
5 for i,v in ipairs(arg) do
6 simgrid.info("Got "..v)
16 error("Argc should be 4");
18 simgrid.info("Argc="..(#arg).." (should be 4)")
23 tk = simgrid.Task.new("Task "..i,comp_size,comm_size);
24 alias = "slave "..(i%slave_count);
25 simgrid.info("Master sending '" .. simgrid.Task.name(tk) .."' To '" .. alias .."'");
26 simgrid.Task.send(tk,alias); -- C user data set to NULL
27 simgrid.info("Master done sending '".. simgrid.Task.name(tk) .."' To '" .. alias .."'");
30 -- Sending Finalize Message To Others
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
35 simgrid.info("Master: sending finalize to "..alias);
36 finalize = simgrid.Task.new("finalize",comp_size,comm_size);
37 simgrid.Task.send(finalize,alias)
39 simgrid.info("Master: Everything's done.");
42 -- Slave Function ---------------------------------------------------------
45 local my_mailbox="slave "..arg[1]
46 simgrid.info("Hello from lua, I'm a poor slave with mbox: "..my_mailbox)
50 local tk = simgrid.Task.recv(my_mailbox);
51 if (simgrid.Task.name(tk) == "finalize") then
52 simgrid.info("Slave '" ..my_mailbox.."' got finalize msg");
55 --local tk_name = simgrid.Task.name(tk)
56 simgrid.info("Slave '" ..my_mailbox.."' processing "..simgrid.Task.name(tk))
57 simgrid.Task.execute(tk)
58 simgrid.info("Slave '" ..my_mailbox.."': task "..simgrid.Task.name(tk) .. " done")
61 simgrid.info("Slave '" ..my_mailbox.."': I'm Done . See You !!");
63 end -- function ----------------------------------------------------------
68 --first we save the host number ( since we'll first save them into a C table )
69 simgrid.Host.setNumber(5);
70 --simgrid.Host.new(host_id,power)
71 simgrid.Host.new("Tremblay",98095000);
72 simgrid.Host.new("Jupiter",76296000);
73 simgrid.Host.new("Fafard",76296000);
74 simgrid.Host.new("Ginette",48492000);
75 simgrid.Host.new("Bourassa",48492000);
77 -- set Number of links
78 simgrid.Link.setNumber(12);
81 simgrid.Link.new(i,252750+ i*768,0.000270544+i*0.087); -- let's create link !! with crazy values ;)
84 -- set number of route ( 5 hosts >> 5*5 = 25 )
85 simgrid.Route.setNumber(20);
87 -- simgrid.Route.new(src_id,des_id,links_nb,links_list)
88 simgrid.Route.new("Tremblay","Jupiter",1,{"1"});
89 simgrid.Route.new("Tremblay","Fafard",6,{"0","1","2","3","4","8"});
90 simgrid.Route.new("Tremblay","Ginette",3,{"3","4","5"});
91 simgrid.Route.new("Tremblay","Bourassa",7,{"0","1","3","2","4","6","7"});
93 simgrid.Route.new("Jupiter","Tremblay",1,{"1"});
94 simgrid.Route.new("Jupiter","Fafard",7,{"0","1","2","3","4","8","9"});
95 simgrid.Route.new("Jupiter","Ginette",4,{"3","4","5","9"});
96 simgrid.Route.new("Jupiter","Bourassa",8,{"0","1","2","3","4","6","7","9"});
98 simgrid.Route.new("Fafard","Tremblay",6,{"0","1","2","3","4","8"});
99 simgrid.Route.new("Fafard","Jupiter",7,{"0","1","2","3","4","8","9"});
100 simgrid.Route.new("Fafard","Ginette",5,{"0","1","2","5","8"});
101 simgrid.Route.new("Fafard","Bourassa",3,{"6","7","8"});
103 simgrid.Route.new("Ginette","Tremblay",3,{"3","4","5"});
104 simgrid.Route.new("Ginette","Jupiter",4,{"3","4","5","9"});
105 simgrid.Route.new("Ginette","Fafard",5,{"0","1","2","5","8"});
106 simgrid.Route.new("Ginette","Bourassa",6,{"0","1","2","5","6","7"});
108 simgrid.Route.new("Bourassa","Tremblay",7,{"0","1","3","2","4","6","7"});
109 simgrid.Route.new("Bourassa","Jupiter",8,{"0","1","2","3","4","6","7","9"});
110 simgrid.Route.new("Bourassa","Fafard",3,{"6","7","8"});
111 simgrid.Route.new("Bourassa","Ginette",6,{"0","1","2","5","6","7"});
114 simgrid.register_platform();
118 --simgrid.Host.setFunction(host_id,function_name,args_nb,args_list)
119 simgrid.Host.setFunction("Tremblay","Master",4,{"20","550000000","1000000","4"});
120 simgrid.Host.setFunction("Bourassa","Slave",1,{"0"});
121 simgrid.Host.setFunction("Jupiter","Slave",1,{"1"});
122 simgrid.Host.setFunction("Fafard","Slave",1,{"2"});
123 simgrid.Host.setFunction("Ginette","Slave",1,{"3"});
126 simgrid.register_application();
128 -- Run The Application
131 simgrid.info("Simulation's over.See you.")