Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεDamae Riga Τροποποιήθηκε πριν 10 χρόνια
1
Π ΑΡΑΛΛΗΛΗ / ΚΑΤΑΝΕΜΗΜΕΝΗ ΕΠΕΞΕΡΓΑΣΙΑ ΚΑΙ ΕΦΑΡΜΟΓΕΣ Εισαγωγή στο OpenMP
2
Π ΕΡΙΕΧΟΜΕΝΑ Εισαγωγή Σύνταξη στη C/C++ Hello World Σύνταξη στη C/C++ Κανόνας του τραπεζίου Υπολογισμός π Αναφορές
3
Ε ΙΣΑΓΩΓΗ Shared memory συστήματα Pthreads OpenMP Java threads Το OpenMP είναι προγραμματισμός σε πιο “υψηλό” επίπεδο από το Pthreads Πρέπει να το υποστηρίζει ο compiler gcc: -fopenmp
4
Ε ΙΣΑΓΩΓΗ OpenMP SPMD (Υπάρχει η δυνατότητα και για MPMD) Βασίζεται στα νήματα Μνήμη Κοινή μεταξύ των threads Τοπική για κάθε thread (τα άλλα δεν έχουν πρόσβαση)
5
Σ ΥΝΤΑΞΗ ΣΤΗ C / C ++ #include #pragma omp directive [ clauses [ ] ] directive: parallel, parallel for clause: num_threads (number of threads) # pragma omp parallel\ num_threads(thread_count) int omp_get_thread_num () : thread id int omp_get_num_threads () : αριθμός threads
6
H ELLO W ORLD #include void Hello(void); int main(int argc, char* argv[]){ int thread_count = strtol(argv[1], NULL, 10); # pragma omp parallel num_threads(thread_count) Hello(); return 0; } void Hello(void){ int my_rank = omp_get_thread_num() ; int thread_count = omp_get_num_threads (); printf("Hello from thread %d of %d\n", my_rank, thread_count); }
7
Σ ΥΝΤΑΞΗ ΣΤΗ C/C++ implicit barrier parallel for single _OPENMP: δείχνει αν υποστηρίζει ο compiler OpenMP Προσοχή στα «κρίσιμα τμήματα» #pragma omp critical Μεταβλητές private : clause shared : clause Reduction clause reduction (+,-,*: μεταβλητή)
8
Σ ΥΝΤΑΞΗ ΣΤΗ C/C++ parallel for directive Πρέπει να ξέρουμε από πριν τον αριθμό των επαναλήψεων No data dependence Όχι if με return
9
Α ΝΑΦΟΡΕΣ Peter S. Pacheco, An Introduction to Parallel Programming, Morgan Kaufmann, 2011 Thomas Rauber, Gudula Runger, Parallel Programming for Multicore and Cluster Systems, Springer, 2010
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.