- Timestamp:
- 02/04/13 04:22:09 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/trunk/src/schedframe/scheduling/policy/local/LocalManagementSystem.java
r767 r822 100 100 101 101 int tag = ev.get_tag(); 102 Object obj;103 102 104 103 switch (tag) { … … 130 129 131 130 case DCWormsTags.TASK_EXECUTION_FINISHED: 132 obj = ev.get_data(); 133 execTask = (ExecTask) obj; 131 execTask = (ExecTask) ev.get_data(); 134 132 if (execTask.getStatus() == DCWormsTags.INEXEC) { 135 133 … … 153 151 154 152 case DCWormsTags.TASK_REQUESTED_TIME_EXPIRED: 155 obj = ev.get_data(); 156 execTask = (Executable) obj; 153 execTask = (Executable) ev.get_data(); 157 154 if (pluginSupportsEvent(tag)) { 158 155 SchedulingEvent event = new TaskRequestedTimeExpiredEvent(execTask.getJobId(), execTask.getId()); … … 163 160 break; 164 161 165 case DCWormsTags.UPDATE :162 case DCWormsTags.UPDATE_PROCESSING: 166 163 updateProcessingTimes(ev); 164 break; 165 166 case DCWormsTags.PHASE_CHANGED: 167 execTask = (ExecTask) ev.get_data(); 168 //updatePhases(execTask); 167 169 break; 168 170 } … … 216 218 boolean allocationStatus = getAllocationManager().allocateResources(choosenResources); 217 219 if(allocationStatus == false){ 218 log.info("Task " + task.getJobId() + "_" + task.getId() + " requires more resources than is avail iable at this moment.");220 log.info("Task " + task.getJobId() + "_" + task.getId() + " requires more resources than is available at this moment."); 219 221 return; 220 222 } … … 241 243 e.printStackTrace(); 242 244 } 245 246 //updatePhases(exec); 243 247 scheduler.sendInternal(time, DCWormsTags.TASK_EXECUTION_FINISHED, exec); 244 248 … … 349 353 Executable exec = (Executable)task; 350 354 //exec.setCompletionPercentage(exec.getCompletionPercentage() + 100 * timeSpan/exec.getEstimatedDuration()); 351 exec.setCompletionPercentage(exec.getCompletionPercentage() + (100 - exec.getCompletionPercentage()) 355 exec.setCompletionPercentage(exec.getCompletionPercentage() + (100 - exec.getCompletionPercentage()) * timeSpan/(exec.getEstimatedDuration() - new DateTime().getMillis()/1000 + exec.getExecStartTime() + timeSpan)); 352 356 353 357 UsedResourcesList usedResourcesList = exec.getUsedResources(); … … 366 370 resource.handleEvent(new EnergyEvent(eventType, obj)); 367 371 } 372 /*try { 373 for (ComputingResource resource : resourceManager.getResourcesOfType(pes.get(0).getType())) { 374 resource.handleEvent(new EnergyEvent(eventType, obj)); 375 } 376 } catch (ResourceException e) { 377 // TODO Auto-generated catch block 378 e.printStackTrace(); 379 }*/ 368 380 } else { 369 381 ComputingResource resource = null; … … 418 430 } 419 431 } 432 433 434 /*protected void updatePhases(ExecTask execTask) { 435 updateProcessingProgress(); 436 437 if (execTask.getStatus() == DCWormsTags.INEXEC) { 438 Executable exec = (Executable)execTask; 439 440 double phaseLength = 0; 441 try{ 442 phaseLength = exec.getResourceConsumptionProfile().getResourceConsumption(exec.getCurrentPhase()).getResourceConsumptionTypeChoice().getPercentage()/100; 443 } catch(Exception e){ 444 ExecTaskFilter filter = new ExecTaskFilter(exec.getUniqueId(), DCWormsTags.TASK_EXECUTION_FINISHED); 445 scheduler.sim_cancel(filter, null); 446 double t = DoubleMath.subtract((exec.getExecStartTime() + exec.getEstimatedDuration()), (new DateTime().getMillis()/1000)); 447 scheduler.sendInternal(t, DCWormsTags.TASK_EXECUTION_FINISHED, execTask); 448 PEUnit peUnit = (PEUnit)exec.getUsedResources().getLast().getResourceUnits().get(StandardResourceUnitName.PE); 449 notifyComputingResources(peUnit, EnergyEventType.RESOURCE_UTILIZATION_CHANGED, exec); 450 } 451 if(phaseLength != 0){ 452 exec.setCurrentPhase(exec.getCurrentPhase() + 1); 453 ExecTaskFilter filter = new ExecTaskFilter(exec.getUniqueId(), DCWormsTags.PHASE_CHANGED); 454 scheduler.sim_cancel(filter, null); 455 scheduler.sendInternal(phaseLength * exec.getEstimatedDuration(), DCWormsTags.PHASE_CHANGED, execTask); 456 PEUnit peUnit = (PEUnit)exec.getUsedResources().getLast().getResourceUnits().get(StandardResourceUnitName.PE); 457 notifyComputingResources(peUnit, EnergyEventType.RESOURCE_UTILIZATION_CHANGED, exec); 458 } 459 System.out.println("===" + exec.getJobId() + ":" + phaseLength); 460 } 461 } */ 420 462 421 463 public double calculateTotalLoad(int size) {
Note: See TracChangeset
for help on using the changeset viewer.