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

# Class FederatedPSControlThread

java.lang.Object
org.apache.sysds.runtime.controlprogram.paramserv.PSWorker
org.apache.sysds.runtime.controlprogram.paramserv.FederatedPSControlThread

All Implemented Interfaces:
  `Serializable`, `Callable<Void>`

public class FederatedPSControlThread extends PSWorker implements Callable<Void>

See Also:
  - Serialized Form

## Constructor Summary

Constructors
Constructor
Description
`FederatedPSControlThread(int workerID, String updFunc, Statement.PSFrequency freq, Statement.PSRuntimeBalancing runtimeBalancing, boolean weighting, int epochs, long batchSize, int numBatchesPerGlobalEpoch, ExecutionContext ec, ParamServer ps, int nbatches, boolean modelAvg, boolean use_homomorphic_encryption)`

## Method Summary

Modifier and Type
Method
Description
`Void`
`call()`
Entry point of the functionality
`PlaintextMatrix[]`
`getPartialDecryption(CiphertextMatrix[] encrypted_sum)`
`PublicKey`
`getPartialPublicKey()`
`String`
`getWorkerName()`
`void`
`setPublicKey(PublicKey public_key)`
`void`
`setup(double weightingFactor)`
Sets up the federated worker and control thread
`void`
`teardown()`
cleans up the execution context of the federated worker

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

`getFeatures, getLabels, setFeatures, setLabels`

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

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

## Constructor Details

### FederatedPSControlThread

public FederatedPSControlThread(int workerID, String updFunc, Statement.PSFrequency freq, Statement.PSRuntimeBalancing runtimeBalancing, boolean weighting, int epochs, long batchSize, int numBatchesPerGlobalEpoch, ExecutionContext ec, ParamServer ps, int nbatches, boolean modelAvg, boolean use_homomorphic_encryption)

## Method Details

### setup

public void setup(double weightingFactor)
Sets up the federated worker and control thread

Parameters:
  `weightingFactor` - Gradients from this worker will be multiplied by this factor if weighting is enabled

### teardown

public void teardown()
cleans up the execution context of the federated worker

### call

public Void call() throws Exception
Entry point of the functionality

Specified by:
  `call` in interface `Callable<Void>`
Returns:
  void
Throws:
  `Exception` - incase the execution fails

### getPartialDecryption

public PlaintextMatrix[] getPartialDecryption(CiphertextMatrix[] encrypted_sum)

### getWorkerName

public String getWorkerName()

Specified by:
  `getWorkerName` in class `PSWorker`

### getPartialPublicKey

public PublicKey getPartialPublicKey()

### setPublicKey

public void setPublicKey(PublicKey public_key)