Ignore:
Timestamp:
06/26/14 14:18:01 (11 years ago)
Author:
wojtekp
Message:
 
Location:
DCWoRMS/branches/coolemall/src/schedframe/scheduling
Files:
10 edited
5 moved

Legend:

Unmodified
Added
Removed
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/GridResourceDiscovery.java

    r493 r1396  
    2020import schedframe.resources.units.ResourceUnitName; 
    2121import schedframe.scheduling.manager.resources.ResourceManager; 
    22 import schedframe.scheduling.plugin.grid.ModuleType; 
     22import schedframe.scheduling.plugin.ModuleType; 
    2323import schedframe.scheduling.plugin.grid.ResourceDiscovery; 
    2424import schedframe.scheduling.tasks.requirements.AbstractResourceRequirements; 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/ResourceItem.java

    r1362 r1396  
    22 
    33import java.util.HashSet; 
     4import java.util.LinkedList; 
     5import java.util.List; 
    46import java.util.Map; 
    57import java.util.Set; 
    68 
     9import schedframe.resources.computing.ComputingResource; 
     10import schedframe.resources.units.ProcessingElements; 
    711import schedframe.resources.units.ResourceUnit; 
    812import schedframe.resources.units.ResourceUnitName; 
     13import schedframe.resources.units.StandardResourceUnitName; 
    914 
    10 public class ResourceHistoryItem { 
     15public class ResourceItem { 
    1116 
    1217        protected Map<ResourceUnitName, ResourceUnit> usedResources; 
    1318        protected Set<String> visitedResources; 
    1419 
    15         public ResourceHistoryItem(Map<ResourceUnitName, ResourceUnit> usedResources){ 
     20        public ResourceItem(Map<ResourceUnitName, ResourceUnit> usedResources){ 
    1621                this.usedResources = usedResources; 
    1722                this.visitedResources = new HashSet<String>(); 
     23                saveResourceNames(); 
    1824        } 
    1925         
     
    2228        } 
    2329         
    24         public void trackResource(String resName){ 
    25                 visitedResources.add(resName); 
    26         } 
    27          
    28         public Set<String> getVisitedResources(){ 
     30        public Set<String> getResourceNames(){ 
    2931                return visitedResources; 
    3032        } 
    3133         
     34        private void saveResourceNames(){ 
     35                ProcessingElements pes = (ProcessingElements) usedResources.get(StandardResourceUnitName.PE); 
     36                for (ComputingResource resource : pes) { 
     37 
     38                        LinkedList<ComputingResource> toExamine = new LinkedList<ComputingResource>(); 
     39                        toExamine.push(resource); 
     40 
     41                        while (!toExamine.isEmpty()) { 
     42                                ComputingResource compResource = toExamine.pop(); 
     43                                List<ComputingResource> resources = compResource.getChildren(); 
     44                                if(resources.isEmpty()){ 
     45                                        if(!visitedResources.contains(compResource.getFullName())){ 
     46                                                visitedResources.add(compResource.getFullName()); 
     47                                        } 
     48                                } else { 
     49                                        for (int i = 0; i < resources.size(); i++) { 
     50                                                ComputingResource resourceChild = resources.get(i); 
     51                                                toExamine.addLast(resourceChild); 
     52                                        } 
     53                                } 
     54                        } 
     55                } 
     56        } 
    3257} 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/resources/LocalResourceManager.java

    r1392 r1396  
    306306                        for(ResourceUnitName resUnitName: resources.keySet()){ 
    307307                                ResourceUnit resUnit = resources.get(resUnitName); 
    308                                 if(resUnit.getName().getName().equals(StandardResourceUnitName.PE.getName())){ 
     308                                if(resUnit.getName().getLabel().equals(StandardResourceUnitName.PE.getLabel())){ 
    309309                                        ProcessingElements pe = (ProcessingElements)resUnit; 
    310310                                        for(ComputingResource cr: pe){ 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/manager/tasks/JobRegistryImpl.java

    r1362 r1396  
    5353                        for (ExecTask task: executables) { 
    5454                                if (task.getStatus() == status) { 
    55                                         Set<String> visitedResource = task.getAllocatedResources().getLast().getVisitedResources(); 
     55                                        Set<String> visitedResource = task.getAllocatedResources().getLast().getResourceNames(); 
    5656                                        for(String res: visitedResource){ 
    5757                                                if(res.contains(context)){ 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/Module.java

    r477 r1396  
    1 package schedframe.scheduling.plugin.grid; 
     1package schedframe.scheduling.plugin; 
    22 
    33import java.util.Properties; 
    4  
    5 import eduni.simjava.Sim_event; 
    64 
    75import schedframe.exceptions.ModuleException; 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleList.java

    r477 r1396  
    1 package schedframe.scheduling.plugin.grid; 
     1package schedframe.scheduling.plugin; 
    22 
    33import java.util.List; 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleListImpl.java

    r477 r1396  
    1 package schedframe.scheduling.plugin.grid; 
     1package schedframe.scheduling.plugin; 
    22 
    33import java.util.ArrayList; 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/ModuleType.java

    r777 r1396  
    1 package schedframe.scheduling.plugin.grid; 
     1package schedframe.scheduling.plugin; 
    22 
    3 import schedframe.StaticResourceLoadCalendar; 
     3 
     4import schedframe.scheduling.plugin.grid.ResourceDiscovery; 
    45import test.EventManager; 
    56 
     
    1314 
    1415        RESOURCE_DISCOVERY("Resource_discovery", ResourceDiscovery.class), 
    15         RESOURCE_CALENDAR("Resource calendar", StaticResourceLoadCalendar.class), 
    1616        EVENT_MANAGER("Event manager", EventManager.class); 
    1717        //DATA_MANAGER("Data Manager", DataManager.class), 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/SchedulingPlugin.java

    r516 r1396  
    77import schedframe.scheduling.manager.tasks.JobRegistry; 
    88import schedframe.scheduling.plan.SchedulingPlanInterface; 
    9 import schedframe.scheduling.plugin.grid.ModuleList; 
    109import schedframe.scheduling.queue.TaskQueueList; 
    1110 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/grid/ResourceDiscovery.java

    r477 r1396  
    66import schedframe.scheduling.SchedulerDescription; 
    77import schedframe.scheduling.SecurityContext; 
     8import schedframe.scheduling.plugin.Module; 
    89import schedframe.scheduling.tasks.requirements.AbstractResourceRequirements; 
    910 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/plugin/local/LocalSchedulingPlugin.java

    r515 r1396  
    55import schedframe.scheduling.manager.resources.ResourceManager; 
    66import schedframe.scheduling.manager.tasks.JobRegistry; 
     7import schedframe.scheduling.plugin.ModuleList; 
    78import schedframe.scheduling.plugin.SchedulingPlugin; 
    8 import schedframe.scheduling.plugin.grid.ModuleList; 
    99import schedframe.scheduling.queue.TaskQueueList; 
    1010 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/AbstractManagementSystem.java

    r1377 r1396  
    2323import schedframe.scheduling.plan.AllocationInterface; 
    2424import schedframe.scheduling.plan.SchedulingPlanInterface; 
     25import schedframe.scheduling.plugin.ModuleList; 
    2526import schedframe.scheduling.plugin.SchedulingPlugin; 
    2627import schedframe.scheduling.plugin.estimation.ExecutionTimeEstimationPlugin; 
    27 import schedframe.scheduling.plugin.grid.ModuleList; 
    2828import schedframe.scheduling.manager.resources.ResourceAllocation; 
    2929import schedframe.scheduling.queue.TaskQueue; 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/global/GridBroker.java

    r1385 r1396  
    1212import schedframe.scheduling.Scheduler; 
    1313import schedframe.scheduling.manager.resources.ManagedResources; 
     14import schedframe.scheduling.plugin.ModuleListImpl; 
    1415import schedframe.scheduling.plugin.SchedulingPlugin; 
    1516import schedframe.scheduling.plugin.estimation.ExecutionTimeEstimationPlugin; 
    16 import schedframe.scheduling.plugin.grid.ModuleListImpl; 
    1717import schedframe.scheduling.queue.TaskQueueList; 
    1818 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/policy/local/LocalManagementSystem.java

    r1392 r1396  
    44import java.util.HashMap; 
    55import java.util.Iterator; 
    6 import java.util.LinkedList; 
    76import java.util.List; 
    87import java.util.Map; 
    9 import java.util.Set; 
    108 
    119import org.apache.commons.logging.Log; 
     
    3331import schedframe.resources.units.StandardResourceUnitName; 
    3432import schedframe.scheduling.ExecutionHistoryItem; 
    35 import schedframe.scheduling.ResourceHistoryItem; 
     33import schedframe.scheduling.ResourceItem; 
    3634import schedframe.scheduling.Scheduler; 
    3735import schedframe.scheduling.TaskList; 
     
    4442import schedframe.scheduling.plan.ScheduledTaskInterface; 
    4543import schedframe.scheduling.plan.SchedulingPlanInterface; 
     44import schedframe.scheduling.plugin.ModuleListImpl; 
    4645import schedframe.scheduling.plugin.SchedulingPlugin; 
    4746import schedframe.scheduling.plugin.estimation.ExecutionTimeEstimationPlugin; 
    48 import schedframe.scheduling.plugin.grid.ModuleListImpl; 
    4947import schedframe.scheduling.policy.AbstractManagementSystem; 
    5048import schedframe.scheduling.queue.TaskQueueList; 
     
    5654import schedframe.scheduling.tasks.WorkloadUnit; 
    5755import simulator.DCWormsConstants; 
    58 import simulator.stats.GSSAccumulator; 
     56import simulator.stats.DCwormsAccumulator; 
    5957import simulator.utils.DoubleMath; 
    6058import dcworms.schedframe.scheduling.ExecTask; 
     
    382380 
    383381                saveExecutionHistory(exec, exec.getCompletionPercentage(), phaseDuration); 
    384                 if(exec.getResourceConsumptionProfile().isLast()){ 
     382                if(exec.getExecutionProfile().isLast()){ 
    385383                        scheduler.sendInternal(phaseDuration, DCWormsTags.TASK_EXECUTION_FINISHED, execTask);; 
    386384                } else { 
     
    451449                        ExecTask task = iter.next(); 
    452450                        Executable exec = (Executable)task; 
    453                         ExecutionHistoryItem execHistItem = exec.getExecHistory().getLast(); 
     451                        ExecutionHistoryItem execHistItem = exec.getExecutionHistory().getLast(); 
    454452                        //System.out.println("--- upadteProgressX: " + Sim_system.sim_clock() ); 
    455453                        //System.out.println("taskId: " + exec.getId() + "; completion percentage: " + exec.getCompletionPercentage() + "; timespan: " + timeSpan + "; estimatedDuration: " +  execHistItem.getCompletionPercentage()); 
     
    496494                                        execTask, choosenResources, exec.getCompletionPercentage())).intValue(); 
    497495 
    498                         ExecutionHistoryItem execHistItem = exec.getExecHistory().getLast(); 
     496                        ExecutionHistoryItem execHistItem = exec.getExecutionHistory().getLast(); 
    499497                        double lastTimeStamp = execHistItem.getTimeStamp().getMillis()/1000; 
    500498                        if(DoubleMath.subtract((lastTimeStamp + execHistItem.getEstimatedDuration()), (new DateTime().getMillis()/1000 + phaseDuration)) == 0.0){ 
     
    508506                        saveExecutionHistory(exec, exec.getCompletionPercentage(), phaseDuration); 
    509507                         
    510                         if(exec.getResourceConsumptionProfile().isLast()){ 
     508                        if(exec.getExecutionProfile().isLast()){ 
    511509                                ExecTaskFilter filter = new ExecTaskFilter(exec.getUniqueId(), DCWormsTags.TASK_EXECUTION_FINISHED); 
    512510                                scheduler.sim_cancel(filter, null); 
     
    542540                        saveExecutionHistory(exec, exec.getCompletionPercentage(), phaseDuration); 
    543541                         
    544                         if(exec.getResourceConsumptionProfile().isLast()){ 
     542                        if(exec.getExecutionProfile().isLast()){ 
    545543                                scheduler.sendInternal(phaseDuration, DCWormsTags.TASK_EXECUTION_FINISHED, execTask); 
    546544                        } else { 
     
    555553        public double calculateTotalLoad() { 
    556554 
    557                 GSSAccumulator loadAcc = new GSSAccumulator(); 
     555                DCwormsAccumulator loadAcc = new DCwormsAccumulator(); 
    558556                try { 
    559557                        for(ComputingResource compRes: getResourceManager().getResourcesOfType(StandardResourceType.Node)){ 
     
    718716                boolean allocationStatus = getAllocationManager().allocateResources(choosenResources, exclusive); 
    719717                if(allocationStatus){ 
    720                         ResourceHistoryItem resourceHistoryItem = new ResourceHistoryItem(choosenResources); 
     718                        ResourceItem resourceHistoryItem = new ResourceItem(choosenResources); 
    721719                        exec.addAllocatedResources(resourceHistoryItem); 
    722                         saveResourceHistory(exec); 
    723720                        return true; 
    724721                } 
     
    726723        } 
    727724         
    728         private void saveResourceHistory(Executable exec){ 
    729                 ProcessingElements pes = (ProcessingElements) exec.getAllocatedResources().getLast().getResourceUnits().get(StandardResourceUnitName.PE); 
    730                 for (ComputingResource resource : pes) { 
    731  
    732                         LinkedList<ComputingResource> toExamine = new LinkedList<ComputingResource>(); 
    733                         toExamine.push(resource); 
    734  
    735                         while (!toExamine.isEmpty()) { 
    736                                 ComputingResource compResource = toExamine.pop(); 
    737                                 List<ComputingResource> resources = compResource.getChildren(); 
    738                                 if(resources.isEmpty()){ 
    739                                         Set<String> visitedResources = exec.getAllocatedResources().getLast().getVisitedResources(); 
    740                                         if(!visitedResources.contains(compResource.getFullName())){ 
    741                                                 exec.getAllocatedResources().getLast().trackResource(compResource.getFullName()); 
    742                                         } 
    743                                 } else { 
    744                                         for (int i = 0; i < resources.size(); i++) { 
    745                                                 ComputingResource resourceChild = resources.get(i); 
    746                                                 toExamine.addLast(resourceChild); 
    747                                         } 
    748                                 } 
    749                         } 
    750                 } 
    751         } 
     725 
    752726         
    753727} 
  • DCWoRMS/branches/coolemall/src/schedframe/scheduling/tasks/Job.java

    r1374 r1396  
    11package schedframe.scheduling.tasks; 
    2  
    3  
    4 import org.qcg.broker.schemas.resreqs.ParentType; 
    5 import org.qcg.broker.schemas.resreqs.ResourceRequirements; 
    6 import org.qcg.broker.schemas.resreqs.Workflow; 
    7 import org.qcg.broker.schemas.resreqs.types.TaskStatesName; 
    82 
    93 
     
    159 
    1610import org.joda.time.DateTime; 
     11import org.qcg.broker.schemas.resreqs.ResourceRequirements; 
    1712 
    1813import qcg.shared.constants.BrokerConstants; 
    19  
    2014import schedframe.scheduling.WorkloadUnitHandler; 
    2115import schedframe.scheduling.manager.tasks.JobRegistryImpl; 
     
    210204        } 
    211205         
    212         private List<Task> getReadyTasks() throws NoSuchFieldException{ 
    213                  
    214                 List<Task> availableTasks = new ArrayList<Task>(); 
    215                 int size = tasks.size(); 
    216                  
    217                 for(int i = 0; i < size; i++){ 
    218                         int parCnt; 
    219                         int previousTaskSucceedCnt = 0; 
    220                         Task task = tasks.get(i); 
    221                         if(task.getStatus() != (int)BrokerConstants.TASK_STATUS_UNSUBMITTED) 
    222                                 continue; 
    223                         //the following procedure supports only one nested structure 
    224                         Workflow w = task.getDescription().getWorkflow(); 
    225                         if (w == null){ 
    226                                 availableTasks.add(task); 
    227                                 continue; 
    228                         } 
    229                         if(w.getAnd() != null) { 
    230                                 parCnt = w.getAnd().getParentOpTypeItemCount(); 
    231                                 if(parCnt == 0){ 
    232                                         availableTasks.add(task); 
    233                                 }else 
    234                                 { 
    235                                         for(int j = 0; j < parCnt; j++){ 
    236                                                 ParentType par = w.getAnd().getParentOpTypeItem(j).getParent(); 
    237                                                 if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){ 
    238                                                         if(!getTask(par.getContent()).isFinished()){ 
    239                                                                 break; 
    240                                                         } 
    241                                                 } 
    242                                                 previousTaskSucceedCnt++; 
    243                                         } 
    244  
    245                                         if(previousTaskSucceedCnt == parCnt) 
    246                                                 availableTasks.add(task); 
    247                                 } 
    248                         }  
    249                         else if(w.getOr() != null) { 
    250                                 parCnt = w.getOr().getParentOpTypeItemCount(); 
    251                                 if(parCnt == 0){ 
    252                                         availableTasks.add(task); 
    253                                 } 
    254                                 else{ 
    255                                         for(int j = 0; j < parCnt; j++){ 
    256                                                 ParentType par = w.getOr().getParentOpTypeItem(j).getParent(); 
    257                                                 if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){ 
    258                                                         if(!getTask(par.getContent()).isFinished()){ 
    259                                                                 continue; 
    260                                                         } 
    261                                                 } 
    262                                                 previousTaskSucceedCnt++; 
    263                                         } 
    264  
    265                                         if(previousTaskSucceedCnt > 0) 
    266                                                 availableTasks.add(task); 
    267                                 } 
    268                         } 
    269                         else { 
    270                                 parCnt = w.getParentCount(); 
    271                                 if(parCnt == 0){ 
    272                                         availableTasks.add(task); 
    273                                 }else{ 
    274                                         for(int j = 0; j < parCnt; j++){ 
    275                                                 ParentType par = w.getParent(j); 
    276                                                 if(par.getTriggerState().compareTo(TaskStatesName.FINISHED) == 0){ 
    277                                                         if(!getTask(par.getContent()).isFinished()){ 
    278                                                                 continue; 
    279                                                         } 
    280                                                 } 
    281                                                 previousTaskSucceedCnt++; 
    282                                         } 
    283  
    284                                         if(previousTaskSucceedCnt == parCnt) 
    285                                                 availableTasks.add(task); 
    286                                 } 
    287                         } 
    288                 }                
    289                 return availableTasks; 
    290         } 
    291          
    292206} 
Note: See TracChangeset for help on using the changeset viewer.