Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7117 48e7efb5...
[simgrid.git] / src / bindings / ruby / Master_old.rb
diff --git a/src/bindings/ruby/Master_old.rb b/src/bindings/ruby/Master_old.rb
new file mode 100644 (file)
index 0000000..95e38a8
--- /dev/null
@@ -0,0 +1,58 @@
+require 'msg'
+require 'RubyProcess'
+
+include MSG
+
+class Master < RbProcess  
+  def initialize()
+    super()
+  end
+
+  def msg_main2(args)
+  info("Hello From Master")    
+  end
+  
+  # msg_main : that function that will be executed when Running Simulation
+  def msg_main(args) # args is an array Containin' arguments for function master
+    info("Hello From Master") 
+    size = args.size
+    puts "Number of Args for Master = " + size.to_s
+   for i in 0..size-1
+      puts  args[i]
+   end
+   
+   raise "Master needs 3 arguments" if size < 3 
+   channel = 0
+   numberOfTask = Integer(args[0]) 
+   taskComputeSize = Float(args[1])
+   taskCommunicationSize = Float(args[2])
+   slaveCount = args.size - 3
+   
+   slaves = Array.new
+   todo = Array.new
+   
+   
+   #Creating & Sending Task
+   for i in 0..numberOfTask-1
+  
+     todo[i] = RbTask.new("Task_"+ i.to_s, taskComputeSize , taskCommunicationSize );
+     
+   end
+   
+   for i in 3..args.size-1
+     
+     slaves[i-3] = RbHost.getByName(args[i])
+   end
+     
+   
+   for i in 0..numberOfTask-1
+     p "Sending ( Put )  Task .." + i.to_s+ " to Slave " + RbHost.name(slaves[i%slaveCount])
+     RbTask.put(todo[i],slaves[i%slaveCount])
+   end
+  
+   # Sending Finalize Tasks
+   p "Sending Finalize Task Later !!"
+   puts "Master : Everything's Done"
+  end  
+  
+end
\ No newline at end of file