4 # Still using the old method to run :
5 #>> make ( to generate dag.so)
6 #>> ruby example.rb ( to run )
7 # FIXME if using valgrind , you will get Some 'Invalid Read of Size" When Calling rb_task_schedule '
18 DAG.createEnvironment("platform.xml")
21 taskA = DAG::Task.new("Tache A",10)
22 taskB = DAG::Task.new("Tache B",40)
23 taskC = DAG::Task.new("Tache C",30)
24 taskD = DAG::Task.new("Tache D",60)
27 DAG::Task::addDependency(taskB,taskA)
28 DAG::Task::addDependency(taskC,taskA)
29 DAG::Task::addDependency(taskD,taskB)
30 DAG::Task::addDependency(taskD,taskC)
34 workstation_number = 2
35 workstation_list = DAG::Workstation.getList()
36 w1 = workstation_list[0]
37 w2 = workstation_list[1]
39 p "workstation 1 : "+ w1.name
40 p "workstation 2 : "+ w2.name
42 computation_amount = Array.new()
43 communication_amount = Array.new()
45 computation_amount << 2000000 << 1000000
46 communication_amount << 200000 << 300000
53 DAG::Task.schedule(taskA,workstation_number,workstation_list,computation_amount,communication_amount,rate)
54 DAG::Task.schedule(taskB,workstation_number,workstation_list,computation_amount,communication_amount,rate)
55 DAG::Task.schedule(taskC,workstation_number,workstation_list,computation_amount,communication_amount,rate)
56 DAG::Task.schedule(taskD,workstation_number,workstation_list,computation_amount,communication_amount,rate)
59 changed_tasks = Array.new()
60 changed_tasks = DAG::Task.simulate(-1.0)
63 for i in 0..changed_tasks.size-1
64 puts "Task "+ changed_tasks[i].name + " Started at " + changed_tasks[i].startTime.to_s + " has been done at "+ changed_tasks[i].finishTime.to_s
68 puts "Everything's Done ... Bye!!"