+# Debug it with this command:
+# make -C ../.. && valgrind ruby MasterSlave.rb --log=ruby.thres:debug 2>&1 | less
+
require 'simgrid'
include MSG
# Class Master
#################################################
-class Master < RbProcess
- def initialize2()
- super()
- end
-
-
+class Master < MsgProcess
# msg_main : that function that will be executed when Running Simulation
def msg_main(args) # args is an array containing arguments for function master
info("Hello From Master")
for i in 0..numberOfTask-1
- task = RbTask.new("Task_"+ i.to_s, taskComputeSize , taskCommunicationSize );
+ task = Task.new("Task_"+ i.to_s, taskComputeSize , taskCommunicationSize );
s_alias = "slave>>" + (i%slaveCount).to_s
- info("Master Sending "+ RbTask.name(task) + " to " + s_alias + " with Comput Size " + RbTask.compSize(task).to_s)
- RbTask.send(task,s_alias)
- info("Master Done Sending " +RbTask.name(task) + " to " + s_alias)
-# sameTask = RbTask.receive(s_alias)
+ info("Master Sending "+ Task.name(task) + " to " + s_alias + " with Comput Size " + Task.compSize(task).to_s)
+ Task.send(task,s_alias)
+ info("Master Done Sending " +Task.name(task) + " to " + s_alias)
+# sameTask = Task.receive(s_alias)
# puts "Master Receiving its Own Task"
end
for i in 0..slaveCount-1
s_alias = "slave " + i.to_s
info ("Master Sending Finalize to " + s_alias)
- RbTask.send(RbTask.new("finalize",0,0),s_alias)
+ Task.send(Task.new("finalize",0,0),s_alias)
end
info("Master : Everything's Done")
end
#################################################
# Class Slave
#################################################
-class Slave < RbProcess
-
- def initialize()
- super()
- end
-
+class Slave < MsgProcess
# msg_main : that function that will be executed when Running Simulation
def msg_main(args)
info("Hello From Slave")
while true
info("Ready to Receive Task")
- task = RbTask.receive(s_mailbox)
- task_name = RbTask.name(task)
+ task = Task.receive(s_mailbox)
+ task_name = Task.name(task)
info ("Task Received : " + task.name)
if (task_name == "finalize")
info("Slave" + s_mailbox + "got finalize msg")
break
end
- info("Slave " + s_mailbox + " ...Processing" + RbTask.name(task))
- RbTask.execute(task)
+ info("Slave " + s_mailbox + " ...Processing" + Task.name(task))
+ Task.execute(task)
end
info("Slave " + s_mailbox + "I'm Done , See You !!")
end