Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • SystemDS 3.0
    • federated

    Description

      Testing the federated instructions with misaligned matrices (either by different hosts or ranges) and fixing the appearing problems.

      I found two issues with the AggregateBinaryFEDInstruction and the MMFEDInstruction:

      1. There is an alignment check without verifying that the federated data partitions are located on the same host (only checking for alignment of the federated ranges)
      2. We do not create the output matrix for the respective federated spark instruction which results in an exception that the variable is not found (MMFEDInstruction)

      The BinaryMatrixMatrixFEDInstruction throws an Execution when getting two misaligned matrices, instead of pulling one federated matrix to the driver and executing it like in the other cases with only one federated matrix.

      The AppendFEDInstruction doesn't support aligned federated matrices. Append spark instructions are only rewritten to federated instructions if the second input is not federated.

      Attachments

        Issue Links

          Activity

            Commit 97a8a4a91324bfa4085e6b33310a02215a26a6af in systemds's branch refs/heads/main from ywcb00
            [ https://gitbox.apache.org/repos/asf?p=systemds.git;h=97a8a4a ]

            SYSTEMDS-3206 Federated Execution w/ Misaligned Matrices

            This commit modify the Federated Execution of:

            • Aggregate Binary Fed
            • Append Fed
            • Binary Matrix Matrix Fed
            • Fed Instruction Utils
            • Fed QuarternaryWDivMMFed
            • Fed Spoof

            to allow for and test Misaligned matrix inputs, indicating federated
            sites that are not aligned across operations. Also contained is removal
            of some code across the federated instructions. In Detail:

            • remove unnecessary creation of extra thread in federated instruction
            • create federated output in the case of MV with not partial and not forced local output
            • move the local aggregations of the partial results to a joint method
            • bundle the whole local aggregation branches together with the local result aggregation
            • add a test for the MV case with verification for creation of federated output
            • tests to verify the creation of federated output using a sum operation
            • create federated output in the case of MV with not partial and not forced local output
            • move the local aggregations of the partial results to a joint method
            • include the FType.BROADCAST federated data inside the federated case of aquireReadIntern()
              NOTE: otherwise, MatrixObject.readBlobFromHDFS()
              -> CacheableData.acquireReadAndRelease() -> CacheableData.acquireRead()
              -> CacheableData.acquireReadIntern() -> MatrixObject.readBlobFromHDFS()
              is forming an endless loop
            • include the FType.BROADCAST federated data inside the federated case of aquireReadIntern()"
            • get the CacheableData from federated even if it's broadcast federated
              but the hdfs file and RDDhandle does not exist
            • Add support for two misaligned federated matrices
            • extend fed tests by element-wise plus and greater operation (EW_PLUS, EW_GREATER)
            • modify the federation map according to the individual needs for the MV case
              set the matrix characteristics according to the output dimensions

            Closes #1446

            jira-bot ASF subversion and git services added a comment - Commit 97a8a4a91324bfa4085e6b33310a02215a26a6af in systemds's branch refs/heads/main from ywcb00 [ https://gitbox.apache.org/repos/asf?p=systemds.git;h=97a8a4a ] SYSTEMDS-3206 Federated Execution w/ Misaligned Matrices This commit modify the Federated Execution of: Aggregate Binary Fed Append Fed Binary Matrix Matrix Fed Fed Instruction Utils Fed QuarternaryWDivMMFed Fed Spoof to allow for and test Misaligned matrix inputs, indicating federated sites that are not aligned across operations. Also contained is removal of some code across the federated instructions. In Detail: remove unnecessary creation of extra thread in federated instruction create federated output in the case of MV with not partial and not forced local output move the local aggregations of the partial results to a joint method bundle the whole local aggregation branches together with the local result aggregation add a test for the MV case with verification for creation of federated output tests to verify the creation of federated output using a sum operation create federated output in the case of MV with not partial and not forced local output move the local aggregations of the partial results to a joint method include the FType.BROADCAST federated data inside the federated case of aquireReadIntern() NOTE: otherwise, MatrixObject.readBlobFromHDFS() -> CacheableData.acquireReadAndRelease() -> CacheableData.acquireRead() -> CacheableData.acquireReadIntern() -> MatrixObject.readBlobFromHDFS() is forming an endless loop include the FType.BROADCAST federated data inside the federated case of aquireReadIntern()" get the CacheableData from federated even if it's broadcast federated but the hdfs file and RDDhandle does not exist Add support for two misaligned federated matrices extend fed tests by element-wise plus and greater operation (EW_PLUS, EW_GREATER) modify the federation map according to the individual needs for the MV case set the matrix characteristics according to the output dimensions Closes #1446

            People

              Unassigned Unassigned
              ywcb00 David Weissteiner
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: