13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1



Σχετικά έγγραφα
Μετρικές & Επιδόσεις. Κεφάλαιο V

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Μετρικές και Επιδόσεις 6

Network Algorithms and Complexity Παραλληλοποίηση του αλγορίθμου του Prim. Αικατερίνη Κούκιου

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

Παράλληλος προγραμματισμός: Σχεδίαση παράλληλων προγραμμάτων

Για τις λύσεις των προβλημάτων υπάρχει τρόπος εκτίμησης της επίδοσης (performance) και της αποδοτικότητας (efficiency). Ερωτήματα για την επίδοση

Minimum Spanning Tree: Prim's Algorithm

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45

Πολυπύρηνοι επεξεργαστές Multicore processors

Επιτεύγµατα των Λ.Σ.

Ε-85: Ειδικά Θέµατα Λογισµικού

Αρχιτεκτονική Υπολογιστών

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 4 η : Παράλληλος Προγραμματισμός. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Αμοιβαίος αποκλεισμός

Παράλληλος προγραμματισμός: παράλληλες λ υπολογιστικές πλατφόρμες και ανάλυση προγραμμάτων

Κεφάλαιο 5 Ανάλυση Αλγορίθμων

Κεφάλαιο 3. Διδακτικοί Στόχοι

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

Τεχνολογικά Επιτεύγµατα. Πλεονεκτήµατα. Ορισµός Κατανεµηµένου Συστήµατος. Μειονεκτήµατα. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

Παράλληλη Επεξεργασία

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

Αρχιτεκτονική Υπολογιστών

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

Κατανεμημένος και Παράλληλος Προγραμματισμός. Ύλη μαθήματος. Βιβλιογραφία Μαθήματος 2/27/2016

EM 361: Παράλληλοι Υπολογισμοί

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

12/5/18. συστημάτων. Το λογισµικό συστηµάτων. Κεφάλαιο 5

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Προγραµµατισµός Η/Υ. Μέρος2

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΛΟΓΙΣΜΙΚΟ (software)

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Λειτουργικά συστήματα πραγματικού χρόνου

Εισαγωγή στην Πληροφορική

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

Προγραμματισμός με Κοινόχρηστο Χώρο Διευθύνσεων 4

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΕΙΣΑΓΩΓΗ. Παρέχει µια διεπαφή (interface) ανάµεσα στο υλισµικό και στα προγράµµατα εφαρµογών/χρηστών.

1.1 Παράλληλοι υπολογιστές

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Η πολυνηματική γλώσσα προγραμματισμού Cilk

Θέματα Μεταγλωττιστών

Λειτουργικά Συστήματα Η/Υ

Διαφορές single-processor αρχιτεκτονικών και SoCs

Παράλληλη Επεξεργασία

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP (2 ο Μέρος)

Λειτουργικά Συστήματα (Λ/Σ)

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

Απαντήσεις. Απάντηση. Απάντηση

Ο βασικός παράγοντας είναι ο χρόνος αξιοποίησης του επεξεργαστή Ελάχιστος αριθµός πράξεων και όχι µακρόχρονες αιτήσεις Ε/Ε

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

EM 361: Παράλληλοι Υπολογισμοί

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 2.3: Προγραμματισμός. Επιστήμη ΗΥ Κεφ. 2.3 Καραμαούνας Πολύκαρπος

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή

Συστήµατα Παράλληλης Επεξεργασίας. Παράλληλοςπρογραµµατισµός: Υλοποίηση παράλληλων προγραµµάτων

Συγχρονισµός: Αδιέξοδο & Παρατεταµένη Στέρηση

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Το Πρόβληµα Οµοφωνίας Σύγχρονα Συστήµατα Μεταβίβασης Μηνύµατος Μοντέλο Κατάρρευσης (crash model) Οι διεργασίες µπορούν να σταµατούν να εκτελούνται σε

Παράλληλη Επεξεργασία

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Πρόβλημα 37 / σελίδα 207

Αµοιβαίοςαποκλεισµός. Κατανεµηµένα Συστήµατα 03-1

Κεφάλαιο 4 Σύνδεση Μικροεπεξεργαστών και Μικροελεγκτών ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Αρχιτεκτονική Υπολογιστών

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Transcript:

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 ΓΛΩΣΣΑΡΙ Αµοιβαίος αποκλεισµός (mutual exclusion) Στο µοντέλο κοινού χώρου διευθύνσεων, ο αµοιβαίος αποκλεισµός είναι ο περιορισµός του αριθµού των διεργασιών που επιτρέπεται να εκτελέσουν ένα συγκεκριµένο κοµµάτι κώδικα. Συνήθως χρησιµοποιείται στα σηµεία του κώδικα που προσπελαύνονται κοινές µεταβλητές ώστε να αποφευχθεί η ταυτόχρονη (και πιθανώς λανθασµένη) τροποποίησή τους από δύο ή περισσότερες διεργασίες. Συνήθεις µηχανισµοί αµοιβαίου αποκλεισµού είναι οι σηµατοφόροι (semaphores) και, ειδικά στον παράλληλο προγραµµατισµό, οι κλειδαριές. Ανάθεση (assignment) Είναι η οµαδοποίηση των στοιχειωδών εργασιών (που προέκυψαν από τη διάσπαση) σε ανεξάρτητες διεργασίες κατά τον διαχωρισµό ενός προγράµµατος σε διεργασίες. Οι διεργασίες αυτές µπορούν να εκτελεστούν ταυτόχρονα. Κάθε µία εκτελείται εξ ολοκλήρου από ένα επεξεργαστή. Η ανάθεση είναι υπεύθυνη για την ισοκατανοµή του φόρτου. Αντιστοίχηση (mapping) Είναι το δεύτερο στάδιο της τοποθέτησης και το τελευταίο βήµα στην διαδικασία παραλληλοποίησης. Καθορίζει ποιος επεξεργαστής θα εκτελέσει ποια διεργασία. Μπορεί να είναι στατική (καθοριζόµενη από τον προγραµµατιστή πριν την εκτέλεση) ή δυναµική (µεταβαλλόµενη κατά τη διάρκεια της εκτέλεσης από το λειτουργικό σύστηµα) και γίνεται µε γνώµονα τη µείωση των επικοινωνιών. Απενεργοποίηση (deactivation) στοιχείων / επεξεργαστών Βλ. ενεργοποίηση στοιχείων / επεξεργαστών. Αποδοτικότητα (efficiency) Είναι ο λόγος της επιτάχυνσης προς τον αριθµό των επεξεργαστών (n) και δείχνει ως ένα βαθµό πόσο αποδοτικά χρησιµοποιούνται οι επεξεργαστές. Συµβολίζεται µε e n, και ισούται µε S n / n (πάντα 1). Αυτοδροµολόγηση (self-scheduling)

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 2 Τεχνική δυναµικής ανάθεσης βασικών εργασιών σε διεργασίες. Οι διεργασίες συνεχώς «ζητούν» και εκτελούν εργασίες. Με αυτό τον τρόπο, οι ταχύτεροι επεξεργαστές θα προλάβουν να ζητήσουν και να εκτελέσουν περισσότερες εργασίες από τους πιο αργούς. Το αποτέλεσµα είναι η αυτόµατη ισοκατανοµή του φόρτου. ιάσπαση σε εργασίες (decomposition) Αποτελεί το σηµαντικότερο στάδιο του διαχωρισµού σε διεργασίες και αναφέρεται στην «αναγνώριση» στοιχειωδών λειτουργιών (εργασιών) ενός προγράµµατος, οι οποίες µπορούν να εκτελεστούν ταυτόχρονα. Ακολουθείται από την ανάθεση των εργασιών σε διεργασίες. ιάσπαση βρόχου (loop splitting) Μέθοδος ανάθεσης βασικών εργασιών σε διεργασίες. Οι βασικές εργασίες είναι οι επαναλήψεις ενός βρόχου και σε κάθε διεργασία ανατίθενται ένα σύνολο από µη συνεχόµενες επαναλήψεις. Αν οι διεργασίες είναι Ν, η i-οστή διεργασία αναλαµβάνει τις επαναλήψεις i, i + Ν, i + 2N, ιαχωρισµός σε διεργασίες (partitioning) Το πρώτο βήµα κατά την παραλληλοποίηση προγραµµάτων. Περιλαµβάνει την διάσπαση σε εργασίες και την ανάθεση των εργασιών σε διεργασίες. ιαχωρισµός σκακιέρας (checkerboard partitioning) Μέθοδος ανάθεσης βασικών εργασιών σε διεργασίες, στην περίπτωση διπλού βρόχου (ο ένας µέσα στον άλλο). Η παραλληλοποίηση γίνεται µε τµηµατική δροµολόγηση και των δύο βρόχων µαζί. ικτυακός παράλληλος προγραµµατισµός (cluster computing) Είδος παράλληλου / κατανεµηµένου προγραµµατισµού σε ένα τοπικό δίκτυο υπολογιστών. Είναι ουσιαστικά παράλληλος προγραµµατισµός όπου οι ανεξάρτητοι υπολογιστές του δικτύου παίζουν το ρόλο των επεξεργαστών µίας MIMD παράλληλης µηχανής. Λόγω της κατανεµηµένης αυτής αρχιτεκτονικής, ο δικτυακός παράλληλος προγραµµατισµός γίνεται κυρίως µε χρήση του µοντέλου µεταβίβασης µηνυµάτων και οδηγεί σε χονδρόκοκκα προγράµµατα προκειµένου να αποφεύγονται οι (χρονοβόρες) επικοινωνίες του δικτύου. Το PVM είναι ένα παράδειγµα περιβάλλοντος για δικτυακό παράλληλο προγραµµατισµό.

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 3 Εικονικοί επεξεργαστές (virtual processors) Είναι οι επεξεργαστές που υποθέτουµε ότι θα διαθέτει το σύστηµά µας, όταν σχεδιάζουµε ένα παράλληλο πρόγραµµα. Συνήθως, µάλιστα, γίνεται η υπόθεση ότι υπάρχουν τόσοι επεξεργαστές όσα και τα στοιχεία της εισόδου του προγράµµατος. Στην πράξη τα συστήµατα που θα µας δοθούν θα διαθέτουν πολύ λιγότερους πραγµατικούς επεξεργαστές. Έτσι, εάν υποθέσαµε πολλούς εικονικούς επεξεργαστές, κάθε πραγµατικός επεξεργαστής θα αναλάβει να εξοµοιώσει τις εργασίες αρκετών εικονικών επεξεργαστών. Έµµεσος παράλληλος προγραµµατισµός (implicit parallel programming) Είναι ο προγραµµατισµός σε µία σειριακή γλώσσα προγραµµατισµού µε µετέπειτα χρήση κατάλληλων µεταφραστών και άλλων εργαλείων παραλληλοποίησης. Πρόκειται, δηλαδή, για αυτόµατη εξαγωγή παραλληλισµού από σειριακά προγράµµατα. Εµποδιστικές και µη επικοινωνίες (blocking / non-blocking communications) Εµποδιστικές χαρακτηρίζονται οι επικοινωνίες (αποστολή / λήψη µηνύµατος στο µοντέλο µεταβίβασης µηνυµάτων) οι οποίες οδηγούν σε αναµονή της καλούσας διεργασίας µέχρι να ολοκληρωθούν. Αντίθετα, αν µια διεργασία κάνει κλήση µη εµποδιστικής επικοινωνίας, µπορεί να συνεχίσει αµέσως τους υπολογισµούς της ακόµα και αν η επικοινωνία δεν έχει ολοκληρωθεί. Οι µη εµποδιστικές επικοινωνίες, όταν χρησιµοποιούνται προσεκτικά, µπορούν να οδηγήσουν σε χρονική επικάλυψη των υπολογισµών και των επικοινωνιών, βελτιώνοντας έτσι τις επιδόσεις. Ενεργοποίηση (activation) στοιχείων / επεξεργαστών Σε ένα πρόγραµµα παραλληλισµού δεδοµένων, κάθε εντολή την εκτελούν όλοι οι επεξεργαστές, σε διαφορετικά στοιχεία µίας παράλληλης µεταβλητής ο καθένας. Όµως, κάθε γλώσσα προγραµµατισµού για αυτό το µοντέλο διαθέτει λειτουργίες και µηχανισµούς προσδιορισµού υποσυνόλου των επεξεργαστών, οι οποίοι επιθυµούµε (δεν επιθυµούµε), για κάποιο λόγο, να εκτελέσουν µία συγκεκριµένη λειτουργία. Οι λειτουργίες αυτές ονοµάζονται λειτουργίες ενεργοποίησης (απενεργοποίησης) των επεξεργαστών ή των αντίστοιχων στοιχείων της παράλληλης µεταβλητής. Είναι επίσης γνωστές και σαν λειτουργίες µάσκας. Ενορχήστρωση (orchestration)

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 4 Είναι ο καθορισµός των σηµείων αλλά και του τρόπου επικοινωνίας των διεργασιών ενός παράλληλου προγράµµατος και αποτελεί το πρώτο στάδιο της τοποθέτησης των διεργασιών στους επεξεργαστές. Εξαρτάται άµεσα από το προγραµµατιστικό µοντέλο. Επιπρόσθετος χρόνος παραλληλισµού (parallel overhead) Είναι οι καθυστερήσεις που εισάγονται λόγω της παράλληλης εκτέλεσης ενός προγράµµατος και οι οποίες δεν υπάρχουν όταν το πρόγραµµα εκτελείται σειριακά. Συγκεκριµένα, περιλαµβάνονται καθυστερήσεις λόγω των επικοινωνιών και λόγω της ανισοκατανοµής του φόρτου. Επιτάχυνση (speedup) Είναι ο λόγος του σειριακού (δηλαδή µε ένα επεξεργαστή) προς τον παράλληλο χρόνο εκτέλεσης και δείχνει πόσες φορές ταχύτερα εκτελείται το παράλληλο πρόγραµµα σε σχέση µε το σειριακό. Συµβολίζεται µε S n και ισούται µε Τ 1 / Τ n, όπου n είναι ο αριθµός των επεξεργαστών. Ικανότητα κλιµάκωσης (scalability) Είναι η ικανότητα που διαθέτει ένα σύστηµα να διατηρεί κάποιες παραµέτρους του σταθερές όταν γίνεται κλιµάκωση κάποιον άλλων. Συγκεκριµένα, στην παράλληλη επεξεργασία, ένα παράλληλο σύστηµα (αλγόριθµος + αρχιτεκτονική) είναι ικανό κλιµάκωσης (scalable) αν για κάθε αύξηση του αριθµού επεξεργαστών µπορεί να αυξηθεί κατάλληλα το µεγέθους εισόδου έτσι ώστε η αποδοτικότητα να παραµένει σταθερή. Κλειδαριές (locks / spinlocks) Ο δηµοφιλέστερος µηχανισµός αµοιβαίου αποκλεισµού για προγραµµατισµό στο µοντέλο κοινού χώρου διευθύνσεων. Οι κλειδαριές επιτρέπουν το πολύ σε µία διεργασία να βρίσκεται στην κρίσιµη περιοχή της και είναι λειτουργικά ισοδύναµες µε τους δυαδικούς σηµατοφόρους. Η κλειδαριά θα πρέπει να κλειδώνεται ακριβώς πριν την κρίσιµη περιοχή και να ξεκλειδώνεται αµέσως µετά. Κλήσεις φραγής (barrier calls) Αποτελούν βασικό µηχανισµό συγχρονισµού µεταξύ των διεργασιών ενός προγράµµατος (τόσο στο µοντέλο κοινού χώρου διευθύνσεων όσο και στο µοντέλο µεταβίβασης µηνυµάτων). Μία διεργασία που εκτελεί κλήση φραγής διακόπτει τη λειτουργία της έως ότου όλες οι υπόλοιπες διεργασίες εκτελέσουν την ίδια κλήση.

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 5 Κλιµάκωση (scaling) Είναι η µεταβολή (συνήθως αύξηση) σε κάποια παράµετρο ενός συστήµατος (π.χ. κλιµάκωση των επεξεργαστών ή του µεγέθους εισόδου ενός προγράµµατος). Κοινή µεταβλητή (shared variable) Οι κοινές µεταβλητές απαντώνται στο µοντέλο κοινού χώρου διευθύνσεων και αποτελούν µεταβλητές τις οποίες µπορούν να διαβάσουν και να τροποποιήσουν όλες οι διεργασίες. Κοινός χώρος διευθύνσεων (shared address space) Μοντέλο παράλληλου προγραµµατισµού, το οποίο δίνει στον προγραµµατιστή την εντύπωση ότι ο υπολογιστής διαθέτει αρχιτεκτονική MIMD κοινής µνήµης. Συγκεκριµένα, ένα παράλληλο πρόγραµµα αποτελείται από σύνολο διεργασιών που εκτελούνται ταυτόχρονα και ασύγχρονα από διαφορετικούς επεξεργαστές και οι οποίες διαθέτουν κοινές µεταβλητές µεταξύ τους. Η κοινή µνήµη του Unix (System V shared memory), η Sequent-C και τα νήµατα αποτελούν δηµοφιλή περιβάλλοντα / γλώσσες προγραµµατισµού σε αυτό το µοντέλο. Κόστος (cost) Είναι το γινόµενο του αριθµού επεξεργαστών (n) επί τον χρόνο εκτέλεσης ενός προγράµµατος και δείχνει για πόσο χρόνο χρησιµοποιήθηκαν αθροιστικά οι επεξεργαστές. Θεωρείται βέλτιστο όταν αποτελεί σταθερό πολλαπλάσιο του σειριακού χρόνου εκτέλεσης. Συµβολίζεται µε c n και ισούται µε nt n. Λειτουργίες µάσκας (masking operations) Πρόκειται για µία άλλη ονοµασία των λειτουργιών ενεργοποίησης / απενεργοποίησης επεξεργαστών. Μεταβλητή συνθήκης (condition variable) Κοινή µεταβλητή η οποία µπορεί να χρησιµοποιηθεί για την απενεργοποίηση µίας διεργασίας µέχρι να συµβεί κάποιο γεγονός (συγκεκριµένα, µέχρι κάποια άλλη διεργασία να την ενεργοποιήσει). Αποτελεί µηχανισµό συγχρονισµού (όπως και οι κλήσεις φραγής) που απαντάται κυρίως στα νήµατα POSIX. Μεταβίβαση µηνυµάτων (message passing)

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 6 Μοντέλο παράλληλου προγραµµατισµού, το οποίο δίνει στον προγραµµατιστή την εντύπωση ότι ο υπολογιστής διαθέτει αρχιτεκτονική MIMD κατανεµηµένης µνήµης. Συγκεκριµένα, ένα παράλληλο πρόγραµµα αποτελείται από σύνολο διεργασιών που εκτελούνται ταυτόχρονα και ασύγχρονα από διαφορετικούς επεξεργαστές και οι οποίες δεν έχουν τίποτε κοινό και επικοινωνούν µεταξύ τους µόνο µέσω αποστολής και λήψης µηνυµάτων. Το PVM και το MPI αποτελούν δύο δηµοφιλή περιβάλλοντα για προγραµµατισµό σε αυτό το µοντέλο. Νήµατα (threads) Τα νήµατα µπορούν να περιγραφούν ως ένα είδος ελαφριών διεργασιών, κατάλληλες για το µοντέλο κοινού χώρου διευθύνσεων. Ένα πρόγραµµα αποτελείται εποµένως από συλλογή νηµάτων, τα οποία όµως έχουν ως κοινές µεταβλητές όλες τις καθολικές µεταβλητές. Η βιβλιοθήκη των νηµάτων (ενσωµατωµένη µερικές φορές στον πυρήνα του λειτουργικού συστήµατος) διαθέτει µηχανισµούς για την δηµιουργία των νηµάτων, καθώς και για αµοιβαίο αποκλεισµό και το συγχρονισµό τους. Ευρέως διαδεδοµένα και δηµοφιλή είναι τα νήµατα POSIX (γνωστά ως pthreads). Νόµος του Amdahl Ο νόµος του Amdahl καθορίζει ότι ακόµα και το παραµικρό τµήµα σειριακών (µη παραλληλοποιήσιµων) υπολογισµών σε ένα πρόγραµµα, είναι ικανό να περιορίσει σηµαντικά την επιτάχυνση και την αποδοτικότητα της παράλληλης εκτέλεσής του. Συµβολικά, αν f είναι το ποσοστό των σειριακών υπολογισµών, τότε: S n = n / (nf + 1 f) 1 / f, όπου n είναι ο αριθµός των επεξεργαστών. Νόµος του Gustafson Ο νόµος του Gustafson αντιπαρέρχεται το νόµο του Amdahl και καθορίζει ότι πολλές φορές µπορούµε να επιτύχουµε οποιαδήποτε επιτάχυνση και οποιαδήποτε αποδοτικότητα κατά την παράλληλη εκτέλεση ενός προγράµµατος, αρκεί να το εκτελέσουµε µε αρκετά µεγάλο µέγεθος εισόδου. Συµβολικά, αν κατά την παράλληλη εκτέλεση µε n επεξεργαστές και µέγεθος εισόδου Ν στοιχείων, το ποσοστό των σειριακών υπολογισµών ήταν f '( N ), τότε: S n ( N ) = n ( n 1) f '( N ). Παράλληλη µεταβλητή (parallel ή plural variable) Μία µεταβλητή σε πρόγραµµα παραλληλισµού δεδοµένων, τα στοιχεία της οποίας διαµοιράζονται σε και τροποποιούνται από όλους τους επεξεργαστές. Πρόκειται για

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 7 διανύσµατα ή πίνακες, όπου κάθε στοιχείο τους το αναλαµβάνει και διαφορετικός επεξεργαστής. Παραλληλισµός δεδοµένων (data parallelism) Μοντέλο παράλληλου προγραµµατισµού, το οποίο δίνει στον προγραµµατιστή την εντύπωση ότι ο υπολογιστής διαθέτει αρχιτεκτονική SIMD. Συγκεκριµένα, δηµιουργείται ένα πρόγραµµα, το οποίο το εκτελούν όλοι οι επεξεργαστές εντελώς συγχρονισµένα (εντολή προς εντολή) αλλά ο κάθε επεξεργαστής µπορεί να το εφαρµόζει σε διαφορετικά δεδοµένα. Οι MPL, C*, DPCE και HPF είναι µερικές γλώσσες παράλληλου προγραµµατισµού που ακολουθούν αυτό το µοντέλο. Παράλληλος προγραµµατισµός (parallel programming) Προγραµµατισµός µε χρήση παράλληλης γλώσσας προγραµµατισµού προκειµένου το πρόγραµµα να εκτελεστεί σε µία παράλληλη µηχανή. Οι τρεις βασικότερες µορφές / µοντέλα παράλληλου προγραµµατισµού είναι ο παραλληλισµός δεδοµένων, ο κοινός χώρος διευθύνσεων και η µεταβίβαση µηνυµάτων. Το πρώτο µοντέλο ονοµάζεται και σύγχρονος παράλληλος προγραµµατισµός ενώ τα άλλα δύο ονοµάζονται και µοντέλα ασύγχρονου παράλληλου προγραµµατισµού, αλλά και µοντέλα παραλληλισµού ελέγχου. Σάρωση (scan) Είναι ο υπολογισµός σειράς βαθµωτών µεγεθών από ένα σύνολο στοιχείων. Κάθε ένα από τα υπολογιζόµενα µεγέθη είναι το αποτέλεσµα µερικής υποβίβασης. Για παράδειγµα, δεδοµένου ενός διανύσµατος A = [a 1,, a n ], η σάρωση αθροίσµατος των στοιχείων του θα δώσει τα µερικά αθροίσµατα s 1,, s n, όπου s i = k = i 1 ak. Συλλογικές επικοινωνίες (collective communications) Επικοινωνίες όπου εµπλέκονται όλες οι διεργασίες ενός προγράµµατος στο µοντέλο µεταβίβασης µηνυµάτων. Χαρακτηριστικά παραδείγµατα αποτελούν η εκποµπή, η διασκόρπιση, η συλλογή, η ολική ανταλλαγή, αλλά και οι κλήσεις φραγής, καθώς και οι λειτουργίες υποβίβασης. Τµηµατική δροµολόγηση (block scheduling) Μέθοδος ανάθεσης βασικών εργασιών σε διεργασίες. Οι βασικές εργασίες είναι συνήθως οι επαναλήψεις ενός βρόχου και σε κάθε διεργασία ανατίθενται ένα σύνολο από

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 8 συνεχόµενες επαναλήψεις. Αν κάθε διεργασία αναλάβει W επαναλήψεις, η i-οστή διεργασία αναλαµβάνει τελικά τις επαναλήψεις i W, i W+1, i W+2,, i W+W 1. Τοποθέτηση διεργασιών (placement) Το δεύτερο βήµα κατά την παραλληλοποίηση προγραµµάτων. Περιλαµβάνει την ενορχήστρωση και την αντιστοίχηση των διεργασιών στους επεξεργαστές. Υποβίβαση (reduction) Ο υπολογισµούς ενός βαθµωτού µεγέθους (π.χ. άθροισµα, γινόµενο, λογικό ΚΑΙ) από ένα σύνολο στοιχείων. Για παράδειγµα, η πρόσθεση των στοιχείων ενός διανύσµατος αποτελεί υποβίβαση αθροίσµατος. Χρόνος εκτέλεσης (run time) Ο χρόνος εκτέλεσης ενός (παράλληλου) προγράµµατος καθορίζεται από τη στιγµή που αρχίζουν οι υπολογισµοί µέχρι τη στιγµή που ο τελευταίος (χρονικά) επεξεργαστής ολοκληρώσει την εργασία του. Συµβολίζεται µε T n, όπου n είναι ο αριθµός των επεξεργαστών. MPL, C*, DPCE, HPF Οι MPL (MasPar Parallel application Language), C*, DPCE (Data Parallel C Extensions) και HPF (High Performance Fortran) είναι γλώσσες παράλληλου προγραµµατισµού που ακολουθούν το µοντέλο παραλληλισµού δεδοµένων. MIMD Multiple Instruction Multiple Data. Πρόκειται για αρχιτεκτονική παράλληλων υπολογιστών στην οποία υπάρχουν τουλάχιστον δύο αυτόνοµοι επεξεργαστές, γνωστή επίσης και ως πολυεπεξεργαστής. Αν οι επεξεργαστές είναι συνδεδεµένοι µε κάποιες κοινές µνήµες η αρχιτεκτονική ονοµάζεται MIMD κοινής µνήµης. Αντίθετα, στα µηχανήµατα MIMD κατανεµηµένης µνήµης οι επεξεργαστές διαθέτουν µόνο ιδιωτικές µνήµες και επικοινωνούν µεταξύ τους µέσω κάποιου δικτύου διασύνδεσης. MPI Message Passing Interface. Το πλέον καθιερωµένο πρότυπο για προγραµµατισµό στο µοντέλο µεταβίβασης µηνυµάτων. Οι ευρέως διαδεδοµένες υλοποιήσεις του για τοπικά δίκτυα το κάνουν δηµοφιλές και για δικτυακό παράλληλο προγραµµατισµό.

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 9 Pthreads Βλ. νήµατα. PVM Parallel Virtual Machine (Εικονική Παράλληλη Μηχανή). ηµοφιλές περιβάλλον για προγραµµατισµό στο µοντέλο µεταβίβασης µηνυµάτων και για δικτυακό παράλληλο προγραµµατισµό, ακόµα και για ανοµοιογενή δίκτυα. SIMD Single Instruction Multiple Data. Πρόκειται για αρχιτεκτονική παράλληλων υπολογιστών στην οποία µπορεί να εκτελεστεί µία εντολή τη φορά αλλά ταυτόχρονα σε διαφορετικά δεδοµένα, ανάλογα µε το πόσα επεξεργαστικά στοιχεία υπάρχουν στην κεντρική µονάδα του συστήµατος. System V Shared Memory Είναι η λεγόµενη κοινή µνήµη που διαθέτει το Unix. Αποτελεί ένα σχετικά πρωτόγονο τρόπο δηµιουργίας κοινών µεταβλητών και δοµών αµοιβαίου αποκλεισµού µεταξύ διεργασιών. Όµως, από τη στιγµή που διατίθεται και σε µονοεπεξεργαστικά συστήµατα Unix, αποτελεί ένα εύκολα προσβάσιµο περιβάλλον για κάποιον που δεν διαθέτει παράλληλο υπολογιστή αλλά επιθυµεί να πειραµατιστεί µε το µοντέλο κοινού χώρου διευθύνσεων.