Parallel Processing
Obiective
Intelegerea conceptului de programare paralela, avantajele si dezavantajele sale, precum si modul de implementare a acestuia utilizând OpenMP ?i alte platforme multi-threading.
Evaluare
- 40% - teme si activitate de laborator (10% test grila în saptamâna 7-8, 10% test grila în saptamâna 14 si 20% teme si exercitii realizate pe parcursul laboratorului)
- 60% - exam final (test grila sau examen oral)
Structura
- Introducere în procesarea paralela - Concepte cheie
- Introducere în procesarea paralela - De ce este important ?
- Programare paralela prin multi-threading (C++ si Java threads)
- Programarea cu OpenMP: setarea mediului de lucru, utilizarea documentatiei si a resurselor
- Programare cu OpenMP - structuri paralele, sintaxa si elemente cheie (OpenMP 2.0 în VS2019)
- Algoritmi paraleli
- Rezolvarea problemelor: sortare, cautare, procesare de imagini în paralel
- Concepte si probleme avansate
Objective
Understanding the concept of parallel programming, its advantages and disadvantages and how to implement it using OpenMP and other multi-threading platforms.
Course Assessment
- 40% - assignments and lab activity (10% quiz test during week 14 and 30% home assignments and laboratory live challenges)
- 60% - final exam (quizz test)
Structure
- Intro to Parallel Processing - Some key terms
- Intro to Parallel Processing - Why is important
- Parallel programming by multi-threading (C++ and Java threads)
- Programming with OpenMP: setting working environment, use docs and resources
- Programming with OpenMP - parallel structures, syntax and key elements (OpenMP 2.0 in VS2017)
- Parallel algorithms
- Solving problems: sorting, searching, image processing in parallel
- Advanced stuff
Recommended resources to read/watch
- David E. Culler, Anoop Gupta, Jaswinder Pal Singh - Parallel Computer Architecture: A Hardware/Software Approach, Morgan Kaufmann Publishers Inc., USA, 1997, ISBN:1558603433
- Ananth Grama, Anshul Gupta, George Karypis, Vipin Kumar - Introduction to Parallel Computing, Second Edition, Addison Wesley, 2003, ISBN: 0-201-64865-2, https://www-users.cs.umn.edu/~karypis/parbook/
- https://www.openmp.org/specifications/
- Introduction to Parallel Computing by Blaise Barney, https://computing.llnl.gov/tutorials/parallel_comp/
- OpenMP Application Program Interface, Version 2.5 May 2005, https://www.openmp.org/wp-content/uploads/spec25.pdf
- Introduction to OpenMP, by Tim Mattson (Intel)
- Ulrich Drepper, What Every Programmer Should Know About Memory, 2007
- Introduction to OpenMP by Blaise Barney, Lawrence Livermore National Laboratory
Course and Seminar Resources
- Slack registration link Inregistrarea se face cu adresa de email institutionala (@stud.ase.ro)
- Introduction to Parallel Processing lectures
- Parallel Processing - CPP and OMP lectures
- Parallel Processing - Algorithms for sorting, searching and from other fields that can be parallized lectures
- Course and seminar examples
- Link fisier parole de test
- Stanford Large Network Dataset Collection