4 simgrid.info("Hello from lua, I'm the master")
5 for i,v in ipairs(arg) do
6 simgrid.info("Got "..v)
15 error("Argc should be 4");
17 simgrid.info("Argc="..(#arg).." (should be 4)")
22 tk = simgrid.Task.new("Task "..i,comp_size,comm_size);
23 alias = "slave "..(i%slave_count);
24 simgrid.info("Master sending '" .. simgrid.Task.name(tk) .."' To '" .. alias .."'");
25 simgrid.Task.send(tk,alias); -- C user data set to NULL
26 simgrid.info("Master done sending '".. simgrid.Task.name(tk) .."' To '" .. alias .."'");
29 -- Sending Finalize Message To Others
31 simgrid.info("Master: All tasks have been dispatched. Let's tell everybody the computation is over.");
32 for i=0,slave_count-1 do
34 simgrid.info("Master: sending finalize to "..alias);
35 finalize = simgrid.Task.new("finalize",comp_size,comm_size);
36 simgrid.Task.send(finalize,alias)
38 simgrid.info("Master: Everything's done.");
43 -- Slave Function ---------------------------------------------------------
46 local my_mailbox="slave "..arg[1]
47 simgrid.info("Hello from lua, I'm a poor slave with mbox: "..my_mailbox)
51 local tk = simgrid.Task.recv(my_mailbox);
52 if (simgrid.Task.name(tk) == "finalize") then
53 simgrid.info("Slave '" ..my_mailbox.."' got finalize msg");
56 --local tk_name = simgrid.Task.name(tk)
57 simgrid.info("Slave '" ..my_mailbox.."' processing "..simgrid.Task.name(tk))
58 simgrid.Task.execute(tk)
59 simgrid.info("Slave '" ..my_mailbox.."': task "..simgrid.Task.name(tk) .. " done")
62 simgrid.info("Slave '" ..my_mailbox.."': I'm Done . See You !!");
67 -- Simulation Core ----------------------------------------------------------
72 --create new routing model
73 --simgrid.AS.new(AS_id,AS_mode)
74 simgrid.AS.new{id="AS0",mode="Full"};
75 --simgrid.Host.new(host_id,power)
76 simgrid.Host.new{id="Tremblay",power=98095000};
77 simgrid.Host.new{id="Jupiter",power=76296000};
78 simgrid.Host.new{id="Fafard",power=76296000};
79 simgrid.Host.new{id="Ginette",power=48492000};
80 simgrid.Host.new{id="Bourassa",power=48492000};
84 --simgrid.Link.new{id=i,bandwidth=252750+ i*768,latency=0.000270544+i*0.087};
85 simgrid.Link.new{id=i,bandwidth=252750+ i*768,latency=0.000270544+i*0.087};
87 -- simgrid.Route.new(src_id,des_id,links_nb,links_list)
88 simgrid.Route.new{src="Tremblay",dest="Jupiter",links="1"};
89 simgrid.Route.new{src="Tremblay",dest="Fafard",links="0,1,2,3,4,8"};
90 simgrid.Route.new{src="Tremblay",dest="Ginette",links="3,4,5"};
91 simgrid.Route.new{src="Tremblay",dest="Bourassa",links="0,1,3,2,4,6,7"};
93 simgrid.Route.new{src="Jupiter",dest="Tremblay",links="1"};
94 simgrid.Route.new{src="Jupiter",dest="Fafard",links="0,1,2,3,4,8,9"};
95 simgrid.Route.new{src="Jupiter",dest="Ginette",links="3,4,5,9"};
96 simgrid.Route.new{src="Jupiter",dest="Bourassa",links="0,1,2,3,4,6,7,9"};
98 simgrid.Route.new{src="Fafard",dest="Tremblay",links="0,1,2,3,4,8"};
99 simgrid.Route.new{src="Fafard",dest="Jupiter",links="0,1,2,3,4,8,9"};
100 simgrid.Route.new{src="Fafard",dest="Ginette",links="0,1,2,5,8"};
101 simgrid.Route.new{src="Fafard",dest="Bourassa",links="6,7,8"};
103 simgrid.Route.new{src="Ginette",dest="Tremblay",links="3,4,5"};
104 simgrid.Route.new{src="Ginette",dest="Jupiter",links="3,4,5,9"};
105 simgrid.Route.new{src="Ginette",dest="Fafard",links="0,1,2,5,8"};
106 simgrid.Route.new{src="Ginette",dest="Bourassa",links="0,1,2,5,6,7"};
108 simgrid.Route.new{src="Bourassa",dest="Tremblay",links="0,1,3,2,4,6,7"};
109 simgrid.Route.new{src="Bourassa",dest="Jupiter",links="0,1,2,3,4,6,7,9"};
110 simgrid.Route.new{src="Bourassa",dest="Fafard",links="6,7,8"};
111 simgrid.Route.new{src="Bourassa",dest="Ginette",links="0,1,2,5,6,7"};
114 --simgrid.info("start registering platform");
115 simgrid.msg_register_platform();
116 --simgrid.info("platform registered");
119 simgrid.Host.setFunction{host="Tremblay",fct="Master",args="20,550000000,1000000,4"};
120 simgrid.Host.setFunction{host="Bourassa",fct="Slave",args="0"};
121 simgrid.Host.setFunction{host="Jupiter",fct="Slave",args="1"};
122 simgrid.Host.setFunction{host="Fafard",fct="Slave",args="2"};
123 simgrid.Host.setFunction{host="Ginette",fct="Slave",args="3"};
126 simgrid.msg_register_application();
128 --Run The Application
130 simgrid.info("Simulation's over.See you.")