class_docstr: Partitioned AR StrategyBuilder.
  
  This StrategyBuilder generates a strategy that partitions each variable along its first dimension,
  and synchronizes them using AllReduce. It might be advantageous for communicating extremely large
  messages -- when synchronizing a single message is bounded by single-flow bandwidth.
  
  It will also sequentially merge collective ops into a single collective group based on chunk_size.
  This strategy does not support synchronizing sparse updates with >1 nodes due to the TF AllGather bug.
docstr: Init function.
  
  Args:
      chunk_size (int): chunk_size is a positive integer indicating how many variables will be merged
                        sequentially as a group by scoped allocator.
code: def __init__(self, chunk_size=128):
      """
      Init function.
  
      Args:
          chunk_size (int): chunk_size is a positive integer indicating how many variables will be merged
                            sequentially as a group by scoped allocator.
      """
      if chunk_size < 1:
          raise ValueError("The chunk_size must be greater than zero.")
      self.chunk_size = chunk_size
  
file_path: autodist/autodist/strategy/random_axis_partition_all_reduce_strategy.py
imports: import numpy
  from tensorflow.python.framework.ops import IndexedSlices
  from autodist.kernel.common.utils import get_op_name
  from autodist.kernel.partitioner import PartitionerConfig
  from autodist.proto import strategy_pb2, synchronizers_pb2
  from autodist.strategy.base import Strategy, StrategyBuilder
label_desc: Use image node_id 1 to create a new RandomAxisPartitionAR object from inherited base classes: StrategyBuilder with example: obj = RandomAxisPartitionAR(chunk_size)