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

Course and Seminar Resources