Data parallel
Data parallelism is a parallel-computing technique that applies the same computation concurrently to separate portions of data.
Designing Deep Learning Systems: A guide for software engineers
A distributed training strategy that replicates a model across computing devices, partitions data batches among them, and combines their parameter updates.
- How it is used
- Accelerates training of large datasets by distributing minibatches across replicated model workers.
- How deep it goes
- Explains synchronous execution, gradient aggregation, scaling limits, recovery, and framework configuration without model-theory detail.
- Examples
- Demonstrates three-GPU synchronization plus PyTorch DDP, TensorFlow MultiWorkerMirroredStrategy, and Horovod code patterns.
- What you can do after
- Operate/configure it through PyTorch, TensorFlow, or Horovod worker settings and resilient training-service practices.
Read how Designing Deep Learning Systems: A guide for software engineers explains data parallel →
LLMs in Production
Data parallelism is a parallel-computing technique that processes separate portions of data concurrently with multiple copies of a model or pipeline.
- How it is used
- Uses replicated model copies to process separate data portions concurrently in distributed LLM training and inference workflows.
- How deep it goes
- Defines the workload split and names PyTorch configuration, but stops short of explaining synchronization or communication internals.
- Examples
- Demonstrates Ray task submission by comparing ten sequential calls with ten remote calls and collected results.
- What you can do after
- Apply it via PyTorch DistributedDataParallel or Ray when distributing compatible workloads across devices or cluster nodes.
Deep Learning with Python, Third Edition
A distributed-training method where each device holds a full replica of the model and processes different sub-batches in parallel.
- How it is used
- Scales training across devices by processing different portions of a batch on full model replicas.
- How deep it goes
- Explains replicas and batch splitting with numbers, then gives Keras setup and performance caveats; does not detail update-merging mechanics.
- Examples
- Uses a batch of 128 split across two GPUs and Keras DataParallel calls for automatic or selected-device setup.
- What you can do after
- Apply it via Keras DataParallel with JAX, selecting devices when needed and checking that each GPU receives enough data.
Read how Deep Learning with Python, Third Edition explains data parallel →
Deep Learning with R, Third Edition
Data parallelism is a distributed-training technique that replicates a model across devices and processes different data subsets on those devices.
- How it is used
- Scales training across devices by processing different data subsets with copies of a model.
- How deep it goes
- Explains batch splitting, replica results, and Keras setup, but does not detail multi-GPU machine provisioning.
- Examples
- Works through a batch of 128 split across two GPUs and shows Keras DataParallel configuration.
- What you can do after
- Apply it via Keras DataParallel with JAX, optionally selecting devices and checking whether the batch is large enough.
Read how Deep Learning with R, Third Edition explains data parallel →
Deep Learning with PyTorch, Second Edition
A training strategy that replicates a model across devices while splitting data among them.
- How it is used
- Splits training data across devices while keeping a model replica on each device.
- How deep it goes
- Works through gradient reduction and an optimizer step, then delegates optimized synchronization to DDP.
- Examples
- Uses a manual all-reduce training loop, DDP model wrapping, and a DistributedSampler data loader.
- What you can do after
- Apply it via PyTorch DDP and DistributedSampler to synchronize model replicas while assigning processes separate data subsets.
Read how Deep Learning with PyTorch, Second Edition explains data parallel →
Sutskever's List
Data parallelism is a training technique that replicates a model across devices, splits batches among them, and synchronizes parameter updates.
- How it is used
- Scales training across GPUs by distributing batches while keeping model replicas synchronized.
- How deep it goes
- Explains batch division, gradient synchronization, measured speedups, communication overhead, and memory limits; does not detail the custom all-reduce routine.
- Examples
- Uses Deep Speech 2’s 8-to-16-GPU runs, batch sizes, and custom all-reduce performance as a concrete case.
- What you can do after
- Evaluate/understand when data parallelism speeds GPU training and when communication or full-model memory limits constrain it.
Deep Learning with JAX
A distributed training strategy that splits a batch across devices, replicates parameters, and aggregates gradients before updating.
- How it is used
- Uses multiple devices to train one neural network by processing separate data chunks with synchronized model copies.
- How deep it goes
- Explains distribution, reshaping, gradient aggregation, and edge cases, while deferring model-parallel implementation to later mechanisms.
- Examples
- Demonstrates an SPMD MNIST classifier using eight-device tensors, pmap updates, and per-device loss values.
- What you can do after
- Apply it via JAX pmap by reshaping batches, aggregating gradients, and completing a multi-device training loop.
Latency
Data parallelism is the execution of identical operations simultaneously on separate portions of a dataset.
- How it is used
- Uses identical operations on separate data portions to reduce application latency.
- How deep it goes
- Works through array partitioning, partial sums, workload balance, and SIMD widths without supplying implementation code.
- Examples
- Illustrates parallel array summation with 1,000 elements and locality-aware partitioning with contiguous matrix blocks.
- What you can do after
- Evaluate/understand when dividing data into balanced, independent chunks may reduce latency.
Related concepts
- distributed trainingkind of · Distributed training is the coordinated training of a machine-learning model across multiple computing devices, processes, or machines by distributing computation or data among them.
- rayonimplemented by · Rayon is a Rust library for data-parallel programming through parallel iterators and work distribution across threads.
- model parallelismcontrasts with · Model parallelism is a distributed-computing technique that partitions a machine-learning model’s parameters, layers, or computations across multiple devices.
- GPUuses · A graphics processing unit (GPU) is a processor designed for highly parallel computation, especially graphics and data-parallel workloads.
- parallelismkind of · Parallelism is the concurrent execution of multiple computational operations, often across multiple processing resources.
- allreduceuses · Allreduce is a collective communication operation that combines corresponding values across participating processes or devices and distributes the resulting aggregate to every participant.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.







