Atomic Operations

Παρασκευή, 6 Μαΐου 2022 - 6:16 μ.μ.
- από τον χρήστη Χατζηδούκας Παναγιώτης

Η υλοποίηση της εντολή atomic του OpenMP μπορεί να βασίζεται στις ακόλουθες ατομικές εντολές του GCC compiler: 
https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html

π.χ. οι παρακάτω κώδικες δίνουν το ίδιο αποτέλεσμα όμως δεν έχουν την ίδια απόδοση:

pthread_mutex_lock(&mutex);
sum++;
pthread_mutex_unlock(&mutex);
__atomic_fetch_add(&sum, 1, __ATOMIC_SEQ_CST);

Ο ισόδυναμος κώδικας της δεύτερης περίπτωσης με OpenMP: 

#pragma omp atomic
sum++;
Σχόλια (0)