Parallel Computing (BCS702)
Question Bank Module 4
[Link]. Questions
1 Give the difference between PThreads and OpenMP programming.
Discuss the role of OpenMP pragmas and directives with example
programs.
2 Explain the scope of variables in OpenMP (shared, private, firstprivate,
lastprivate, reduction) with examples.
3 Explain loop-carried dependency in OpenMP and why some loops
cannot be parallelised. Provide examples.
4 What is scheduling in OpenMP? Explain different schedule types in
OpenMP.
5 Explain cache coherence, false sharing, and their impact on OpenMP
performance with diagrams.
6 Discuss the producer-consumer model using OpenMP with suitable
code.
7 What is thread safety in OpenMP? Explain race conditions, locks,
critical sections, and atomic operations
8 Discuss the use of task directives in OpenMP and write a program to
compute Fibonacci numbers using OpenMP tasks.
MODULE 5
[Link]. Questions
1 Discuss the architecture of a GPU with a suitable block diagram.
2 What is the CUDA API? Explain threads, blocks, and grids in CUDA
with threadIdx, blockIdx, blockDim, gridDim usage.
3 Write and explain a complete CUDA program for vector addition with
indexing explanation.
4 Explain CUDA implementation of trapezoidal rule – Version I.
5 Explain performance improvements in CUDA trapezoidal rule –
Version II.
6 Explain blocks with more than one warp in the trapezoidal rule –
Version III.
7 Explain different methods of returning results from CUDA kernels
8 Explain NVIDIA compute capabilities and their effect on GPU
architecture.