public final class ModelParameterServer
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
protected VoidConfiguration |
configuration |
protected org.nd4j.linalg.primitives.AtomicBoolean |
gotFinalState |
protected static ModelParameterServer |
INSTANCE |
protected java.util.List<org.reactivestreams.Subscriber<org.nd4j.linalg.api.ndarray.INDArray>> |
modelParamsSubsribers |
protected org.nd4j.linalg.primitives.Atomic<UpdaterParametersHolder> |
updaterParameters |
protected java.util.concurrent.locks.ReentrantReadWriteLock |
updaterParamsLock |
protected java.util.List<org.reactivestreams.Subscriber<org.nd4j.linalg.api.ndarray.INDArray>> |
updaterParamsSubscribers |
protected java.util.concurrent.BlockingQueue<org.nd4j.linalg.api.ndarray.INDArray> |
updatesBacklog |
protected java.util.List<UpdatesHandler> |
updatesSubscribers |
Modifier | Constructor and Description |
---|---|
protected |
ModelParameterServer() |
protected |
ModelParameterServer(Transport transport)
This constructor is for tests only
|
protected |
ModelParameterServer(Transport transport,
boolean isMasterNode)
This constructor is for tests only
|
|
ModelParameterServer(VoidConfiguration configuration,
Transport transport,
boolean isMasterNode)
This constructor creates new ModelParameterServer instance
|
Modifier and Type | Method and Description |
---|---|
void |
addModelParamsSubscriber(org.reactivestreams.Subscriber<org.nd4j.linalg.api.ndarray.INDArray> s)
This method adds subcriber that will be called upon model params receival
|
void |
addUpdaterParamsSubscriber(org.reactivestreams.Subscriber<org.nd4j.linalg.api.ndarray.INDArray> s)
This method adds subcriber that will be called upon updater params receival
|
void |
addUpdatesSubscriber(UpdatesHandler s)
This method adds subcriber that will be called upon gradients update receival
|
void |
configure(VoidConfiguration configuration,
Transport transport,
boolean isMasterNode)
This method stores provided entities for MPS internal use
|
void |
configure(VoidConfiguration configuration,
Transport transport,
UpdaterParametersProvider updaterProvider)
This method stores provided entities for MPS internal use
|
static ModelParameterServer |
getInstance() |
org.nd4j.linalg.primitives.Pair<java.lang.Integer,java.lang.Integer> |
getStartPosition()
This method returns pair of integers: iteration number and epoch number
|
java.util.Collection<org.nd4j.linalg.api.ndarray.INDArray> |
getUpdates()
This method returns updates received from network
|
boolean |
isInitialized()
This method checks if ModelParameterServer was initialized
|
void |
launch()
This method starts parameter server
|
void |
sendUpdate(org.nd4j.linalg.api.ndarray.INDArray array)
This method sends gradient updates to the cluster
|
void |
sendUpdate(org.nd4j.linalg.api.ndarray.INDArray array,
int iteration,
int epoch) |
void |
shutdown()
This method stops parameter server
|
protected static final ModelParameterServer INSTANCE
protected final java.util.List<UpdatesHandler> updatesSubscribers
protected final java.util.List<org.reactivestreams.Subscriber<org.nd4j.linalg.api.ndarray.INDArray>> modelParamsSubsribers
protected final java.util.List<org.reactivestreams.Subscriber<org.nd4j.linalg.api.ndarray.INDArray>> updaterParamsSubscribers
protected VoidConfiguration configuration
protected java.util.concurrent.BlockingQueue<org.nd4j.linalg.api.ndarray.INDArray> updatesBacklog
protected final org.nd4j.linalg.primitives.Atomic<UpdaterParametersHolder> updaterParameters
protected final java.util.concurrent.locks.ReentrantReadWriteLock updaterParamsLock
protected final org.nd4j.linalg.primitives.AtomicBoolean gotFinalState
protected ModelParameterServer()
protected ModelParameterServer(@NonNull Transport transport)
transport
- protected ModelParameterServer(@NonNull Transport transport, boolean isMasterNode)
transport
- isMasterNode
- public ModelParameterServer(@NonNull VoidConfiguration configuration, @NonNull Transport transport, boolean isMasterNode)
configuration
- VoidConfiguration beantransport
- Transport instance to be used for communicationsisMasterNode
- set to true if this parameter server instance will be a master node, false otherwisepublic static ModelParameterServer getInstance()
public void configure(@NonNull VoidConfiguration configuration, @NonNull Transport transport, boolean isMasterNode)
configuration
- transport
- isMasterNode
- public void configure(@NonNull VoidConfiguration configuration, @NonNull Transport transport, @NonNull UpdaterParametersProvider updaterProvider)
configuration
- transport
- isMasterNode
- public void addUpdatesSubscriber(@NonNull UpdatesHandler s)
s
- public void addModelParamsSubscriber(@NonNull org.reactivestreams.Subscriber<org.nd4j.linalg.api.ndarray.INDArray> s)
s
- public void addUpdaterParamsSubscriber(@NonNull org.reactivestreams.Subscriber<org.nd4j.linalg.api.ndarray.INDArray> s)
s
- public boolean isInitialized()
public org.nd4j.linalg.primitives.Pair<java.lang.Integer,java.lang.Integer> getStartPosition()
public void launch()
public void shutdown()
public void sendUpdate(@NonNull org.nd4j.linalg.api.ndarray.INDArray array, int iteration, int epoch)
public void sendUpdate(@NonNull org.nd4j.linalg.api.ndarray.INDArray array)
public java.util.Collection<org.nd4j.linalg.api.ndarray.INDArray> getUpdates()
Copyright © 2019. All rights reserved.