6 class Master < RbProcess
14 info("Hello From Master")
18 # msg_main : that function that will be executed when Running Simulation
19 def msg_main(args) # args is an array Containin' arguments for function master
20 info("Hello From Master")
22 info ("Number of Args for Master = " + size.to_s)
27 raise "Master needs 3 arguments" if size < 3
28 numberOfTask = Integer(args[0])
29 taskComputeSize = Float(args[1])
30 taskCommunicationSize = Float(args[2])
31 slaveCount = Integer(args[3])
33 #Creating & Sending Task
34 for i in 0..numberOfTask-1
37 task = RbTask.new("Task_"+ i.to_s, taskComputeSize , taskCommunicationSize );
38 s_alias = "slave>>" + (i%slaveCount).to_s
39 info("Master Sending "+ RbTask.name(task) + " to " + s_alias + " with Comput Size " + RbTask.compSize(task).to_s)
40 RbTask.send(task,s_alias)
41 info("Master Done Sending " +RbTask.name(task) + " to " + s_alias)
42 # sameTask = RbTask.receive(s_alias)
43 # puts "Master Receiving its Own Task"
46 # Sending Finalize Tasks
47 info ("Master: All tasks have been dispatched. Let's tell everybody the computation is over.")
48 for i in 0..slaveCount-1
49 s_alias = "slave " + i.to_s
50 info ("Master Sending Finalize to " + s_alias)
51 RbTask.send(RbTask.new("finalize",0,0),s_alias)
53 info("Master : Everything's Done")