class_docstr: A training engine hybrid pipeline, data, and model parallel training.
  
  This engine is created by ``deepspeed.initialize()`` when a :class:`PipelineModule`
  is provided.
code: def _build_data_iter(self, dataset):
      sampler = torch.utils.data.distributed.DistributedSampler(
          dataset,
          num_replicas=self.dp_world_size,
          rank=self.mpu.get_data_parallel_rank(),
          shuffle=False,
      )
      # Build a loader and make it repeating.
      pipe_dataloader = self.deepspeed_io(dataset, data_sampler=sampler)
      pipe_dataloader = RepeatingLoader(pipe_dataloader)
      self.set_dataloader(pipe_dataloader)
  
imports: from types import MethodType
  import torch
  from deepspeed import comm
  from deepspeed.utils import logger
  from deepspeed.utils.timer import ThroughputTimer
  from ..engine import DeepSpeedEngine, MEMORY_OPT_ALLREDUCE_SIZE
  from ..utils import PartitionedTensor
  from ..dataloader import RepeatingLoader
  from .module import PipelineModule, PipelineError
  from .None import p2p
  from .None import schedule
label_desc: Use image node_id 3 for calling the PipelineEngine obj's underlying member method code with example usage: obj._build_data_iter(dataset) without return types