Description
AggregateTernaryFEDInstruction should be compiled and the FEDOutput flag should be added. This flag indicates whether the output should be federated or consolidated.
The implementation consists of the following steps:
1. Add updateETFed() call to TernaryOp (which is the Hop that represents aggregate ternary as well). This looks like it has already been done, so check instead that the flag has been added to all Lops that are created in the class.
2. Look at all the created Lops and add the FedOutput flag to the instruction string created in the "getInstructions" method.
3. Add the new operations to the FEDInstructionParser.
4. Add parsing of the FEDOutput flag to the AggregateTernaryFEDInstruction "parseInstruction" method. Optionally, create a "native" parsing of the FED instruction instead of relying on the CP parser.
5. Create the additional processing cases for federated output true/false. Make sure that these new cases are only used when OptimizerUtils.FEDERATED_COMPILATION = true.
6. Create tests of the new compilation and processing similar to FederatedMultiplyPlanningTest.java.
The implementation described above is similar to the implementation of AggregateBinaryFEDInstruction as seen in the following PR: https://github.com/apache/systemds/pull/1237