Parallel Computing – BCS702
Assignment 1
Module 1
1. Differentiate between sequential and parallel programming. Write a neat
comparison table.
2. Explain interconnection networks in parallel computing. Compare ring,
mesh, torus, and hypercube topologies with neat diagrams.
3. Compare and contrast shared-memory and distributed-memory
programming models with examples from OpenMP and MPI.
4. With neat diagram, explain the MESI protocol used in cache coherence.
5. Explain the steps involved in writing a parallel program with examples
from OpenMP or MPI
6. Explain Flynn’s Taxonomy of computer architectures. Write short notes
on SISD, SIMD, MISD, and MIMD systems.
7. What is cache coherence? Explain snooping-based and directory-based
cache coherence protocols.
8. Explain load balancing and scheduling techniques in parallel computing.
Module 2
1. Define speedup and efficiency of a parallel program. Derive their
mathematical expressions.
2. State and explain Amdahl’s Law. Derive the formula for maximum
speedup
3. A program has 90% parallel portion. If Tserial = 20s, calculate the
maximum speedup possible using
a) 10 processors
b) Infinite processors
4. Why should we not be overly concerned about Amdahl’s Law? Explain
with Gustafson’s perspective
5. A program has Tserial = 24 ms, p = 8, and Tparallel = 4 ms. Calculate:
a) Speedup
b) Efficiency
c) Parallel overhead per process
Also Explain the effect of problem size on efficiency of a parallel
program.
6. How is GPU performance measured? Explain timing strategies for GPU
programs
7. Write a OpenMP program to sort an array on n elements using both
sequential and parallel mergesort(using Section)
8. Write a short note on scalability in GPU programs.