This is an automated email from the ASF dual-hosted git repository.

arnabp20 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/systemds.git


The following commit(s) were added to refs/heads/main by this push:
     new 11149be  [SYSTEMDS-3267] Fix getMetadata task for FeatureHash
11149be is described below

commit 11149be275e5253b8729a58f8317cd19d8f9252c
Author: arnabp <[email protected]>
AuthorDate: Fri Jan 7 16:20:09 2022 +0100

    [SYSTEMDS-3267] Fix getMetadata task for FeatureHash
    
    This patch fixes a bug where the metadata task for
    featue hash was scheduled before metadata allocation.
---
 .../sysds/runtime/transform/encode/MultiColumnEncoder.java       | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git 
a/src/main/java/org/apache/sysds/runtime/transform/encode/MultiColumnEncoder.java
 
b/src/main/java/org/apache/sysds/runtime/transform/encode/MultiColumnEncoder.java
index 52bad53..3d1d98e 100644
--- 
a/src/main/java/org/apache/sysds/runtime/transform/encode/MultiColumnEncoder.java
+++ 
b/src/main/java/org/apache/sysds/runtime/transform/encode/MultiColumnEncoder.java
@@ -142,7 +142,7 @@ public class MultiColumnEncoder implements Encoder {
         * ColumnCompositeUpdateDCTask: Update domain size of a DC encoder 
based on #distincts, #bins, K
         * ColumnMetaDataTask:          Fill up metadata of an encoder
         * ApplyTasksWrapperTask:       Wrapper task for an Apply
-        * UpdateOutputColTask:         Sets starting offsets of the DC columns
+        * UpdateOutputColTask:         Set starting offsets of the DC columns
         */
        private List<DependencyTask<?>> getEncodeTasks(CacheBlock in, 
MatrixBlock out, DependencyThreadPool pool) {
                List<DependencyTask<?>> tasks = new ArrayList<>();
@@ -166,14 +166,15 @@ public class MultiColumnEncoder implements Encoder {
                                // getMetaDataTask depends on build completion
                                depMap.put(new Integer[] {tasks.size() + 1, 
tasks.size() + 2}, //MetaDataTask
                                        new Integer[] {tasks.size() - 1, 
tasks.size()});           //BuildTask
-                               // getMetaDataTask depends on AllocMeta task
-                               depMap.put(new Integer[] {tasks.size() + 1, 
tasks.size() + 2}, //MetaDataTask
-                                       new Integer[] {1, 2});                  
                   //AllocMetaTask (2nd task)
                                // AllocMetaTask depends on the build 
completion tasks
                                depMap.put(new Integer[] {1, 2},                
               //AllocMetaTask (2nd task)
                                        new Integer[] {tasks.size() - 1, 
tasks.size()});           //BuildTask
                        }
 
+                       // getMetaDataTask depends on AllocMeta task
+                       depMap.put(new Integer[] {tasks.size() + 1, 
tasks.size() + 2},     //MetaDataTask
+                               new Integer[] {1, 2});                          
               //AllocMetaTask (2nd task)
+
                        // Apply Task depends on InitOutputMatrixTask (output 
allocation)
                        depMap.put(new Integer[] {tasks.size(), tasks.size() + 
1},         //ApplyTask
                                        new Integer[] {0, 1});                  
                   //Allocation task (1st task)

Reply via email to