6 class Master < RbProcess
12 # msg_main : that function that will be executed when Running Simulation
13 def msg_main(args) # args is an array Containin' arguments for function master
14 puts "Hey From Ruby...I'm The Master"
16 puts "Number of Args for Master = " + size.to_s
21 raise "Master needs 3 arguments" if size < 3
22 numberOfTask = Integer(args[0])
23 taskComputeSize = Float(args[1])
24 taskCommunicationSize = Float(args[2])
25 slaveCount = Integer(args[3])
27 #Creating & Sending Task
28 for i in 0..numberOfTask
30 task = RbTask.new("Task_" + i.to_s, taskComputeSize , taskCommunicationSize );
31 s_alias = "slave>>" + (i%slaveCount).to_s
32 puts "Master Sending "+ RbTask.name(task) + " to " + s_alias + " with Comput Size " + RbTask.compSize(task).to_s
33 RbTask.send(task,s_alias)
34 puts "Master Done Sending " +RbTask.name(task) + " to " + s_alias
38 # Sending Finalize Tasks
39 puts "Master: All tasks have been dispatched. Let's tell everybody the computation is over."
40 for i in 0..slaveCount-1
41 s_alias = "slave " + i.to_s
42 puts "Master Sending Finalize to " + s_alias
43 RbTask.send(RbTask.new("finalize",0,0),s_alias)
45 puts "Master : Everything's Done"