You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@systemml.apache.org by "Felix Schüler (JIRA)" <ji...@apache.org> on 2016/12/09 23:54:58 UTC
[jira] [Created] (SYSTEMML-1150) Incorrect dimension mismatch when
indexing with loop-variable
Felix Schüler created SYSTEMML-1150:
---------------------------------------
Summary: Incorrect dimension mismatch when indexing with loop-variable
Key: SYSTEMML-1150
URL: https://issues.apache.org/jira/browse/SYSTEMML-1150
Project: SystemML
Issue Type: Bug
Environment: Standalone mode
Reporter: Felix Schüler
{code}
A = matrix(2.0, rows=10, cols=10)
n = nrow(A)
s = 0.0
for (i in 1:n) {
# print("[i,1]: " + i)
s = s + as.scalar(A[i,1])
}
{code}
This code fails with the below exception. When uncommenting the print statement it works.
Exception:
{code}
16/12/09 15:49:50 ERROR api.DMLScript: Failed to execute DML script.
org.apache.sysml.runtime.DMLRuntimeException: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error in program block generated from statement block between lines 9 and 9 -- Error evaluating instruction: CP°castdts°_mVar2·MATRIX·DOUBLE·false°_Var3·SCALAR·DOUBLE
at org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:152)
at org.apache.sysml.api.DMLScript.execute(DMLScript.java:674)
at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:354)
at org.apache.sysml.api.DMLScript.main(DMLScript.java:199)
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error in program block generated from statement block between lines 9 and 9 -- Error evaluating instruction: CP°castdts°_mVar2·MATRIX·DOUBLE·false°_Var3·SCALAR·DOUBLE
at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:335)
at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:224)
at org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:168)
at org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:145)
... 3 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: Dimension mismatch - unable to cast matrix '_mVar2' of dimension (10 x 1) to scalar.
at org.apache.sysml.runtime.instructions.cp.VariableCPInstruction.processInstruction(VariableCPInstruction.java:544)
at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:305)
... 6 more
Exception in thread "main" org.apache.sysml.api.DMLException: org.apache.sysml.runtime.DMLRuntimeException: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error in program block generated from statement block between lines 9 and 9 -- Error evaluating instruction: CP°castdts°_mVar2·MATRIX·DOUBLE·false°_Var3·SCALAR·DOUBLE
at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:368)
at org.apache.sysml.api.DMLScript.main(DMLScript.java:199)
Caused by: org.apache.sysml.runtime.DMLRuntimeException: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error in program block generated from statement block between lines 9 and 9 -- Error evaluating instruction: CP°castdts°_mVar2·MATRIX·DOUBLE·false°_Var3·SCALAR·DOUBLE
at org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:152)
at org.apache.sysml.api.DMLScript.execute(DMLScript.java:674)
at org.apache.sysml.api.DMLScript.executeScript(DMLScript.java:354)
... 1 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: ERROR: Runtime error in program block generated from statement block between lines 9 and 9 -- Error evaluating instruction: CP°castdts°_mVar2·MATRIX·DOUBLE·false°_Var3·SCALAR·DOUBLE
at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:335)
at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeInstructions(ProgramBlock.java:224)
at org.apache.sysml.runtime.controlprogram.ProgramBlock.execute(ProgramBlock.java:168)
at org.apache.sysml.runtime.controlprogram.Program.execute(Program.java:145)
... 3 more
Caused by: org.apache.sysml.runtime.DMLRuntimeException: Dimension mismatch - unable to cast matrix '_mVar2' of dimension (10 x 1) to scalar.
at org.apache.sysml.runtime.instructions.cp.VariableCPInstruction.processInstruction(VariableCPInstruction.java:544)
at org.apache.sysml.runtime.controlprogram.ProgramBlock.executeSingleInstruction(ProgramBlock.java:305)
... 6 more
{code}
Plan for the failing version:
{code}
16/12/09 15:49:50 INFO api.DMLScript: BEGIN DML run 12/09/2016 15:49:50
16/12/09 15:49:50 INFO api.DMLScript: EXPLAIN (RUNTIME):
# Memory Budget local/remote = 2832MB/140MB/140MB
# Degree of Parallelism (vcores) local/remote = 4/1/1
PROGRAM ( size CP/MR = 0/0 )
--MAIN PROGRAM
----GENERIC (lines 2-5) [recompile=false]
------CP createvar _mVar1 scratch_space//_p16109_127.0.1.1//_t0/temp1 true MATRIX binaryblock 10 10 1000 1000 100 copy
------CP rand 10 10 1000 1000 2.0 2.0 1.0 -1 uniform 1.0 4 _mVar1.MATRIX.DOUBLE
------CP assignvar 10.SCALAR.INT.true n.SCALAR.INT
------CP assignvar 0.0.SCALAR.DOUBLE.true s.SCALAR.DOUBLE
------CP cpvar _mVar1 A
------CP rmvar _mVar1
----GENERIC (lines 9-9) [recompile=false]
------CP createvar _mVar2 scratch_space//_p16109_127.0.1.1//_t0/temp2 true MATRIX binarycell 1 1 -1 -1 -1 copy
------CP rangeReIndex A.MATRIX.DOUBLE 1.SCALAR.INT.true 10.SCALAR.INT.true 1.SCALAR.INT.true 1.SCALAR.INT.true _mVar2.MATRIX.DOUBLE
------CP castdts _mVar2.MATRIX.DOUBLE.false _Var3.SCALAR.DOUBLE
------CP rmvar _mVar2
------CP + s.SCALAR.DOUBLE.false _Var3.SCALAR.DOUBLE.false _Var4.SCALAR.DOUBLE
------CP rmvar _Var3
------CP assignvar _Var4.SCALAR.DOUBLE.false s.SCALAR.DOUBLE
------CP rmvar _Var4
16/12/09 15:49:50 INFO api.DMLScript: SystemML Statistics:
Total execution time: 0.052 sec.
Number of executed MR Jobs: 0.
16/12/09 15:49:50 INFO api.DMLScript: END DML run 12/09/2016 15:49:50
{code}
Plan for the successful run:
{code}
16/12/09 15:50:27 INFO api.DMLScript: BEGIN DML run 12/09/2016 15:50:27
16/12/09 15:50:28 INFO api.DMLScript: EXPLAIN (RUNTIME):
# Memory Budget local/remote = 2832MB/140MB/140MB
# Degree of Parallelism (vcores) local/remote = 4/1/1
PROGRAM ( size CP/MR = 0/0 )
--MAIN PROGRAM
----GENERIC (lines 2-5) [recompile=false]
------CP createvar _mVar1 scratch_space//_p16143_127.0.1.1//_t0/temp1 true MATRIX binaryblock 10 10 1000 1000 100 copy
------CP rand 10 10 1000 1000 2.0 2.0 1.0 -1 uniform 1.0 4 _mVar1.MATRIX.DOUBLE
------CP assignvar 10.SCALAR.INT.true n.SCALAR.INT
------CP assignvar 0.0.SCALAR.DOUBLE.true s.SCALAR.DOUBLE
------CP cpvar _mVar1 A
------CP rmvar _mVar1
----FOR (lines 7-10)
------GENERIC (lines 8-9) [recompile=false]
--------CP + [i,1]: .SCALAR.STRING.true i.SCALAR.INT.false _Var2.SCALAR.STRING
--------CP createvar _mVar3 scratch_space//_p16143_127.0.1.1//_t0/temp2 true MATRIX binarycell 1 1 -1 -1 -1 copy
--------CP rangeReIndex A.MATRIX.DOUBLE i.SCALAR.INT.false i.SCALAR.INT.false 1.SCALAR.INT.true 1.SCALAR.INT.true _mVar3.MATRIX.DOUBLE
--------CP print _Var2.SCALAR.STRING.false _Var4.SCALAR.STRING
--------CP rmvar _Var2
--------CP castdts _mVar3.MATRIX.DOUBLE.false _Var5.SCALAR.DOUBLE
--------CP rmvar _mVar3
--------CP + s.SCALAR.DOUBLE.false _Var5.SCALAR.DOUBLE.false _Var6.SCALAR.DOUBLE
--------CP rmvar _Var5
--------CP assignvar _Var6.SCALAR.DOUBLE.false s.SCALAR.DOUBLE
--------CP rmvar _Var4
--------CP rmvar _Var6
16/12/09 15:50:28 INFO api.DMLScript: SystemML Statistics:
Total execution time: 0.064 sec.
Number of executed MR Jobs: 0.
16/12/09 15:50:28 INFO api.DMLScript: END DML run 12/09/2016 15:50:28
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)