Parallel Computing
Assignment 1: Date: 17/8/25
1. Explain the fundamental need for parallel programming in modern computational
challenges.
2. Differentiate between Shared-memory and Distributed-memory parallel systems.
Discuss their architectural differences, advantages, and disadvantages, providing examples
of scenarios where each paradigm is more suitable.
3. Describe the role and significance of interconnection networks in parallel computer
architectures.
4. Briefly explain how cache coherence is maintained in shared-memory systems.
5. Classify parallel computers based on Flynn's taxonomy, providing a detailed explanation
of SIMD (Single Instruction, Multiple Data) and MIMD (Multiple Instruction, Multiple Data)
systems. Illustrate with relevant examples for each.
6. Discuss the critical aspects and mechanisms involved in coordinating processes/threads
in a parallel programming environment. Highlight the challenges that arise in both shared-
memory and distributed-memory models concerning coordination.
Submission date: 23/8/25.