public class ExecutionContext extends Object
Constructor and Description |
---|
ExecutionContext(LocalVariableMap vars) |
Modifier and Type | Method and Description |
---|---|
MatrixObject |
allocateGPUMatrixObject(String varName,
long numRows,
long numCols)
Allocates the
GPUObject for a given LOPS Variable (eg. |
void |
cleanupCacheableData(CacheableData<?> mo) |
void |
cleanupDataObject(Data dat) |
boolean |
containsVariable(CPOperand operand) |
boolean |
containsVariable(String name) |
static CacheableData<?> |
createCacheableData(CacheBlock cb) |
static FrameObject |
createFrameObject(FrameBlock fb) |
static MatrixObject |
createMatrixObject(MatrixBlock mb) |
CacheableData<?> |
getCacheableData(CPOperand input) |
CacheableData<?> |
getCacheableData(String varname) |
DataCharacteristics |
getDataCharacteristics(String varname) |
Pair<MatrixObject,Boolean> |
getDenseMatrixOutputForGPUInstruction(String varName,
long numRows,
long numCols)
Allocates a dense matrix on the GPU (for output)
|
FrameBlock |
getFrameInput(String varName)
Pins a frame variable into memory and returns the internal frame block.
|
FrameObject |
getFrameObject(CPOperand input) |
FrameObject |
getFrameObject(String varname) |
GPUContext |
getGPUContext(int index)
Get the i-th GPUContext
|
List<GPUContext> |
getGPUContexts()
Gets the list of GPUContexts
|
Lineage |
getLineage() |
LineageItem |
getLineageItem(CPOperand input) |
ListObject |
getListObject(CPOperand input) |
ListObject |
getListObject(String name) |
MatrixBlock |
getMatrixInput(String varName)
Pins a matrix variable into memory and returns the internal matrix block.
|
MatrixObject |
getMatrixInputForGPUInstruction(String varName,
String opcode) |
List<MatrixBlock> |
getMatrixInputs(CPOperand[] inputs) |
List<MatrixBlock> |
getMatrixInputs(CPOperand[] inputs,
boolean includeList) |
MatrixObject |
getMatrixObject(CPOperand input) |
MatrixObject |
getMatrixObject(String varname) |
MetaData |
getMetaData(String varname) |
int |
getNumGPUContexts()
Gets the number of GPUContexts
|
LineageItem |
getOrCreateLineageItem(CPOperand input) |
Program |
getProgram() |
ScalarObject |
getScalarInput(CPOperand input) |
ScalarObject |
getScalarInput(String name,
Types.ValueType vt,
boolean isLiteral) |
List<ScalarObject> |
getScalarInputs(CPOperand[] inputs) |
Pair<MatrixObject,Boolean> |
getSparseMatrixOutputForGPUInstruction(String varName,
long numRows,
long numCols,
long nnz)
Allocates a sparse matrix in CSR format on the GPU.
|
TensorBlock |
getTensorInput(String varName)
Pins a matrix variable into memory and returns the internal matrix block.
|
TensorObject |
getTensorObject(String varname) |
long |
getTID() |
Data |
getVariable(CPOperand operand) |
Data |
getVariable(String name) |
LocalVariableMap |
getVariables() |
ArrayList<String> |
getVarList()
NOTE: No order guaranteed, so keep same list for pin and unpin.
|
ArrayList<String> |
getVarListPartitioned()
NOTE: No order guaranteed, so keep same list for pin and unpin.
|
boolean |
isAutoCreateVars() |
boolean |
isFrameObject(String varname) |
boolean |
isMatrixObject(String varname) |
boolean[] |
pinVariables(List<String> varList)
Pin a given list of variables i.e., set the "clean up" state in
corresponding matrix objects, so that the cached data inside these
objects is not cleared and the corresponding HDFS files are not
deleted (through rmvar instructions).
|
void |
releaseCacheableData(String varname) |
void |
releaseFrameInput(String varName)
Unpins a currently pinned frame variable.
|
void |
releaseMatrixInput(String... varNames) |
void |
releaseMatrixInput(String varName)
Unpins a currently pinned matrix variable and update fine-grained statistics.
|
void |
releaseMatrixInputForGPUInstruction(String varName) |
void |
releaseMatrixInputs(CPOperand[] inputs) |
void |
releaseMatrixInputs(CPOperand[] inputs,
boolean includeList) |
void |
releaseMatrixOutputForGPUInstruction(String varName) |
void |
releaseTensorInput(String... varNames) |
void |
releaseTensorInput(String varName) |
Data |
removeVariable(String name) |
void |
setAutoCreateVars(boolean flag) |
void |
setFrameOutput(String varName,
FrameBlock outputData) |
void |
setGPUContexts(List<GPUContext> gpuContexts)
Sets the list of GPUContexts
|
void |
setLineage(Lineage lineage) |
void |
setMatrixOutput(String varName,
MatrixBlock outputData) |
void |
setMatrixOutput(String varName,
MatrixBlock outputData,
MatrixObject.UpdateType flag) |
void |
setMetaData(String varName,
long nrows,
long ncols) |
void |
setMetaData(String fname,
MetaData md) |
void |
setProgram(Program prog) |
void |
setScalarOutput(String varName,
ScalarObject so) |
void |
setTensorOutput(String varName,
TensorBlock outputData) |
void |
setTID(long tid) |
void |
setVariable(String name,
Data val) |
void |
setVariables(LocalVariableMap vars) |
String |
toString() |
void |
traceLineage(Instruction inst) |
void |
unpinVariables(List<String> varList,
boolean[] varsState)
Unpin the a given list of variables by setting their "cleanup" status
to the values specified by
varsStats . |
public ExecutionContext(LocalVariableMap vars)
public Program getProgram()
public void setProgram(Program prog)
public LocalVariableMap getVariables()
public void setVariables(LocalVariableMap vars)
public Lineage getLineage()
public void setLineage(Lineage lineage)
public boolean isAutoCreateVars()
public void setAutoCreateVars(boolean flag)
public void setTID(long tid)
public long getTID()
public GPUContext getGPUContext(int index)
index
- index of the GPUContextpublic void setGPUContexts(List<GPUContext> gpuContexts)
gpuContexts
- a collection of GPUContextspublic List<GPUContext> getGPUContexts()
public int getNumGPUContexts()
public boolean containsVariable(CPOperand operand)
public boolean containsVariable(String name)
public boolean isMatrixObject(String varname)
public MatrixObject getMatrixObject(CPOperand input)
public MatrixObject getMatrixObject(String varname)
public TensorObject getTensorObject(String varname)
public boolean isFrameObject(String varname)
public FrameObject getFrameObject(CPOperand input)
public FrameObject getFrameObject(String varname)
public CacheableData<?> getCacheableData(CPOperand input)
public CacheableData<?> getCacheableData(String varname)
public void releaseCacheableData(String varname)
public DataCharacteristics getDataCharacteristics(String varname)
public MatrixBlock getMatrixInput(String varName)
varName
- variable namepublic TensorBlock getTensorInput(String varName)
varName
- variable namepublic void setMetaData(String varName, long nrows, long ncols)
public Pair<MatrixObject,Boolean> getDenseMatrixOutputForGPUInstruction(String varName, long numRows, long numCols)
varName
- name of the output matrix (known by this ExecutionContext
)numRows
- number of rows of matrix objectnumCols
- number of columns of matrix objectMatrixObject
and a boolean indicating whether a cuda memory allocation took place (as opposed to the space already being allocated)public Pair<MatrixObject,Boolean> getSparseMatrixOutputForGPUInstruction(String varName, long numRows, long numCols, long nnz)
varName
- variable namenumRows
- number of rows of matrix objectnumCols
- number of columns of matrix objectnnz
- number of non zeroespublic MatrixObject allocateGPUMatrixObject(String varName, long numRows, long numCols)
GPUObject
for a given LOPS Variable (eg. _mVar3)varName
- variable namenumRows
- number of rows of matrix objectnumCols
- number of columns of matrix objectpublic MatrixObject getMatrixInputForGPUInstruction(String varName, String opcode)
public void releaseMatrixInput(String varName)
varName
- variable namepublic void releaseMatrixInput(String... varNames)
public void releaseMatrixInputForGPUInstruction(String varName)
public FrameBlock getFrameInput(String varName)
varName
- variable namepublic void releaseFrameInput(String varName)
varName
- variable namepublic void releaseTensorInput(String varName)
public void releaseTensorInput(String... varNames)
public ScalarObject getScalarInput(CPOperand input)
public ScalarObject getScalarInput(String name, Types.ValueType vt, boolean isLiteral)
public void setScalarOutput(String varName, ScalarObject so)
public ListObject getListObject(CPOperand input)
public ListObject getListObject(String name)
public void releaseMatrixOutputForGPUInstruction(String varName)
public void setMatrixOutput(String varName, MatrixBlock outputData)
public void setMatrixOutput(String varName, MatrixBlock outputData, MatrixObject.UpdateType flag)
public void setTensorOutput(String varName, TensorBlock outputData)
public void setFrameOutput(String varName, FrameBlock outputData)
public static CacheableData<?> createCacheableData(CacheBlock cb)
public static MatrixObject createMatrixObject(MatrixBlock mb)
public static FrameObject createFrameObject(FrameBlock fb)
public List<MatrixBlock> getMatrixInputs(CPOperand[] inputs)
public List<MatrixBlock> getMatrixInputs(CPOperand[] inputs, boolean includeList)
public List<ScalarObject> getScalarInputs(CPOperand[] inputs)
public void releaseMatrixInputs(CPOperand[] inputs)
public void releaseMatrixInputs(CPOperand[] inputs, boolean includeList)
public boolean[] pinVariables(List<String> varList)
varList
- variable listpublic void unpinVariables(List<String> varList, boolean[] varsState)
varsStats
.
Typical usage:
oldStatus = pinVariables(varList);
...
unpinVariables(varList, oldStatus);
i.e., a call to unpinVariables() is preceded by pinVariables().varList
- variable listvarsState
- variable statepublic ArrayList<String> getVarList()
public ArrayList<String> getVarListPartitioned()
public final void cleanupDataObject(Data dat)
public void cleanupCacheableData(CacheableData<?> mo)
public void traceLineage(Instruction inst)
public LineageItem getLineageItem(CPOperand input)
public LineageItem getOrCreateLineageItem(CPOperand input)
Copyright © 2020 The Apache Software Foundation. All rights reserved.