Package org.apache.sysds.hops
Class FunctionOp
- java.lang.Object
- 
- org.apache.sysds.hops.Hop
- 
- org.apache.sysds.hops.FunctionOp
 
 
- 
- All Implemented Interfaces:
- ParseInfo
 
 public class FunctionOp extends Hop This FunctionOp represents the call to a DML-bodied or external function. Note: Currently, we support expressions in function arguments along with function calls in expressions with single outputs, leaving multiple outputs handling as it is.
- 
- 
Nested Class SummaryNested Classes Modifier and Type Class Description static classFunctionOp.FunctionType
 - 
Field SummaryFields Modifier and Type Field Description static StringOPCODE- 
Fields inherited from class org.apache.sysds.hops.Hop_beginColumn, _beginLine, _endColumn, _endLine, _filename, _text, CPThreshold
 
- 
 - 
Constructor SummaryConstructors Constructor Description FunctionOp(FunctionOp.FunctionType type, String fnamespace, String fname, String[] inputNames, List<Hop> inputs, String[] outputNames, boolean singleOut)FunctionOp(FunctionOp.FunctionType type, String fnamespace, String fname, String[] inputNames, List<Hop> inputs, String[] outputNames, boolean singleOut, boolean pseudo)FunctionOp(FunctionOp.FunctionType type, String fnamespace, String fname, String[] inputNames, List<Hop> inputs, String[] outputNames, ArrayList<Hop> outputHops)
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanallowsAllExecTypes()voidcheckArity()FunctionOps may have any number of inputs.Objectclone()booleancompare(Hop that)voidcomputeMemEstimate(MemoTable memo)Computes the estimate of memory required to store the input/output of this hop in memory.LopconstructLops()booleancontainsOutput(String varname)StringgetFunctionKey()StringgetFunctionName()StringgetFunctionNamespace()FunctionOp.FunctionTypegetFunctionType()String[]getInputVariableNames()StringgetOpString()ArrayList<Hop>getOutputs()String[]getOutputVariableNames()booleanisGPUEnabled()In memory-based optimizer mode (see OptimizerUtils.isMemoryBasedOptLevel()), the exectype is determined by checking this method as well as memory budget of this Hop.booleanisPseudoFunctionCall()voidrefreshSizeInformation()Update the output size information for this hop.voidsetCallOptimized(boolean opt)voidsetFunctionName(String fname)voidsetFunctionNamespace(String fnamespace)voidsetInputVariableNames(String[] names)StringtoString()- 
Methods inherited from class org.apache.sysds.hops.HopactivatePrefetch, addAllInputs, addInput, checkAndSetForcedPlatform, checkAndSetInvalidCPDimsAndSize, clearMemEstimate, colsKnown, compressedSize, computeBoundsInformation, computeBoundsInformation, computeBoundsInformation, computeSizeInformation, computeSizeInformation, computeSizeInformation, constructAndSetLopsDataFlowProperties, createOffsetLop, deactivatePrefetch, dimsKnown, dimsKnown, dimsKnownAny, federatedCostInitialized, getBeginColumn, getBeginLine, getBlocksize, getCompressedSize, getDataCharacteristics, getDataType, getDim, getDim1, getDim2, getEndColumn, getEndLine, getExecType, getFederatedCost, getFederatedOutput, getFilename, getForcedExecType, getHopID, getInput, getInput, getInputMemEstimate, getInputMemEstimate, getInputOutputSize, getIntermediateMemEstimate, getLength, getLops, getMemEstimate, getName, getNnz, getOutputMemEstimate, getOutputMemEstimate, getParent, getPrivacy, getRepetitions, getSparsity, getSpBroadcastSize, getText, getUpdateType, getValueType, hasCompressedInput, hasFederatedOutput, hasLocalOutput, hasMatrixInputWithDifferentBlocksizes, hasValidCPDimsAndSize, isCompressedOutput, isFederated, isFederatedDataOp, isMatrix, isMemEstimated, isOutputEmptyBlocks, isRequiredDecompression, isScalar, isTransposeSafe, isVisited, prefetchActivated, printErrorLocation, refreshColsParameterInformation, refreshColsParameterInformation, refreshMemEstimates, refreshRowsParameterInformation, refreshRowsParameterInformation, requiresCheckpoint, requiresCompression, requiresLineageCaching, requiresReblock, requiresRecompile, resetExecType, resetFederatedCost, resetRecompilationFlag, resetRecompilationFlag, resetVisitStatus, resetVisitStatus, resetVisitStatus, resetVisitStatusForced, rowsKnown, setBeginColumn, setBeginLine, setBlocksize, setCompressedOutput, setCompressedSize, setDataType, setDim, setDim1, setDim2, setEndColumn, setEndLine, setExecType, setFederatedCost, setFederatedOutput, setFilename, setForcedExecType, setLops, setMemEstimate, setName, setNnz, setOutputEmptyBlocks, setParseInfo, setPrivacy, setRequiresCheckpoint, setRequiresCompression, setRequiresCompression, setRequiresDeCompression, setRequiresLineageCaching, setRequiresReblock, setRequiresRecompile, setText, setUpdateType, setValueType, setVisited, setVisited, someInputFederated, updateLopFedOut, updateLopFedOut, updateRepetitionEstimates
 
- 
 
- 
- 
- 
Field Detail- 
OPCODEpublic static final String OPCODE - See Also:
- Constant Field Values
 
 
- 
 - 
Constructor Detail- 
FunctionOppublic FunctionOp(FunctionOp.FunctionType type, String fnamespace, String fname, String[] inputNames, List<Hop> inputs, String[] outputNames, ArrayList<Hop> outputHops) 
 - 
FunctionOppublic FunctionOp(FunctionOp.FunctionType type, String fnamespace, String fname, String[] inputNames, List<Hop> inputs, String[] outputNames, boolean singleOut) 
 
- 
 - 
Method Detail- 
checkAritypublic void checkArity() FunctionOps may have any number of inputs.- Specified by:
- checkArityin class- Hop
 
 - 
getFunctionKeypublic String getFunctionKey() 
 - 
getFunctionNamespacepublic String getFunctionNamespace() 
 - 
getFunctionNamepublic String getFunctionName() 
 - 
setFunctionNamepublic void setFunctionName(String fname) 
 - 
setFunctionNamespacepublic void setFunctionNamespace(String fnamespace) 
 - 
setInputVariableNamespublic void setInputVariableNames(String[] names) 
 - 
getInputVariableNamespublic String[] getInputVariableNames() 
 - 
getOutputVariableNamespublic String[] getOutputVariableNames() 
 - 
containsOutputpublic boolean containsOutput(String varname) 
 - 
getFunctionTypepublic FunctionOp.FunctionType getFunctionType() 
 - 
setCallOptimizedpublic void setCallOptimized(boolean opt) 
 - 
isPseudoFunctionCallpublic boolean isPseudoFunctionCall() 
 - 
allowsAllExecTypespublic boolean allowsAllExecTypes() - Specified by:
- allowsAllExecTypesin class- Hop
 
 - 
computeMemEstimatepublic void computeMemEstimate(MemoTable memo) Description copied from class:HopComputes the estimate of memory required to store the input/output of this hop in memory. This is the default implementation (orchestration of hop-specific implementation) that should suffice for most hops. If a hop requires more control, this method should be overwritten with awareness of (1) output estimates, and (2) propagation of worst-case matrix characteristics (dimensions, sparsity). TODO remove memo table and, on constructor refresh, inference in refresh, single compute mem, maybe general computeMemEstimate, flags to indicate if estimate or not.- Overrides:
- computeMemEstimatein class- Hop
- Parameters:
- memo- memory table
 
 - 
isGPUEnabledpublic 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 class- Hop
- Returns:
- true if the Hop is eligible for GPU Exectype.
 
 - 
constructLopspublic Lop constructLops() - Specified by:
- constructLopsin class- Hop
 
 - 
getOpStringpublic String getOpString() - Specified by:
- getOpStringin class- Hop
 
 - 
refreshSizeInformationpublic void refreshSizeInformation() Description copied from class:HopUpdate the output size information for this hop.- Specified by:
- refreshSizeInformationin class- Hop
 
 - 
clonepublic Object clone() throws CloneNotSupportedException - Specified by:
- clonein class- Hop
- Throws:
- CloneNotSupportedException
 
 
- 
 
-