Parallelization is a fundamental technique in high-performance computing that aims to divide a computational task into smaller, independent subtasks that can be executed concurrently on multiple processors or computers
key parallelization strategies:
1. Data Parallelism:
In data parallelism, multiple processors or machines
work on different portions of a large dataset simultaneously.
Advantages:
o Can be easily extended to more processors for significant
performance gains as the dataset size increases.
Disadvantages: Requires each processor to have enough memory to hold its
assigned data chunk.
2. Model Parallelism:
In model parallelism, a large computational model (e.g.,
a deep learning neural network) is partitioned across multiple processors.
Advantages:
Can be used for models that wouldn't fit on a single processor's
memory.
Disadvantages:
Communication overhead can become a significant bottleneck
if not
carefully optimized.
3. Task Parallelism:
In task parallelism, a computational task is broken
down into smaller, independent subtasks that can be executed
concurrently.
Advantages:
Allows for fine-grained control over task scheduling and
execution.
Disadvantages:
May involve overhead in creating and managing tasks,
especially for large numbers of small tasks.
0 Comments