OpenMP
ΕΡΓΑΣΤΗΡΙΟ 4
Παράδειγμα 1
Δημιουργία ενός αριθμού νημάτων (ο αριθμός καθορίζεται από όρισμα της γραμμής εντολών) και εμφάνιση μηνύματος που περιέχει τον αριθμό νήματος για κάθε νήμα.
Παράδειγμα 2
Παραδείγματα με μεταβλητές private , firstprivate και shared.
Παράδειγμα 3
Υπολογισμός ορισμένου ολοκληρώματος συνάρτησης (σειριακός κώδικας).
Υπολογισμός ορισμένου ολοκληρώματος συνάρτησης (παράλληλος κώδικας).
Υπολογισμός ορισμένου ολοκληρώματος συνάρτησης με χρήση reduction.
ΕΡΓΑΣΤΗΡΙΟ 5
Παράδειγμα 4
Δομές διαμοιρασμού εργασίας (single, sections, for)
Παράδειγμα 5
Υπολογισμός του π με βάση τον τύπο:
Υπολογισμός του π με βάση τον τύπο:
Παράδειγμα 6
Χρονοπρογραμματισμός βρόχων. Επιλογή χρονοδιαγραμμάτων.
ΕΡΓΑΣΤΗΡΙΟ 6
Παράδειγμα 7
Ταξινόμηση odd-even
Παραδείγματα ανακεφαλαίωσης
Άθροισμα στοιχείων πίνακα Ν θέσεων με τυχαίες τιμές
Άθροισμα ακέραιων τιμών από το 1 μέχρι το Ν
Ασκήσεις (και λύσεις)
Άσκηση 1
Να γράψετε πρόγραμμα που να δημιουργεί 5 νήματα. Το κάθε νήμα απλά να εμφανίζει έναν τυχαίο ακέραιο αριθμό στο διάστημα [1,100] και να τερματίζει. Γράψτε τις εντολές μεταγλώττισης και εκτέλεσης του προγράμματος.
Άσκηση 2
Να γράψετε πρόγραμμα που να δέχεται ως παράμετρο γραμμής εντολών έναν ακέραιο αριθμό και να εμφανίζει το άθροισμα όλων των θετικών ακεραίων που είναι μικρότεροι ή ίσοι του αριθμού αυτού (οι σχετικές μεταβλητές να δηλωθούν ως τύπου long long). Για τον υπολογισμό του αθροίσματος να χρησιμοποιεί νήματα. Ο αριθμός των νημάτων θα περνά επίσης ως παράμετρος γραμμής εντολών. Υπολογίστε το άθροισμα των πρώτων 10.000.000 ακέραιων αριθμών χρησιμοποιώντας 4 νήματα. Γράψτε τις εντολές μεταγλώττισης και εκτέλεσης του προγράμματος
Άσκηση 3
Να γράψετε πρόγραμμα που να γεμίζει με τυχαίες ακέραιες τιμές στο διάστημα [1,10] δύο διανύσματα 1000 θέσεων το καθένα και να υπολογίζει το εσωτερικό τους γινόμενο (http://mathinsight.org/dot_product_matrix_notation). Για τον υπολογισμό του εσωτερικού γινομένου η εργασία να «σπάσει» σε 4 νήματα.
Άσκηση 4
Σε έναν κύκλο με ακτίνα r η επιφάνεια του είναι πr^2 ενώ η επιφάνεια του περιγεγραμμένου στον κύκλο τετραγώνου είναι 4r^2. Εξετάζοντας το λόγο της επιφάνειας του κύκλου προς την επιφάνεια του τετραγώνου προκύπτει ότι θα πρέπει να ισούται με π/4. Αν πραγματοποιηθεί ένα πείραμα στο οποίο θα μετρούνται πόσα από ένα σύνολο τυχαίων σημείων πέφτουν εντός του κύκλου τότε ο λόγος του πλήθους των τυχαίων σημείων εντός του κύκλου προς το συνολικό πλήθος σημείων θα πρέπει και αυτός να ισούται με π/4. Να γράψετε πρόγραμμα που να υπολογίζει χρησιμοποιώντας τον τρόπο που αναφέρθηκε τον αριθμό π. Η εργασία να μοιράζεται σε έναν αριθμό νημάτων. Εκτελέστε το πρόγραμμα για πλήθος 300.000.000 σημείων και για 8 νήματα.
Άσκηση 5
Γράψτε πρόγραμμα που να πραγματοποιεί 10.000 σειριακές αναζητήσεις σε ένα διάνυσμα με 1.000.000 τυχαίες τιμές. Γράψτε ισοδύναμο παράλληλο κώδικα.