rpc = {}
log = {}
job = {}
-event = {}
+events = {}
os = {}
start = {}
+misc = {}
-- Splay global variables
job.me ={}
job.nodes = {}
job.list_type = "random"
-
--Init nodes tables
function init_nodes()
for i= 1,simgrid.Host.number() do
init_nodes()
end
+
-- Job methods
function job.me.ip()
return simgrid.Host.getPropValue(simgrid.Host.self(),"ip");
end
+
function job.me.port()
return simgrid.Host.getPropValue(simgrid.Host.self(),"port");
end
+
function job.position()
return simgrid.Host.getPropValue(simgrid.Host.self(),"position");
end
arg = "empty"
mailbox = node
+ if type(node) == "table" then
+ mailbox = node.ip..":"..node.port
+ end
+
if type(call) == "table" then
func = call[1]
arg = call[2]
task_call = simgrid.Task.new("splay_task",10000,10000);
task_call['func_call_name'] = func;
task_call['func_call_arg'] = arg;
- --log:print("Sending Task to mailbox "..mailbox.." to call "..func.." with arg "..arg);
+ log:print("Sending Task to mailbox "..mailbox.." to call '"..func.."' with arg '"..arg.."'");
simgrid.Task.iSend(task_call,mailbox);
- call_function(func,arg)
+
end
+function rpc.server(port)
+ -- nothing really to do : no need to open Socket since it's a Simulation
+end
+
+
-- event Methods
-function event.sleep(time)
+function events.sleep(time)
my_mailbox = job.me.ip()..":"..job.me.port()
- task = simgrid.Task.splay_recv(my_mailbox, time)
+ tk = simgrid.Task.splay_recv(my_mailbox, time)
+
+ if type(tk) == "table" then
+ call_function(task['func_call_name'],task['func_call_arg'])
+ else log:print("task type is :"..type(tk).." it must be table?!");
+ end
end
+
-- main func for each process, this is equivalent to the Deploiment file
-function event.thread(main_func)
+function events.thread(main_func)
dofile("platform_script.lua");
init_jobs()
end
-- Start Methods
function start.loop()
simgrid.run()
- simgrid.clean()
+ --simgrid.clean()
end
+
+-- Misc Methods
+function misc.between(a,b)
+ return a
+end
+
-- useful functions
function call_function(fct,arg)
_G[fct](arg)
end
-function SPLAYschool()
- simgrid.info("Calling me...")
+function SPLAYschool(arg)
+ simgrid.info("Calling me..."..arg)
end