Changeset 257


Ignore:
Timestamp:
04/12/12 14:52:29 (13 years ago)
Author:
piontek
Message:
 
Location:
xssim/branches/tpiontek/src
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • xssim/branches/tpiontek/src/example/localplugin/FCFSPreferedRandomClusterLocalPlugin.java

    r256 r257  
    3131        private boolean init = true; 
    3232         
     33        int scenario = 1; 
     34        String prefered = null; 
     35         
    3336        public FCFSPreferedRandomClusterLocalPlugin() { 
    3437                rand = new Random(5); 
     
    3740        public SchedulingPlanInterfaceNew schedule(SchedulingEvent event, QueueList queues, JobRegistryInterface jobRegistry, 
    3841                         ResourceManagerInterface resManager, ModuleList modules) { 
    39                  
    40                 int scenario = 1; 
    4142                 
    4243                ClusterResourceManager resourceManager = (ClusterResourceManager) resManager; 
     
    7172                                if (task.getStatus() == Gridlet.READY) { 
    7273                                         
    73                                         ComputingNode node = chooseRandomProvider(resourceManager, task); 
     74                                        ComputingNode node = chooseRandomProvider(resourceManager, ResourceStatus.FREE, task); 
    7475                                         
    7576                                        if (node != null) { 
     
    8485                                                case 1: break; 
    8586                                                case 2: 
    86                                                         findSuitableNodes( "", getCpuRequest(task), ResourceStatus.UNAVAILABLE, resourceManager.getComputingNodes()); 
     87                                                        //ComputingNode node = chooseRandomProvider(resourceManager, ResourceStatus.UNAVAILABLE, task); 
    8788                                                        break; 
    8889                                                } 
    8990                                        } 
    90                                          
    91                                          
    9291                                } 
    9392                        } 
     
    156155        } 
    157156         
    158         private ComputingNode chooseRandomProvider(ClusterResourceManager resourceManager, TaskInterface<?> task) { 
     157        private ComputingNode chooseRandomProvider(ClusterResourceManager resourceManager, ResourceStatus status, TaskInterface<?> task) { 
    159158                 
    160159                int cpuRequest = getCpuRequest(task); 
     
    164163                String prefered = null; 
    165164                 
    166                 nodes = findSuitableNodes(prefered, cpuRequest, ResourceStatus.FREE, resourceManager.getComputingNodes()); 
     165                nodes = findSuitableNodes(prefered, cpuRequest, status, resourceManager.getComputingNodes()); 
    167166                if( nodes.size() > 0) 
    168167                {        
     
    179178                if( prefered != null) 
    180179                {        
    181                         if( prefered.equals("A")) 
    182                                 prefered = "B"; 
    183                         else 
    184                                 prefered = "A"; 
    185                          
    186                         nodes = findSuitableNodes(prefered, cpuRequest, ResourceStatus.FREE, resourceManager.getComputingNodes()); 
     180                        nodes = findSuitableNodes( getUnprefered(), cpuRequest, status, resourceManager.getComputingNodes()); 
    187181                        if( nodes.size() > 0) 
    188182                        {        
     
    214208                return cpus.subList(0, cpuRequest); 
    215209        } 
     210         
     211        private String getUnprefered() 
     212        { 
     213                if( prefered.equals("A")) 
     214                        return "B"; 
     215                 
     216                if( prefered.equals("B")) 
     217                        return "A"; 
     218                 
     219                return null; 
     220        } 
    216221 
    217222} 
  • xssim/branches/tpiontek/src/test/rewolucja/energy/profile/PState.java

    r104 r257  
    77        protected double voltage; 
    88        protected double power; 
     9        protected int speed; 
    910 
    10         public PState(PStateType name, double frequency, double voltage, double power) { 
     11        public PState(PStateType name, double frequency, double voltage, double power, int speed) { 
    1112                super(); 
    1213                this.name = name; 
     
    2829                return power; 
    2930        } 
     31        public int getSpeed() { 
     32                return speed; 
     33        } 
    3034} 
  • xssim/branches/tpiontek/src/test/rewolucja/energy/profile/implementation/CPUPowerProfile.java

    r252 r257  
    111111                if(newPState != null) 
    112112                { 
    113                         double factor = newPState.getFrequency() / pState.getFrequency(); 
    114                          
    115113                        pState = newPState; 
    116114                        CpuSpeed speed = (CpuSpeed )cpu.getResourceCharacteristic().getResourceUnits().get(ResourceParameterName.CPUSPEED).get(0); 
    117                         speed.setAmount( (int)(speed.getAmount() * factor)); 
     115                        speed.setAmount( newPState.getSpeed()); 
    118116                         
    119117                        cpu.handleEvent(new EnergyEvent(EnergyEventType.FREQUENCY_CHANGED, cpu.getName())); 
     
    132130                static { 
    133131                        Map<PStateType, PState> pStatesMap = new HashMap<PStateType, PState>(); 
    134                         pStatesMap.put(PStateType.P0, new PState(PStateType.P0, 3000, 0, 350)); 
    135                         pStatesMap.put(PStateType.P1, new PState(PStateType.P1, 2660, 0, 343)); 
    136                         pStatesMap.put(PStateType.P2, new PState(PStateType.P2, 2330, 0, 337)); 
    137                         pStatesMap.put(PStateType.P3, new PState(PStateType.P3, 2000, 0, 330)); 
     132                        pStatesMap.put(PStateType.P0, new PState(PStateType.P0, 3000, 0, 350, 1000)); 
     133                        pStatesMap.put(PStateType.P1, new PState(PStateType.P1, 2660, 0, 343, 1000)); 
     134                        pStatesMap.put(PStateType.P2, new PState(PStateType.P2, 2330, 0, 337, 1000)); 
     135                        pStatesMap.put(PStateType.P3, new PState(PStateType.P3, 2000, 0, 330, 1000)); 
    138136                        pStates = Collections.unmodifiableMap(pStatesMap); 
    139137                } 
  • xssim/branches/tpiontek/src/test/rewolucja/energy/profile/implementation/CPU_A_PowerProfile.java

    r241 r257  
    2323                static { 
    2424                        Map<PStateType, PState> pStatesMap = new HashMap<PStateType, PState>(); 
    25                         pStatesMap.put(PStateType.P0, new PState(PStateType.P0, 3000, 0, 14)); 
    26                         pStatesMap.put(PStateType.P1, new PState(PStateType.P1, 2660, 0, 12)); 
    27                         pStatesMap.put(PStateType.P2, new PState(PStateType.P2, 2330, 0, 10)); 
    28                         pStatesMap.put(PStateType.P3, new PState(PStateType.P3, 2000, 0, 8)); 
     25                        pStatesMap.put(PStateType.P0, new PState(PStateType.P0, 3000, 0, 14, 2000)); 
     26                        pStatesMap.put(PStateType.P1, new PState(PStateType.P1, 2660, 0, 12, 1777)); 
     27                        pStatesMap.put(PStateType.P2, new PState(PStateType.P2, 2330, 0, 10, 1553)); 
     28                        pStatesMap.put(PStateType.P3, new PState(PStateType.P3, 2000, 0, 8, 1333)); 
    2929                        pStates = Collections.unmodifiableMap(pStatesMap); 
    3030                } 
  • xssim/branches/tpiontek/src/test/rewolucja/energy/profile/implementation/CPU_B_PowerProfile.java

    r252 r257  
    2323                static { 
    2424                        Map<PStateType, PState> pStatesMap = new HashMap<PStateType, PState>(); 
    25                         pStatesMap.put(PStateType.P0, new PState(PStateType.P0, 2200, 0, 20)); 
    26                         pStatesMap.put(PStateType.P1, new PState(PStateType.P1, 2000, 0, 17)); 
    27                         pStatesMap.put(PStateType.P2, new PState(PStateType.P2, 1800, 0, 16)); 
    28                         pStatesMap.put(PStateType.P3, new PState(PStateType.P3, 1000, 0, 10)); 
     25                        pStatesMap.put(PStateType.P0, new PState(PStateType.P0, 2200, 0, 20, 1000)); 
     26                        pStatesMap.put(PStateType.P1, new PState(PStateType.P1, 2000, 0, 17, 909)); 
     27                        pStatesMap.put(PStateType.P2, new PState(PStateType.P2, 1800, 0, 16, 818)); 
     28                        pStatesMap.put(PStateType.P3, new PState(PStateType.P3, 1000, 0, 10, 454)); 
    2929                        pStates = Collections.unmodifiableMap(pStatesMap); 
    3030                } 
  • xssim/branches/tpiontek/src/test/rewolucja/resources/ProcessingElements.java

    r141 r257  
    5151                avgSpeed = avgSpeed / peCnt; 
    5252                int speed = (int) Math.round(avgSpeed); 
     53                 
    5354                return speed; 
    5455        } 
Note: See TracChangeset for help on using the changeset viewer.