Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Stuks When a process ( Slave ) Tries to Recieve a Task...
[simgrid.git] / src / bindings / ruby / Master.rb
index c72321f..eafe15d 100644 (file)
@@ -3,24 +3,25 @@ require 'RubyProcess'
 
 include MSG
 
-class Master < RbProcess
-  
-  
-  def initialize()
+class Master < RbProcess  
+  def initialize2()
     super()
-    p RbHost.number()
-      
-    
   end
  
   
-  def run(args) # args is an array Containin' arguments for function master
-   puts "Hey From Ruby...I'm The Master" 
-   size = args.size
-   puts "Number of Args for Master = " + size.to_s
-   
+  #for Testing
+  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
+    info ("Number of Args for Master = " + size.to_s)
    for i in 0..size-1
-      puts  args[i]
+      info(args[i])
    end
    
    raise "Master needs 3 arguments" if size < 3 
@@ -30,22 +31,26 @@ class Master < RbProcess
    slaveCount = Integer(args[3]) 
    
    #Creating & Sending Task
-   for i in 0..numberOfTask
+   for i in 0..numberOfTask-1
+  
      
-     task = RbTask.new("Task_" + i.to_s, taskComputeSize , taskCommunicationSize );
-     s_alias = "slave " + (i%slaveCount).to_s
-     puts "Master Sending "+ RbTask.name(task) + " to " + s_alias + " with Comput Size " + RbTask.compSize(task).to_s 
+     task = RbTask.new("Task_"+ i.to_s, taskComputeSize , taskCommunicationSize );
+     s_alias = "slave>>" + (i%slaveCount).to_s
+     info("Master Sending "+ RbTask.name(task) + " to " + s_alias + " with Comput Size " + RbTask.compSize(task).to_s)
      RbTask.send(task,s_alias)
-     puts "Master Done Sending " +RbTask.name(task) + " to " + s_alias
+     info("Master Done Sending " +RbTask.name(task) + " to " + s_alias)
+#       sameTask = RbTask.receive(s_alias)
+#      puts "Master Receiving its Own Task"
    end
   
    # Sending Finalize Tasks
-   puts "Master: All tasks have been dispatched. Let's tell everybody the computation is over."
+   info ("Master: All tasks have been dispatched. Let's tell everybody the computation is over.")
    for i in 0..slaveCount-1
      s_alias = "slave " + i.to_s
-     puts "Master Sending Finalize to " + s_alias
+     info ("Master Sending Finalize to " + s_alias)
      RbTask.send(RbTask.new("finalize",0,0),s_alias)
    end
-   puts "Master : Everything's Done"
+   info("Master : Everything's Done")
   end  
-end
+  
+end
\ No newline at end of file