6 class Master < RbProcess
17 def run(args) # args is an array Containin' arguments for function master
18 puts "Hey From Ruby...I'm The Master"
20 puts "Number of Args for Master = " + size.to_s
26 raise "Master needs 3 arguments" if size < 3
27 numberOfTask = Integer(args[0])
28 taskComputeSize = Float(args[1])
29 taskCommunicationSize = Float(args[2])
30 slaveCount = Integer(args[3])
32 #Creating & Sending Task
33 for i in 0..numberOfTask
35 task = RbTask.new("Task_" + i.to_s, taskComputeSize , taskCommunicationSize );
36 s_alias = "slave " + (i%slaveCount).to_s
37 puts "Master Sending "+ RbTask.name(task) + " to " + s_alias + " with Comput Size " + RbTask.compSize(task).to_s
38 RbTask.send(task,s_alias)
39 puts "Master Done Sending " +RbTask.name(task) + " to " + s_alias
42 # Sending Finalize Tasks
43 puts "Master: All tasks have been dispatched. Let's tell everybody the computation is over."
44 for i in 0..slaveCount-1
45 s_alias = "slave " + i.to_s
46 puts "Master Sending Finalize to " + s_alias
47 RbTask.send(RbTask.new("finalize",0,0),s_alias)
49 puts "Master : Everything's Done"