Christopher J. Cameron, Steve Lantz
Cornell Center for Advanced Computing

Revisions: 3/2022, 9/2014 (original)

This topic explains two different memory access models used in parallel programming and how the computational task and underlying hardware determines which memory access model is appropriate.

Objectives

After you complete this topic, you should be able to:

  • Explain how hardware organizes communication between processor cores and memory
  • Distinguish between shared and distributed memory
  • Define hybrid programming
  • Explain the effects of non-uniform memory access
  • Describe the elements of distributed memory design
Prerequisites

This topic assumes a basic understanding of serial (single-threaded) programming and familiarity with computer terminology.

 
©  |   Cornell University    |   Center for Advanced Computing    |   Copyright Statement    |   Inclusivity Statement