Package org.apache.sysds.hops
Class BinaryOp
java.lang.Object
org.apache.sysds.hops.Hop
org.apache.sysds.hops.MultiThreadedHop
org.apache.sysds.hops.BinaryOp
- All Implemented Interfaces:
ParseInfo
Binary (cell operations): aij + bij
Properties:
Symbol: *, -, +, ...
2 Operands
Semantic: align indices (sort), then perform operation
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic enum -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final doublestatic BinaryOp.AppendMethodstatic BinaryOp.MMBinaryMethodFields inherited from class org.apache.sysds.hops.Hop
_beginColumn, _beginLine, _endColumn, _endLine, _filename, _text, CPThreshold -
Constructor Summary
ConstructorsConstructorDescriptionBinaryOp(String l, Types.DataType dt, Types.ValueType vt, Types.OpOp2 o, Hop inp1, Hop inp2) BinaryOp(String l, Types.DataType dt, Types.ValueType vt, Types.OpOp2 o, Hop inp1, Hop inp2, boolean outer) -
Method Summary
Modifier and TypeMethodDescriptionbooleanclone()booleanstatic LopconstructSPAppendLop(Hop left, Hop right, Types.DataType dt, Types.ValueType vt, boolean cbind, Hop current) static doublefootprintInMapper(long m1_dim1, long m1_dim2, long m2_dim1, long m2_dim2, long m1_rpb, long m1_cpb) Estimates the memory footprint of MapMult operation depending on which input is put into distributed cache.getOp()booleanIn memory-based optimizer mode (see OptimizerUtils.isMemoryBasedOptLevel()), the exectype is determined by checking this method as well as memory budget of this Hop.booleanbooleanbooleanisOuter()booleanvoidUpdate the output size information for this hop.static booleanrequiresReplication(Hop left, Hop right) voidsetOp(Types.OpOp2 iop) voidsetOuterVectorOperation(boolean flag) booleanMethods inherited from class org.apache.sysds.hops.MultiThreadedHop
getMaxNumThreads, setMaxNumThreadsMethods inherited from class org.apache.sysds.hops.Hop
activatePrefetch, addAllInputs, addInput, checkAndSetForcedPlatform, checkAndSetInvalidCPDimsAndSize, clearMemEstimate, colsKnown, compressedSize, computeBoundsInformation, computeBoundsInformation, computeBoundsInformation, computeMemEstimate, computeSizeInformation, computeSizeInformation, computeSizeInformation, constructAndSetLopsDataFlowProperties, createOffsetLop, deactivatePrefetch, dimsKnown, dimsKnown, dimsKnownAny, getBeginColumn, getBeginLine, getBlocksize, getCompressedSize, getDataCharacteristics, getDataType, getDim, getDim1, getDim2, getEndColumn, getEndLine, getExecType, getFederatedOutput, getFilename, getForcedExecType, getHopID, getInput, getInput, getInputMemEstimate, getInputMemEstimate, getInputOutputSize, getIntermediateMemEstimate, getLength, getLops, getMemEstimate, getName, getNnz, getOutputMemEstimate, getOutputMemEstimate, getParent, getSparsity, getSpBroadcastSize, getText, getUpdateType, getValueType, hasCompressedInput, hasFederatedOutput, hasLocalOutput, hasValidCPDimsAndSize, isCompressedOutput, isFederated, isFederatedDataOp, isMatrix, isMemEstimated, isOutputEmptyBlocks, isRequiredDecompression, isScalar, isTransposeSafe, isVisited, prefetchActivated, printErrorLocation, refreshColsParameterInformation, refreshColsParameterInformation, refreshMemEstimates, refreshRowsParameterInformation, refreshRowsParameterInformation, requiresCheckpoint, requiresCompression, requiresLineageCaching, requiresReblock, requiresRecompile, resetExecType, resetRecompilationFlag, resetRecompilationFlag, resetVisitStatus, resetVisitStatus, resetVisitStatus, resetVisitStatusForced, rowsKnown, setBeginColumn, setBeginLine, setBlocksize, setCompressedOutput, setCompressedSize, setDataType, setDim, setDim1, setDim2, setEndColumn, setEndLine, setExecType, setFederatedOutput, setFilename, setForcedExecType, setLops, setMemEstimate, setName, setNnz, setOutputEmptyBlocks, setParseInfo, setRequiresCheckpoint, setRequiresCompression, setRequiresCompression, setRequiresDeCompression, setRequiresLineageCaching, setRequiresReblock, setRequiresRecompile, setText, setUpdateType, setValueType, setVisited, setVisited, someInputFederated, toString, updateLopFedOut, updateLopFedOut
-
Field Details
-
APPEND_MEM_MULTIPLIER
public static final double APPEND_MEM_MULTIPLIER- See Also:
-
FORCED_APPEND_METHOD
-
FORCED_BINARY_METHOD
-
-
Constructor Details
-
BinaryOp
-
BinaryOp
public BinaryOp(String l, Types.DataType dt, Types.ValueType vt, Types.OpOp2 o, Hop inp1, Hop inp2, boolean outer)
-
-
Method Details
-
getOp
-
setOp
-
setOuterVectorOperation
public void setOuterVectorOperation(boolean flag) -
isOuter
public boolean isOuter() -
isInplace
public boolean isInplace() -
isGPUEnabled
public boolean isGPUEnabled()Description copied from class:HopIn memory-based optimizer mode (see OptimizerUtils.isMemoryBasedOptLevel()), the exectype is determined by checking this method as well as memory budget of this Hop. Please see findExecTypeByMemEstimate for more detail. This method is necessary because not all operator are supported efficiently on GPU (for example: operations on frames and scalar as well as operations such as table).- Specified by:
isGPUEnabledin classHop- Returns:
- true if the Hop is eligible for GPU Exectype.
-
isMultiThreadedOpType
public boolean isMultiThreadedOpType()- Specified by:
isMultiThreadedOpTypein classMultiThreadedHop
-
constructLops
- Specified by:
constructLopsin classHop
-
getOpString
- Specified by:
getOpStringin classHop
-
allowsAllExecTypes
public boolean allowsAllExecTypes()- Specified by:
allowsAllExecTypesin classHop
-
constructSPAppendLop
public static Lop constructSPAppendLop(Hop left, Hop right, Types.DataType dt, Types.ValueType vt, boolean cbind, Hop current) -
footprintInMapper
public static double footprintInMapper(long m1_dim1, long m1_dim2, long m2_dim1, long m2_dim2, long m1_rpb, long m1_cpb) Estimates the memory footprint of MapMult operation depending on which input is put into distributed cache. This function is called byoptFindAppendMethod()to decide the execution strategy, as well as by piggybacking to decide the number of Map-side instructions to put into a single GMR job.- Parameters:
m1_dim1- ?m1_dim2- ?m2_dim1- ?m2_dim2- ?m1_rpb- ?m1_cpb- ?- Returns:
- memory footprint estimate
-
requiresReplication
-
refreshSizeInformation
public void refreshSizeInformation()Description copied from class:HopUpdate the output size information for this hop.- Specified by:
refreshSizeInformationin classHop
-
clone
- Specified by:
clonein classHop- Throws:
CloneNotSupportedException
-
compare
-
supportsMatrixScalarOperations
public boolean supportsMatrixScalarOperations() -
isPPredOperation
public boolean isPPredOperation() -
getComplementPPredOperation
-