PowerVmAllocationPolicyMigrationInterQuartileRange (cloudsim 3.1-SNAPSHOT API)

org.cloudbus.cloudsim.power

## Class PowerVmAllocationPolicyMigrationInterQuartileRange

- java.lang.Object
- - org.cloudbus.cloudsim.VmAllocationPolicy
  - - org.cloudbus.cloudsim.power.PowerVmAllocationPolicyAbstract
    - - org.cloudbus.cloudsim.power.PowerVmAllocationPolicyMigrationAbstract
      - - org.cloudbus.cloudsim.power.PowerVmAllocationPolicyMigrationInterQuartileRange

-     public class PowerVmAllocationPolicyMigrationInterQuartileRange
      extends PowerVmAllocationPolicyMigrationAbstract

  The Inter Quartile Range (IQR) VM allocation policy. If you are using any algorithms, policies or workload included in the power package, please cite the following paper: Anton Beloglazov, and Rajkumar Buyya, "Optimal Online Deterministic Algorithms and Adaptive Heuristics for Energy and Performance Efficient Dynamic Consolidation of Virtual Machines in Cloud Data Centers", Concurrency and Computation: Practice and Experience, ISSN: 1532-0626, Wiley Press, New York, USA, 2011, DOI: 10.1002/cpe.1867
  Since:
    CloudSim Toolkit 3.0
  Author:
    Anton Beloglazov

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `PowerVmAllocationPolicyMigrationInterQuartileRange(List<? extends Host> hostList, PowerVmSelectionPolicy vmSelectionPolicy, double safetyParameter, PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)` Instantiates a new power vm allocation policy migration mad.

    `PowerVmAllocationPolicyMigrationInterQuartileRange(List<? extends Host> hostList, PowerVmSelectionPolicy vmSelectionPolicy, double safetyParameter, PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy, double utilizationThreshold)`
    Instantiates a new power vm allocation policy migration mad.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `PowerVmAllocationPolicyMigrationAbstract` | `getFallbackVmAllocationPolicy()` Gets the fallback vm allocation policy.
    `protected double` | `getHostUtilizationIqr(PowerHostUtilizationHistory host)` Gets the host utilization iqr.
    `protected double` | `getSafetyParameter()` Gets the safety parameter.
    `protected boolean` | `isHostOverUtilized(PowerHost host)` Checks if is host over utilized.
    `void` | `setFallbackVmAllocationPolicy(PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)` Sets the fallback vm allocation policy.
    `protected void` | `setSafetyParameter(double safetyParameter)` Sets the safety parameter.

    - ### Methods inherited from class org.cloudbus.cloudsim.power.PowerVmAllocationPolicyMigrationAbstract

      `addHistoryEntry, areAllVmsMigratingOutOrAnyVmMigratingIn, extractHostListFromMigrationMap, findHostForVm, findHostForVm, getExecutionTimeHistoryHostSelection, getExecutionTimeHistoryTotal, getExecutionTimeHistoryVmReallocation, getExecutionTimeHistoryVmSelection, getMaxUtilizationAfterAllocation, getMetricHistory, getMigrationMapFromUnderUtilizedHosts, getNewVmPlacement, getNewVmPlacementFromUnderUtilizedHost, getOverUtilizedHosts, getPowerAfterAllocation, getSavedAllocation, getSwitchedOffHosts, getTimeHistory, getUnderUtilizedHost, getUtilizationHistory, getVmSelectionPolicy, getVmsToMigrateFromHosts, getVmsToMigrateFromUnderUtilizedHost, isHostOverUtilizedAfterAllocation, optimizeAllocation, printOverUtilizedHosts, restoreAllocation, saveAllocation, setVmSelectionPolicy`

    - ### Methods inherited from class org.cloudbus.cloudsim.power.PowerVmAllocationPolicyAbstract

      `allocateHostForVm, allocateHostForVm, deallocateHostForVm, getHost, getHost, getVmTable, TryDVFSEnableHost`

    - ### Methods inherited from class org.cloudbus.cloudsim.VmAllocationPolicy

      `getHostList, setHostList`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### PowerVmAllocationPolicyMigrationInterQuartileRange

          public PowerVmAllocationPolicyMigrationInterQuartileRange(List<? extends Host> hostList,
                                                            PowerVmSelectionPolicy vmSelectionPolicy,
                                                            double safetyParameter,
                                                            PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy,
                                                            double utilizationThreshold)

      Instantiates a new power vm allocation policy migration mad.
      Parameters:
        `hostList` - the host list
        `vmSelectionPolicy` - the vm selection policy
        `safetyParameter` - the safety parameter
        `utilizationThreshold` - the utilization threshold

    - #### PowerVmAllocationPolicyMigrationInterQuartileRange

          public PowerVmAllocationPolicyMigrationInterQuartileRange(List<? extends Host> hostList,
                                                            PowerVmSelectionPolicy vmSelectionPolicy,
                                                            double safetyParameter,
                                                            PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)

      Instantiates a new power vm allocation policy migration mad.
      Parameters:
        `hostList` - the host list
        `vmSelectionPolicy` - the vm selection policy
        `safetyParameter` - the safety parameter

  - ### Method Detail

    - #### isHostOverUtilized

          protected boolean isHostOverUtilized(PowerHost host)

      Checks if is host over utilized.
      Specified by:
        `isHostOverUtilized` in class `PowerVmAllocationPolicyMigrationAbstract`
      Parameters:
        `_host` - the _host
      Returns:
        true, if is host over utilized

    - #### getHostUtilizationIqr

          protected double getHostUtilizationIqr(PowerHostUtilizationHistory host)
                                          throws IllegalArgumentException

      Gets the host utilization iqr.
      Parameters:
        `host` - the host
      Returns:
        the host utilization iqr
      Throws:
        `IllegalArgumentException`

    - #### setSafetyParameter

          protected void setSafetyParameter(double safetyParameter)

      Sets the safety parameter.
      Parameters:
        `safetyParameter` - the new safety parameter

    - #### getSafetyParameter

          protected double getSafetyParameter()

      Gets the safety parameter.
      Returns:
        the safety parameter

    - #### setFallbackVmAllocationPolicy

          public void setFallbackVmAllocationPolicy(PowerVmAllocationPolicyMigrationAbstract fallbackVmAllocationPolicy)

      Sets the fallback vm allocation policy.
      Parameters:
        `fallbackVmAllocationPolicy` - the new fallback vm allocation policy

    - #### getFallbackVmAllocationPolicy

          public PowerVmAllocationPolicyMigrationAbstract getFallbackVmAllocationPolicy()

      Gets the fallback vm allocation policy.
      Returns:
        the fallback vm allocation policy

Copyright © 2013 The Cloud Computing and Distributed Systems (CLOUDS) Laboratory, The University of Melbourne. All Rights Reserved.