View on GitHub

ceteiep_pdc

Parallel and Distributed Computing

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 τυχαίες τιμές. Γράψτε ισοδύναμο παράλληλο κώδικα.


Εργασίες