High Performance Computing (HPC)
Assignment Question Bank
Assignment 1 – Unit I: Introduction to Parallel Computing
Q1. Explain motivating factors for parallel computing with suitable examples.
Q2. Describe modern processor architecture and challenges in achieving parallelism.
Q3. Compare SIMD, MIMD, SIMT and SPMD models.
Q4. Explain communication costs in parallel machines.
Q5. Discuss multi-core and multi-threaded architectures.
Assignment 2 – Unit II: Parallel Algorithm Design
Q1. Explain principles of parallel algorithm design.
Q2. Describe decomposition techniques used in parallel algorithms.
Q3. Explain task and data parallelism with examples.
Q4. Discuss load balancing and mapping techniques.
Q5. Explain Foster’s parallel algorithm design methodology.
Assignment 3 – Unit III: Parallel Communication
Q1. Explain one-to-all and all-to-one communication operations.
Q2. Describe collective communication using MPI.
Q3. Differentiate blocking and non-blocking MPI communication.
Q4. Explain all-to-all personalized communication.
Q5. Discuss MPI based Monte-Carlo Pi computation.
Assignment 4 – Unit IV: Analytical Modeling of Parallel Programs
Q1. Explain sources of overhead in parallel programs.
Q2. Derive and explain Amdahl’s and Gustafson’s laws.
Q3. Define speedup, efficiency, cost and utilization.
Q4. Explain scalability and granularity in parallel systems.
Q5. Explain matrix-vector and matrix-matrix multiplication.
Assignment 5 – Unit V: CUDA Architecture
Q1. Explain GPU architecture and its advantages.
Q2. Describe CUDA programming model.
Q3. Explain CUDA memory hierarchy.
Q4. Write steps to launch a CUDA kernel.
Q5. Explain synchronization and communication in CUDA.
Assignment 6 – Unit VI: HPC Applications
Q1. Explain scope of parallel computing.
Q2. Describe parallel DFS and BFS algorithms.
Q3. Explain parallel sorting algorithms.
Q4. Discuss distributed computing for document classification.
Q5. Explain role of HPC in AI/ML applications.