Package org.apache.sysds.runtime.controlprogram.paramserv

## Class HEParamServer

- java.lang.Object
- - org.apache.sysds.runtime.controlprogram.paramserv.ParamServer
  - - org.apache.sysds.runtime.controlprogram.paramserv.LocalParamServer
    - - org.apache.sysds.runtime.controlprogram.paramserv.HEParamServer

-     public class HEParamServer
      extends LocalParamServer

  This class implements Homomorphic Encryption (HE) for LocalParamServer. It only supports modelAvg=true.

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `PublicKey` | `aggregatePartialPublicKeys​(PublicKey[] partial_public_keys)` |
    `static HEParamServer` | `create​(ListObject model, String aggFunc, Statement.PSUpdateType updateType, Statement.PSFrequency freq, ExecutionContext ec, int workerNum, String valFunc, int numBatchesPerEpoch, MatrixObject valFeatures, MatrixObject valLabels, int nbatches)` |
    `byte[]` | `generateA()` |
    `void` | `push​(int workerID, ListObject encrypted_model)` |
    `void` | `registerThread​(int thread_id, FederatedPSControlThread thread)` |

    - ### Methods inherited from class org.apache.sysds.runtime.controlprogram.paramserv.LocalParamServer

      `create, pull`

    - ### Methods inherited from class org.apache.sysds.runtime.controlprogram.paramserv.ParamServer

      `getAggInst, getNumWorkers, getResult`

    - ### Methods inherited from class java.lang.Object

      `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Method Detail

    - #### create

          public static HEParamServer create​(ListObject model,
                                             String aggFunc,
                                             Statement.PSUpdateType updateType,
                                             Statement.PSFrequency freq,
                                             ExecutionContext ec,
                                             int workerNum,
                                             String valFunc,
                                             int numBatchesPerEpoch,
                                             MatrixObject valFeatures,
                                             MatrixObject valLabels,
                                             int nbatches)

    - #### registerThread

          public void registerThread​(int thread_id,
                                     FederatedPSControlThread thread)

    - #### generateA

          public byte[] generateA()

    - #### aggregatePartialPublicKeys

          public PublicKey aggregatePartialPublicKeys​(PublicKey[] partial_public_keys)

    - #### push

          public void push​(int workerID,
                           ListObject encrypted_model)

      Overrides:
        `push` in class `LocalParamServer`