Class InterestBasedEnumerator
- java.lang.Object
-
- org.apache.sysds.resource.enumeration.Enumerator
-
- org.apache.sysds.resource.enumeration.InterestBasedEnumerator
-
public class InterestBasedEnumerator extends Enumerator
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.sysds.resource.enumeration.Enumerator
Enumerator.Builder, Enumerator.EnumerationStrategy, Enumerator.OptimizationStrategy
-
-
Field Summary
Fields Modifier and Type Field Description static doubleBROADCAST_MEMORY_FACTORstatic doubleCACHE_MEMORY_FACTORstatic doubleMEMORY_DELTA_FRACTIONstatic doubleMEMORY_FACTORstatic longMINIMUM_RELEVANT_MEM_ESTIMATEstatic booleanUSE_MEMORY_DELTAdifferent instance families can have slightly different memory characteristics and using memory delta allows not ignoring equivalent instances of different families (e.g.-
Fields inherited from class org.apache.sysds.resource.enumeration.Enumerator
COST_DELTA_FRACTION, DEFAULT_MAX_EXECUTORS, DEFAULT_MIN_EXECUTORS
-
-
Constructor Summary
Constructors Constructor Description InterestBasedEnumerator(Enumerator.Builder builder, boolean interestLargestEstimate, boolean fitDriverMemory, boolean interestBroadcastVars, boolean interestOutputCaching)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ArrayList<Integer>estimateRangeExecutors(int driverCores, long executorMemory, int executorCores)Estimates the minimum and maximum number of executors based on given VM instance characteristics, the enumeration strategy and the user-defined configurationsbooleanevaluateSingleNodeExecution(long driverMemory, int cores)static TreeSet<Long>getMemoryEstimates(Program currentProgram, boolean outputOnly, double memoryFactor)Extracts the memory estimates which original size is larger thanMINIMUM_RELEVANT_MEM_ESTIMATEbooleaninterestBroadcastVars()booleaninterestEstimatesInCPEnabled()booleaninterestLargestEstimateEnabled()booleaninterestOutputCachingEnabled()voidpreprocessing()Called once to enumerate the search space for VM instances for driver or executor nodes.-
Methods inherited from class org.apache.sysds.resource.enumeration.Enumerator
getCostsWeightFactor, getDriverSpace, getEnumStrategy, getExecutorSpace, getInstances, getMaxPrice, getMaxTime, getOptimalSolution, getOptStrategy, postprocessing, processing, setCostsWeightFactor, setCpuQuota, setDriverSpace, setExecutorSpace, setMinPrice, setMinTime, updateOptimalSolution
-
-
-
-
Field Detail
-
MINIMUM_RELEVANT_MEM_ESTIMATE
public static final long MINIMUM_RELEVANT_MEM_ESTIMATE
- See Also:
- Constant Field Values
-
USE_MEMORY_DELTA
public static final boolean USE_MEMORY_DELTA
different instance families can have slightly different memory characteristics and using memory delta allows not ignoring equivalent instances of different families (e.g. newer generation use 7.5/15.25/30.5/... GB memory instead of 8/16/32/...)- See Also:
- Constant Field Values
-
MEMORY_DELTA_FRACTION
public static final double MEMORY_DELTA_FRACTION
- See Also:
- Constant Field Values
-
MEMORY_FACTOR
public static final double MEMORY_FACTOR
-
BROADCAST_MEMORY_FACTOR
public static final double BROADCAST_MEMORY_FACTOR
- See Also:
- Constant Field Values
-
CACHE_MEMORY_FACTOR
public static final double CACHE_MEMORY_FACTOR
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
InterestBasedEnumerator
public InterestBasedEnumerator(Enumerator.Builder builder, boolean interestLargestEstimate, boolean fitDriverMemory, boolean interestBroadcastVars, boolean interestOutputCaching)
-
-
Method Detail
-
preprocessing
public void preprocessing()
Description copied from class:EnumeratorCalled once to enumerate the search space for VM instances for driver or executor nodes. These instances are being represented as- Specified by:
preprocessingin classEnumerator
-
evaluateSingleNodeExecution
public boolean evaluateSingleNodeExecution(long driverMemory, int cores)- Specified by:
evaluateSingleNodeExecutionin classEnumerator
-
estimateRangeExecutors
public ArrayList<Integer> estimateRangeExecutors(int driverCores, long executorMemory, int executorCores)
Description copied from class:EnumeratorEstimates the minimum and maximum number of executors based on given VM instance characteristics, the enumeration strategy and the user-defined configurations- Specified by:
estimateRangeExecutorsin classEnumerator- Parameters:
driverCores- CPU cores for the currently evaluated driver nodeexecutorMemory- memory of currently evaluated executor nodeexecutorCores- CPU cores of currently evaluated executor node- Returns:
- - [min, max]
-
getMemoryEstimates
public static TreeSet<Long> getMemoryEstimates(Program currentProgram, boolean outputOnly, double memoryFactor)
Extracts the memory estimates which original size is larger thanMINIMUM_RELEVANT_MEM_ESTIMATE- Parameters:
currentProgram- program for extracting the memory estimates fromoutputOnly-true- output estimate only;false- sum of input, intermediate and output estimatesmemoryFactor- factor for reverse scaling the estimates to avoid scaling the search space parameters representing the nodes' memory budget- Returns:
- memory estimates in ascending order ensured by the
TreeSetdata structure
-
interestEstimatesInCPEnabled
public boolean interestEstimatesInCPEnabled()
-
interestBroadcastVars
public boolean interestBroadcastVars()
-
interestLargestEstimateEnabled
public boolean interestLargestEstimateEnabled()
-
interestOutputCachingEnabled
public boolean interestOutputCachingEnabled()
-
-