Baunsgaard commented on pull request #1328:
URL: https://github.com/apache/systemds/pull/1328#issuecomment-872334806


   Okay i have been looking at this, and there is a bug.
   
   The bug for the paramserv cannot be called inside a builtin function since 
it in turn try parse functions for update and gradients.
   
   If we change the line initializing the parameterserver to:
   
     model_trained = paramserv(model=model, features=X, labels=y,
       upd="./scripts/builtin/ffTrain.dml::gradients", 
agg="./scripts/builtin/ffTrain.dml::aggregation", 
       epochs=epochs, hyperparams=params, mode=mode, utype=utype, freq=freq, 
batchsize=batch_size, k=workers, 
       checkpointing="NONE")
   
   Then it is syntactically correct, but in turn our passer encounter a bug, 
where it cannot build the ffTrain builtin.
   
   ```
   [ERROR] Failures: 
   [ERROR]   
BuiltinFFNeuralNetworkTest.testClassificationFit:91->AutomatedTestBase.runTest:1333->AutomatedTestBase.runTest:1337->AutomatedTestBase.runTest:1341->AutomatedTestBase.runTest:1446
 
   failed to run script: 
./src/test/scripts/functions/builtin/ffNeuralNetwork.dml
   Standard Out:
   
   StackTrace:
   LEVEL : 0
   Exception : class org.apache.sysds.api.DMLException
   Message   : failed add function to graph fcall _main
   0  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.addFunctionOpToGraph(FunctionCallGraph.java:507)
   0  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:424)
   0  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.constructFunctionCallGraph(FunctionCallGraph.java:360)
   0  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.<init>(FunctionCallGraph.java:94)
   0  >  
org.apache.sysds.hops.ipa.InterProceduralAnalysis.<init>(InterProceduralAnalysis.java:133)
   0  >  
org.apache.sysds.parser.DMLTranslator.rewriteHopsDAG(DMLTranslator.java:285)
   0  >  org.apache.sysds.api.DMLScript.execute(DMLScript.java:400)
   0  >  org.apache.sysds.api.DMLScript.executeScript(DMLScript.java:269)
   0  >  
org.apache.sysds.test.AutomatedTestBase.main(AutomatedTestBase.java:1464)
   0  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1420)
   0  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1341)
   0  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1337)
   0  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1333)
   0  >  
org.apache.sysds.test.functions.builtin.BuiltinFFNeuralNetworkTest.testClassificationFit(BuiltinFFNeuralNetworkTest.java:91)
   0  >  sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   0  >  
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   0  >  
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   0  >  java.lang.reflect.Method.invoke(Method.java:498)
      >  ... Stopping Stack Trace at JUnit
   LEVEL : 1
   Exception : class org.apache.sysds.api.DMLException
   Message   : failed add function to graph fcall .builtinNS::m_ffTrain
   1  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.addFunctionOpToGraph(FunctionCallGraph.java:507)
   1  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:451)
   1  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:442)
   1  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:428)
   1  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:399)
   1  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.addFunctionOpToGraph(FunctionCallGraph.java:487)
   1  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:424)
   1  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.constructFunctionCallGraph(FunctionCallGraph.java:360)
   1  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.<init>(FunctionCallGraph.java:94)
   1  >  
org.apache.sysds.hops.ipa.InterProceduralAnalysis.<init>(InterProceduralAnalysis.java:133)
   1  >  
org.apache.sysds.parser.DMLTranslator.rewriteHopsDAG(DMLTranslator.java:285)
   1  >  org.apache.sysds.api.DMLScript.execute(DMLScript.java:400)
   1  >  org.apache.sysds.api.DMLScript.executeScript(DMLScript.java:269)
   1  >  
org.apache.sysds.test.AutomatedTestBase.main(AutomatedTestBase.java:1464)
   1  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1420)
   1  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1341)
   1  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1337)
   1  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1333)
   1  >  
org.apache.sysds.test.functions.builtin.BuiltinFFNeuralNetworkTest.testClassificationFit(BuiltinFFNeuralNetworkTest.java:91)
   1  >  sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   1  >  
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   1  >  
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   1  >  java.lang.reflect.Method.invoke(Method.java:498)
      >  ... Stopping Stack Trace at JUnit
   LEVEL : 2
   Exception : class java.lang.NullPointerException
   Message   : null
   2  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.addFunctionOpToGraph(FunctionCallGraph.java:485)
   2  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:451)
   2  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:442)
   2  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:428)
   2  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:399)
   2  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.addFunctionOpToGraph(FunctionCallGraph.java:487)
   2  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.rConstructFunctionCallGraph(FunctionCallGraph.java:424)
   2  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.constructFunctionCallGraph(FunctionCallGraph.java:360)
   2  >  
org.apache.sysds.hops.ipa.FunctionCallGraph.<init>(FunctionCallGraph.java:94)
   2  >  
org.apache.sysds.hops.ipa.InterProceduralAnalysis.<init>(InterProceduralAnalysis.java:133)
   2  >  
org.apache.sysds.parser.DMLTranslator.rewriteHopsDAG(DMLTranslator.java:285)
   2  >  org.apache.sysds.api.DMLScript.execute(DMLScript.java:400)
   2  >  org.apache.sysds.api.DMLScript.executeScript(DMLScript.java:269)
   2  >  
org.apache.sysds.test.AutomatedTestBase.main(AutomatedTestBase.java:1464)
   2  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1420)
   2  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1341)
   2  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1337)
   2  >  
org.apache.sysds.test.AutomatedTestBase.runTest(AutomatedTestBase.java:1333)
   2  >  
org.apache.sysds.test.functions.builtin.BuiltinFFNeuralNetworkTest.testClassificationFit(BuiltinFFNeuralNetworkTest.java:91)
   2  >  sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   2  >  
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   2  >  
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   2  >  java.lang.reflect.Method.invoke(Method.java:498)
      >  ... Stopping Stack Trace at JUnit
   
   ````
   
   For now i would suggest not including parameter server functionality in the 
builtin, since this provoke the bug and instead focus on the FF, that works.
   
   I have squashed together all your current code in a branch on my fork, if 
you want to continue on that.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to