Uploaded image for project: 'SystemDS'
  1. SystemDS
  2. SYSTEMDS-1884

Unnecessary spark/mr instructions on removeEmpty select

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • SystemML 0.14
    • SystemML 0.15
    • None
    • None

    Description

      The builtin function removeEmpty takes an optional select parameter. If this parameter is provided, we directly use it instead of explicitly computing it. However, the compilation of removeEmpty handled this incorrectly, setting the forced execution type to the initially compiled execution type of removeEmpty. This is problematic in scenarios with dynamic recompilation. For example, consider the following scenario:

      C = replace(target=A, pattern=2, replacement=0);
      D = removeEmpty(B, margin="rows", select=C);
      

      If the removeEmpty is initially compiled to SPARK, this also mistakenly set the forced execution type of replace to SPARK. During recompilation, the removeEmpty might be compiled to CP but because replace has a forced execution type, it will remain in SPARK.

      Workaround: The workaround for this issue is to put a while(FALSE) just before the removeEmpty call (more precisely, C in above example needs to be computed in a separate HOP DAG).

      Attachments

        Activity

          People

            mboehm7 Matthias Boehm
            mboehm7 Matthias Boehm
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: