Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
splaySim: a lua implementation of a splay (simulation)scenario with a masterslave...
authorcoldpeace <coldpeace@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 4 Mar 2011 14:23:31 +0000 (14:23 +0000)
committercoldpeace <coldpeace@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 4 Mar 2011 14:23:31 +0000 (14:23 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@9757 48e7efb5-ca39-0410-a469-dd3cf9ba447f

examples/lua/splaySim/master.lua [new file with mode: 0644]
examples/lua/splaySim/slave.lua [new file with mode: 0644]
examples/lua/splaySim/splay_ctrl.lua [new file with mode: 0644]
examples/lua/splaySim/splay_deploy_masterslave.lua [new file with mode: 0644]
examples/lua/splaySim/splay_platform.lua [new file with mode: 0644]

diff --git a/examples/lua/splaySim/master.lua b/examples/lua/splaySim/master.lua
new file mode 100644 (file)
index 0000000..38765ca
--- /dev/null
@@ -0,0 +1,41 @@
+--Master Function
+function Master(...) 
+
+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);
+  alias = "slave "..(i%slave_count);
+  simgrid.info("Master sending  '" .. simgrid.Task.name(tk) .."' To '" .. alias .."'");
+  simgrid.Task.send(tk,alias); -- C user data set to NULL
+  simgrid.info("Master done sending '".. simgrid.Task.name(tk) .."' 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
diff --git a/examples/lua/splaySim/slave.lua b/examples/lua/splaySim/slave.lua
new file mode 100644 (file)
index 0000000..555d940
--- /dev/null
@@ -0,0 +1,24 @@
+-- Slave Function ---------------------------------------------------------
+function Slave(...)
+
+local my_mailbox="slave "..arg[1]
+simgrid.info("Hello from lua, I'm a poor slave with mbox: "..my_mailbox)
+
+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
+  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 !!");
+
+end 
+
+-- end_of_slave
diff --git a/examples/lua/splaySim/splay_ctrl.lua b/examples/lua/splaySim/splay_ctrl.lua
new file mode 100644 (file)
index 0000000..5c8007c
--- /dev/null
@@ -0,0 +1,16 @@
+
+-- Simulation Code ----------------------------------------------------------
+
+require "simgrid"
+if (#arg == 2) then
+       dofile (arg[1])
+       dofile (arg[2])
+else
+       dofile "splay_platform.lua"
+       dofile "splay_deploy_masterslave.lua"
+end
+
+simgrid.run()
+simgrid.info("Simulation's over.See you.")
+simgrid.clean()
+
diff --git a/examples/lua/splaySim/splay_deploy_masterslave.lua b/examples/lua/splaySim/splay_deploy_masterslave.lua
new file mode 100644 (file)
index 0000000..8aca194
--- /dev/null
@@ -0,0 +1,14 @@
+
+   dofile "master.lua"
+   dofile "slave.lua"
+   --Set Application
+   simgrid.Host.setFunction{host="Splayd_1",fct="Master",args="20,550000000,1000000,4"};
+   simgrid.Host.setFunction{host="Splayd_5",fct="Slave",args="0"};
+   simgrid.Host.setFunction{host="Splayd_2",fct="Slave",args="1"};
+   simgrid.Host.setFunction{host="Splayd_3",fct="Slave",args="2"};
+   simgrid.Host.setFunction{host="Splayd_4",fct="Slave",args="3"};
+   
+   simgrid.info("Start Saving Platform...");
+  --Save Application 
+   simgrid.msg_register_application(); 
+   simgrid.info("Platform Saved...");
diff --git a/examples/lua/splaySim/splay_platform.lua b/examples/lua/splaySim/splay_platform.lua
new file mode 100644 (file)
index 0000000..468a097
--- /dev/null
@@ -0,0 +1,45 @@
+require "simgrid"
+
+  simgrid.AS.new{id="AS0",mode="Full"}; 
+
+  -- create 5 Splayd (Hosts)
+  for i=0,5,1 do
+       simgrid.AS.addHost{AS="AS0",id="Splayd_"..i,power= 7000000+i*1000000}
+  end
+
+    -- create Links
+  for i=10,0,-1 do
+    simgrid.AS.addLink{AS="AS0",id=i,bandwidth=252750+ i*768,latency=0.000270544+i*0.087};   
+  end
+  -- simgrid.Route.new(src_id,des_id,links_nb,links_list)
+   simgrid.AS.addRoute("AS0","Splayd_1","Splayd_2",{"1"});
+   simgrid.AS.addRoute("AS0","Splayd_1","Splayd_3",{"0","1","2","3","4","8"});
+   simgrid.AS.addRoute("AS0","Splayd_1","Splayd_4",{"3","4","5"});
+   simgrid.AS.addRoute("AS0","Splayd_1","Splayd_5",{"0","1","3","2","4","6","7"});
+
+   simgrid.AS.addRoute("AS0","Splayd_2","Splayd_1",{"1"});
+   simgrid.AS.addRoute("AS0","Splayd_2","Splayd_3",{"0","1","2","3","4","8","9"});
+   simgrid.AS.addRoute("AS0","Splayd_2","Splayd_4",{"3","4","5","9"});
+   simgrid.AS.addRoute("AS0","Splayd_2","Splayd_5",{"0","1","2","3","4","6","7","9"});
+   simgrid.AS.addRoute("AS0","Splayd_3","Splayd_1",{"0","1","2","3","4","8"});
+   simgrid.AS.addRoute("AS0","Splayd_3","Splayd_2",{"0","1","2","3","4","8","9"});
+   simgrid.AS.addRoute("AS0","Splayd_3","Splayd_4",{"0","1","2","5","8"});
+   simgrid.AS.addRoute("AS0","Splayd_3","Splayd_5",{"6","7","8"});
+  
+   simgrid.AS.addRoute("AS0","Splayd_4","Splayd_1",{"3","4","5"});
+   simgrid.AS.addRoute("AS0","Splayd_4","Splayd_2",{"3","4","5","9"});
+   simgrid.AS.addRoute("AS0","Splayd_4","Splayd_3",{"0","1","2","5","8"});
+   simgrid.AS.addRoute("AS0","Splayd_4","Splayd_5",{"0","1","2","5","6","7"});
+
+   simgrid.AS.addRoute("AS0","Splayd_5","Splayd_1",{"0","1","3","2","4","6","7"});
+   simgrid.AS.addRoute("AS0","Splayd_5","Splayd_2",{"0","1","2","3","4","6","7","9"});
+   simgrid.AS.addRoute("AS0","Splayd_5","Splayd_3",{"6","7","8"});
+   simgrid.AS.addRoute("AS0","Splayd_5","Splayd_4",{"0","1","2","5","6","7"});
+  
+   --Save Platform
+   simgrid.msg_register_platform();
+   simgrid.info("Platform Saved...")
+
+
+