Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
The following script currently fails due to incorrect hop construction of sd(Xi) at language level:
X = rand(rows=1000, cols=100); R = matrix(0, ncol(X), 4) parfor(i in 1:ncol(X), log=DEBUG) { Xi = X[,i]; R[i,1] = mean(Xi); # mean R[i,2] = sd(Xi); # standard deviation R[i,3] = moment(Xi,3)/(sd(Xi)^3); # skewness R[i,4] = moment(Xi,4)/(sd(Xi)^4)-3; # kurtosis }
The stacktrace is as follows
Caused by: org.apache.sysml.runtime.DMLRuntimeException: Variable '_Var1703' does not exist in the symbol table.
at org.apache.sysml.runtime.controlprogram.context.ExecutionContext.getMatrixObject(ExecutionContext.java:186)
at org.apache.sysml.runtime.controlprogram.context.ExecutionContext.setMatrixOutput(ExecutionContext.java:451)
at org.apache.sysml.runtime.instructions.cp.MatrixBuiltinCPInstruction.processInstruction(MatrixBuiltinCPInstruction.java:59)
at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:286)
... 6 more
which is cause by the following instruction which has an output type MATRIX although it should be SCALAR.
--------CP uavar _mVar3.MATRIX.DOUBLE _mVar5.MATRIX.DOUBLE 24
Interestingly, this only shows up when there are multiple consumers with matrix and scalar data types.