docs: @Override
      public Trainer create(String uuid, int threadId, Model model, int rootDevice, boolean useMDS, ParallelWrapper wrapper,
                      WorkspaceMode mode, int averagingFrequency) {
          return ParameterServerTrainer.builder().originalModel(model).parameterServerClient(ParameterServerClient
                          .builder().aeron(parameterServerNode.getAeron())
                          .ndarrayRetrieveUrl(
                                          parameterServerNode.getSubscriber()[threadId].getResponder().connectionUrl())
                          .ndarraySendUrl(parameterServerNode.getSubscriber()[threadId].getSubscriber().connectionUrl())
                          .subscriberHost("localhost").masterStatusHost("localhost").masterStatusPort(statusServerPort)
                          .subscriberPort(40625 + threadId).subscriberStream(12 + threadId).build())
                          .replicatedModel(model).threadId(threadId).parallelWrapper(wrapper).useMDS(useMDS).build();
      }