class_docstr: Nested sampler with reactive exploration strategy.
  
  Storage & resume capable, optionally MPI parallelised.
class_docstr_tok: ["Nested","sampler","with","reactive","exploration","strategy",".","Storage","&","resume","capable",",","optionally","MPI","parallelised","."]
code: def _setup_distributed_seeds(self):
      if not self.use_mpi:
          return
      seed = 0
      if self.mpi_rank == 0:
          seed = np.random.randint(0, 1000000)
  
      seed = self.comm.bcast(seed, root=0)
      if self.mpi_rank > 0:
          # from http://arxiv.org/abs/1005.4117
          seed = int(
              abs(
                  ((seed * 181) * ((self.mpi_rank - 83) * 359)) % 104729
              )
          )
          # print('setting seed:', self.mpi_rank, seed)
          np.random.seed(seed)
  
imports: from __future__ import print_function, division
  import os
  import sys
  import csv
  import json
  import operator
  import time
  import warnings
  from numpy import log, exp, logaddexp
  import numpy
  from .utils import create_logger, make_run_dir, resample_equal, vol_prefactor, vectorize, listify
  from .utils import is_affine_transform, normalised_kendall_tau_distance, distributed_work_chunk_size
  from ultranest.mlfriends import MLFriends, AffineLayer, ScalingLayer, find_nearby, WrappingEllipsoid, RobustEllipsoidRegion
  from .store import HDF5PointStore, TextPointStore, NullPointStore
  from .viz import get_default_viz_callback
  from .ordertest import UniformOrderAccumulator
  from .netiter import PointPile, SingleCounter, MultiCounter, BreadthFirstIterator, TreeNode, count_tree_between, find_nodes_before, logz_sequence
  from .netiter import dump_tree, combine_results
  from .hotstart import get_auxiliary_contbox_parameterization
label_desc: Use image node_id 2 for calling the ReactiveNestedSampler obj's underlying member method code with example usage: obj._setup_distributed_seeds() without return types