🖥️

Understanding Multi-core and Parallel Systems

May 13, 2025

Multi-core and Parallel Systems

Introduction

  • Central Processing Unit (CPU): The brain of a computer responsible for executing instructions.
  • Early computers had a single CPU on a physical chip for all instructions.
  • Evolution led to multi-core processors and parallel systems due to increased demands on the CPU.

Multi-core Processors

  • Definition: Single physical chip containing two or more independent processing units (cores).
    • Each core can fetch, decode, and execute its own instructions.
  • Chip Multiprocessor (CMP): A more accurate term for what is commonly called a CPU today.
    • CMP contains multiple CPU cores.
    • Examples:
      • Dual-core: 2 cores
      • Quad-core: 4 cores
      • New processors can have up to 64 cores.
  • Performance Considerations:
    • Enhanced by on-chip shared cache and communication methods.
    • Doubling cores doesn't necessarily double performance due to overheads and software limitations.
    • Multi-core systems generally process multiple instructions faster than single-core systems.

Parallel Processing

  • Definition: Dividing program instructions among multiple processors or cores to increase speed.
  • Objective: Run programs in less time by:
    • Assigning separate processes/cores to different stages of the fetch-decode-execute cycle.
    • Splitting a single job into tasks executed on different units.
  • Considerations:
    • Speed improvement depends on the task and software design for parallel processing.

Amdahl's Law

  • Purpose: Predicts theoretical speed increase in task execution by adding resources.
    • Used in parallel computing to predict speed increases from more processors/cores.
    • Simply adding more cores may not always lead to significant speedup.

Parallel vs. Concurrent Processing

  • Concurrent Processing: System can support multiple actions in progress at the same time.
  • Parallel Processing: System can support multiple actions executing simultaneously.
    • Terms often used interchangeably but are distinct concepts.

Key Question

  • How does having multiple cores affect the speed of processing?

Conclusion

  • Multi-core and parallel systems increase processing capability but are limited by software design and task nature.
  • Amdahl's Law provides insight into potential speed increases.
  • Understanding the difference between parallel and concurrent processing is crucial.