PDC 7
PDC 7
Race Condition
Race Condition
• When multiple threads Shared
Variable
simultaneously read/write
shared variable sum = 0
• Reduction 0
• Atomic +1 Thread B
• Critical
1
+1 +1
• Downside? 1
Wait
• SLOOOOWWW +1
• Overhead & serialization 2
+1
3
OMP Atomic
• Atomic like “mini” critical
Shared
• Only one line Variable
• Certain limitations sum = 0
Thread 0
#pragma omp atomic
sum += i; 0
+1 Thread 1
• Hardware controlled 1
Wait
• Less overhead than critical +1
2
+1
3
OMP Reduction
#pragma omp reduction (operator:variable)
int main() {
int i;
const int N = 1000;
int sum = 0;