Lecture 1: Parallel Computing Architectures
Lecture 1 introduces the foundations and principles of parallel computing, including Flynn's taxonomy, memory organization, and heterogeneous architectures [1-4].
Key points covered in the lecture include:
The need for parallel computing is driven by the demand for efficient performance across various applications and the increasing complexity of computational problems [1, 5].
Flynn's taxonomy categorizes computer architectures based on instruction and data flows, resulting in four classifications: SISD (Single Instruction, Single Data), SIMD (Single Instruction, Multiple Data), MISD (Multiple Instructions, Single Data), and MIMD (Multiple Instructions, Multiple Data) [2, 6, 7].
Memory organization in parallel architectures involves shared memory systems (UMA, NUMA, NoRMA, COMA) and distributed memory systems (MPP, Clusters of Workstations) [4, 8-11]. Shared memory systems can struggle with synchronizing access to shared resources, while distributed memory systems may face challenges related to large message transfers [12].
Heterogeneous architectures incorporate diverse processors like CPUs and GPUs, enabling parallel processing and efficient task handling [13-15]. CPUs and GPUs can communicate through high-speed buses or shared memory [16].