code: @Override public void reduce(DeepLearningTask other){
      if (_localmodel != null && other._localmodel != null && other._localmodel.get_processed_local() > 0 //other DLTask was active (its model_info should be used for averaging)
          && other._localmodel != _localmodel) //other DLTask worked on a different model_info
      {
        // avoid adding remote model info to unprocessed local data, still random
        // (this can happen if we have no chunks on the master node)
        if (_localmodel.get_processed_local() == 0) {
          _localmodel = other._localmodel;
          _chunk_node_count = other._chunk_node_count;
        } else {
          _localmodel.add(other._localmodel);
          _chunk_node_count += other._chunk_node_count;
        }
        if (other._localmodel.isUnstable()) _localmodel.setUnstable();
      }
    }
docs: Average the per-node models (for elastic averaging, already wrote them to DKV in postLocal())
  This is a no-op between F/J worker threads (operate on the same weights/biases)
  @param other