User Tools

Site Tools


skill-tree:k:3:2:b

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
skill-tree:k:3:2:b [2020/06/05 17:06] – external edit 127.0.0.1skill-tree:k:3:2:b [2025/04/16 18:30] (current) – external edit 127.0.0.1
Line 1: Line 1:
-# K3.2-B Parallelization Overheads +# K3.2 Parallelization Overheads 
-# Background + 
-# Aim +Parallelization of a program always introduces some extra work in addition to the work done by the sequential version of the program. 
-# Outcomes +The main sources of parallelization overhead are data communication (between processes) and synchronization (of processes and threads). 
-   the various overheads, i.e. overheads for communicationsynchronization  +Other sources are additional operations that are introduced at the algorithmic level (for example in global reduction operations) or at a lower software level (for example by address calculations). 
-   the problems of load imbalances+ 
 + 
 +#Learning Outcomes 
 + 
 +Comprehend that **Data communication** is necessary for programs that are parallelized for distributed memory computers (if data communication is not necessary the program is called trivially or embarrassingly parallel). 
 +* Comprehend that **Synchronization** plays an important role with shared memory parallelization. 
 +* Comprehend that there are also other sources of parallel inefficiency like: 
 +    * Parts of a program that were not parallelized and still run serially. 
 +    * Unbalanced loads. 
 +* Comprehend that there are two hardware effects that can reduce the efficiency of the execution of shared-memory parallel programs: 
 +    * **NUMA** can lead to noticeable performance degradation if data locality is bad (i.e. if too much data that a thread need is not in its NUMA domain). 
 +    * **False sharing** occurs if threads process data that is in the same data cache linewhich can lead to serial execution or even take longer than explicitly serial execution of the affected piece of code. 
 +Comprehend the overheads caused by redundant computations 
 +* Comprehend the problems of execution speed noise (OS jitter, cache contention, thermal throttling, etc.), and typical trade-offs (e.g. reducing the synchronization overhead by increasing the communication overhead)
  
-# Subskills 
  
skill-tree/k/3/2/b.1591369587.txt.gz · Last modified: 2020/06/05 17:06 by 127.0.0.1