Changeset 1051
- Timestamp:
- 05/27/13 14:27:46 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
DCWoRMS/branches/coolemall/src/example/localplugin/coolemall/recs/RECS_FCFS_Random_SP.java
r916 r1051 1 1 package example.localplugin.coolemall.recs; 2 2 3 import java.util.ArrayList; 3 4 import java.util.List; 4 5 import java.util.Random; … … 7 8 import schedframe.exceptions.ResourceException; 8 9 import schedframe.resources.UserResourceType; 9 import schedframe.resources.computing.ComputingResource; 10 import schedframe.resources.computing.ComputingNode; 11 import schedframe.resources.computing.profiles.energy.airthroughput.StandardAirThroughputStateName; 10 12 import schedframe.scheduling.manager.resources.ClusterResourceManager; 11 13 import schedframe.scheduling.manager.resources.ResourceManager; … … 43 45 TaskQueue q = queues.get(0); 44 46 47 List<ComputingNode> notSelectedNodes = null; 48 try { 49 notSelectedNodes = (List<ComputingNode>) resourceManager.getResourcesOfType(new UserResourceType("Node")); 50 } catch (ResourceException e) { 51 // TODO Auto-generated catch block 52 e.printStackTrace(); 53 } 45 54 // check all tasks in queue 46 55 for (int i = 0; i < q.size(); i++) { … … 48 57 // if status of the tasks in READY 49 58 if (task.getStatus() == DCWormsTags.READY) { 50 51 String nodeName = chooseRandomProvider(resourceManager); 52 if (nodeName != null) { 53 addToSchedulingPlan(plan, task, nodeName); 59 ComputingNode node = chooseRandomProvider(resourceManager); 60 if (node != null) { 61 node.getAirThroughputInterface().setAirThroughputState(StandardAirThroughputStateName.FAN_ON); 62 notSelectedNodes.remove(node); 63 addToSchedulingPlan(plan, task, node.getName()); 54 64 } 55 65 } 56 66 } 67 adjustOtherFans(notSelectedNodes); 57 68 break; 58 69 } … … 61 72 62 73 @SuppressWarnings("unchecked") 63 private StringchooseRandomProvider(ClusterResourceManager resourceManager) {64 List<Computing Resource> nodes = null;74 private ComputingNode chooseRandomProvider(ClusterResourceManager resourceManager) { 75 List<ComputingNode> nodes = null; 65 76 try { 66 nodes = (List<Computing Resource>) resourceManager.getResourcesOfType(new UserResourceType("Node"));77 nodes = (List<ComputingNode>) resourceManager.getResourcesOfType(new UserResourceType("Node")); 67 78 } catch (ResourceException e) { 68 79 // TODO Auto-generated catch block 69 80 e.printStackTrace(); 70 81 } 82 nodes = filterNodes(nodes); 71 83 int nodeIdx = rand.nextInt(nodes.size()); 72 return nodes.get(nodeIdx) .getName();84 return nodes.get(nodeIdx); 73 85 } 74 86 87 private List<ComputingNode> filterNodes(List<ComputingNode> nodes){ 88 List<ComputingNode> filteredNodes = new ArrayList<ComputingNode>(); 89 for (ComputingNode node : nodes) { 90 if(node.getFreeProcessors().size() > 0) 91 filteredNodes.add(node); 92 } 93 94 return filteredNodes; 95 } 96 private void adjustOtherFans(List<ComputingNode> nodes) { 97 for (ComputingNode node : nodes) { 98 if (node.getProcessors().size() == node.getFreeProcessorsNumber()) { 99 node.getAirThroughputInterface().setAirThroughputState(StandardAirThroughputStateName.FAN_OFF); 100 } else { 101 node.getAirThroughputInterface().setAirThroughputState(StandardAirThroughputStateName.FAN_ON); 102 } 103 } 104 } 75 105 } 76 106
Note: See TracChangeset
for help on using the changeset viewer.