Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
95e38a8c43c5ab2eec90cf871e4e618d217e75f0
[simgrid.git] / src / bindings / ruby / Master_old.rb
1 require 'msg'
2 require 'RubyProcess'
3
4 include MSG
5
6 class Master < RbProcess  
7   def initialize()
8     super()
9   end
10
11   def msg_main2(args)
12   info("Hello From Master")    
13   end
14   
15   # msg_main : that function that will be executed when Running Simulation
16   def msg_main(args) # args is an array Containin' arguments for function master
17     info("Hello From Master") 
18     size = args.size
19     puts "Number of Args for Master = " + size.to_s
20    for i in 0..size-1
21       puts  args[i]
22    end
23    
24    raise "Master needs 3 arguments" if size < 3 
25    channel = 0
26    numberOfTask = Integer(args[0]) 
27    taskComputeSize = Float(args[1])
28    taskCommunicationSize = Float(args[2])
29    slaveCount = args.size - 3
30    
31    slaves = Array.new
32    todo = Array.new
33    
34    
35    #Creating & Sending Task
36    for i in 0..numberOfTask-1
37   
38      todo[i] = RbTask.new("Task_"+ i.to_s, taskComputeSize , taskCommunicationSize );
39      
40    end
41    
42    for i in 3..args.size-1
43      
44      slaves[i-3] = RbHost.getByName(args[i])
45    end
46      
47    
48    for i in 0..numberOfTask-1
49      p "Sending ( Put )  Task .." + i.to_s+ " to Slave " + RbHost.name(slaves[i%slaveCount])
50      RbTask.put(todo[i],slaves[i%slaveCount])
51    end
52   
53    # Sending Finalize Tasks
54    p "Sending Finalize Task Later !!"
55    puts "Master : Everything's Done"
56   end  
57   
58 end