«VISVESVARAYA TECHNOLOGICAL UNIVERSITY, BELGAUM III SEMESTER ENGINEERING MATHEMATICS – III CODE: 10 MAT 31 IA Marks: 25 Hrs/Week: 04 Exam Hrs: 03 ...»
Threading and Parallel Programming Constructs: Synchronization, Critical sections, Deadlocks, Synchronization primitives: Semaphores, Locks, Condition variables; Messages, Flow Control-Based concepts: Fence, Barrier; Implementation-Dependent threading issues.
UNIT 6 6 Hours Parallel Programming – 2 (Using OpenMP) Introduction, The shared-memory model, Parallel for loops, Declaring private variables, Critical sections, Reductions, Performance improvements, More general data parallelism, Functional parallelism.
UNIT 7 7 Hours Solutions to Common Parallel Programming Problems Too many threads, Data races, deadlocks, and live locks, Heavily contended locks, Non-blocking algorithms, Thread-safe functions and libraries, Memory issues, Cache-related issues, Avoiding pipeline stalls, Data organization for high performance.
UNIT 8 6 Hours Threading in the Processor Single-Core Processors: Processor architecture fundamentals, Comparing Superscalar and EPIC architectures.
Multi-Core Processors: Hardware-based threading, Hyper-threading technology, Multi-Core processors, Multiple processor interactions, Power consumption, Beyond multi-core architecture.
NOTE: In order to acquire a sound understanding of the subject, it is desirable for the students to work in the laboratory using OpenMP. The hands-on experience would reinforce the concepts learnt in theory. Problems similar to the ones solved in the Algorithms Laboratory can be solved and issues like speed-up achieved can be analyzed in depth. Several free tools are available from companies like INTEL to facilitate such a study.
1. Calvin Lin, Lawrence Snyder: Principles of Parallel Programming, Pearson Education, 2009.
(Listed topics only from Chapters 1, 2, 3)
2. Michael J. Quinn: Parallel Programming in C with MPI and OpenMP, Tata McGraw Hill, 2004.
(Listed topics only from Chapters 3, 17)
3. Shameem Akhter, Jason Roberts: Multi-Core Programming, Increasing Performance through Software Multithreading, Intel Press, 2006.
(Listed topics only from Chapters 3, 4, 7, 9, 10)
4. Web resources for Example Architectures of INTEL and Texas
1. Introduction to Parallel Computing – Ananth Grama et. al., Pearson Education, 2009.
2. Reinders : Intel Threading Building Blocks, O’reilly – 2005
3. David Culler et. al.: Parallel Computer Architecture: A Hardware/Software Approach, Elsevier, 2006.
4. Richard Gerber, Aart J.C. Bik, Kevin B. Smith, Xinmin Tian:
Software Optimization Cookbook, High-Performance Recipes for IA-32 Platforms, 2nd Edition, Intel Press, 2006.