Παραλληλοποίηση αλγορίθµων επίλυσης γενικευµένων πεδίων ϱοής

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Παραλληλοποίηση αλγορίθµων επίλυσης γενικευµένων πεδίων ϱοής"

Transcript

1 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΜΗΧΑΝΙΚΩΝ ΡΕΥΣΤΩΝ & ΣΤΡΟΒΙΛΟΜΗΧΑΝΩΝ Παραλληλοποίηση αλγορίθµων επίλυσης γενικευµένων πεδίων ϱοής ιδακτορική ιατριβή του Αναστάσιου Σωτηρόπουλου Μηχανολόγου Μηχανικού Α.Π.Θ Θεσσαλονίκη 2009

2 ii

3 ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΜΗΧΑΝΙΚΩΝ ΡΕΥΣΤΩΝ & ΣΤΡΟΒΙΛΟΜΗΧΑΝΩΝ Παραλληλοποίηση αλγορίθµων επίλυσης γενικευµένων πεδίων ϱοής ιδακτορική ιατριβή του Αναστάσιου Σωτηρόπουλου Μηχανολόγου Μηχανικού Α.Π.Θ Ο επιβλέπων καθηγητής Καθ. Απόστολος Γούλας η τριµελής συµβουλευτική επιτροπή Καθ. Α. Γούλας Καθ. Ν. Μουσιόπουλος Καθ. Ζ. Σαµαράς Θεσσαλονίκη 2009

4 iv

5 Η ἰσχὺς ἐν τ η ι ἐνώσει Ανάγλυφο µε αναπαράσταση ελληνικής τριήρους πχ, µουσείο Ακρόπολης

6 vi

7 Ευχαριστίες Η διδακτορική αυτή διατριβή είναι αποτέλεσµα προσπαθειών και κόπων πολλών ετών. Οι δυσκολίες που προέκυψαν κατά τη διάρκεια της εκπονήσεώς της ξεπεράστηκαν µε τη ϐοήθεια και συµπαράσταση προσώπων, χωρίς τη συµβολή των οποίων δε ϑα ήταν δυνατή η ολοκλήρωση αυτού του ερευνητικού έργου, και τους οποίους ϑα ήθελα να ευχαριστήσω. Αισθάνοµαι λοιπόν την υποχρέωση να ευχαριστήσω ϑερµά τον Καθηγητή του Τµή- µατος Μηχανολόγων Μηχανικών της Πολυτεχνικής Σχολής του ΑΠΘ κ. Απόστολο Γούλα για την πολύτιµη ϐοήθειά του κατά τη διάρκεια εκπόνησης αυτής της διατριβής, χωρίς την οποία δε ϑα ήταν δυνατή η επιτυχής έκβαση όλης αυτής της προσπάθειας. Επίσης τον ευχαριστώ ειλικρινά για την εµπιστοσύνη που µου έδειξε και για την ευκαιρία που µου έδωσε να ασχοληθώ µε την έρευνα σε ένα τοµέα που πάντα µου κέντριζε το ενδιαφέρον, αναθέτοντας στο πρόσωπό µου το ϑέµα αυτής της διατριβής. Επιπλέον ϑα ήθελα να ευχαριστήσω τα υπόλοιπα µέλη της τριµελούς συµβουλευτικής επιτροπής τους Καθηγητές του Τµήµατος Μηχανολόγων Μηχανικών της Πολυτεχνικής Σχολής του ΑΠΘ κ. Νικόλαο Μουσιόπουλο και κ. Ζήση Σαµαρά για τη ϐοήθεια και τις συµβουλές τους. Θα ήθελα επίσης να ευχαριστήσω τον Επίκουρο Καθηγητή του Τµήµατος Μηχανολόγων Μηχανικών της Πολυτεχνικής Σχολής του ΑΠΘ κ. Κυριάκο Υάκινθο για τη στήριξη, τις γνώσεις σε ϑέµατα ϱευστοµηχανικής που µου προσέφερε και για τις πολύτιµες συµβουλές που µου παρείχε, κάνοντας εφικτή την ολοκλήρωση αυτής της διατριβής µέσα στα απαιτούµενα χρονικά πλαίσια. Ευχαριστώ επίσης τον Επίκουρο Καθηγητή του Τµήµατος Μηχανολόγων Μηχανικών της Πολυτεχνικής Σχολής του ΑΠΘ κ. Ανέστη Κάλφα για τις πολύτιµες συµβουλές και ϐοήθεια που µου παρείχε αυτό το διάστηµα. Επίσης, ευχαριστώ τα υπόλοιπα µέλη του Εργαστηρίου Μηχανικής Ρευστών και Στροβιλοµηχανών και συγκεκριµένα τους ρ. Ζήνωνα Βλαχοστέργιο, ηµήτρη Μισηρλή και Χρήστο Αλµπανάκη, τους ιπλ. Μηχ. Μηχ. Ιωάννη Αϊδαρίνη, Κοσµά Κρητικό, vii

8 viii Αθανάσιο Σιδερίδη και Ανέστη Τσορµπατζίδη. Πέρα από την επιστηµονική συνεργασία όµως ϑα ήθελα να ευχαριστήσω όλα τα µέλη του Εργαστηρίου Μηχανικής Ρευστών και Στροβιλοµηχανών του Τµήµατος Μηχανολόγων Μηχανικών για το άριστο κλίµα συνεργασίας που αναπτύχθηκε και ϐοή- ϑησε στην οµαλή διεκπαιρέωση αυτού του έργου. Τέλος ευχαριστώ από ϐάθος ψυχής την οικογένειά µου και όλους τους ϕίλους µου για την υποµονή που έδειξαν και για τη συµπαράσταση και ηθική στήριξη που µου παρείχαν όλο αυτό το διάστηµα. Αναστάσιος Σωτηρόπουλος

9 ix Η παρούσα διδακτορική διατριβή εκπονήθηκε στα πλαίσια ερευνητικού προγράµ- µατος µε τίτλο «ιερεύνηση διατάξεων εναλλακτών ϑερµότητας σε ακροφύσια καυσαερίων αεροπορικων κινητήρων για τη µείωση των ϱύπων». Το έργο συγχρηµατοδοτείται 75% της ηµόσιας απάνης από την Ευρωπαϊκή Ενωση - Ευρωπαϊκό Κοινωνικό Ταµείο 25% της ηµόσιας απάνης από το Ελληνικό ηµόσιο - Υπουργείο Ανάπτυξης - Γενική Γραµµατεία Ερευνας και Τεχνολογίας στο πλαίσιο του Μέτρου 8.3 του Ε.Π. Ανταγωνιστικότητα - Γ Κοινοτικό Πλαίσιο Στή- ϱιξης. Μέρος της χρηµατοδότησης προέρχεται από τον Ιδιωτικό Τοµέα, MTU Aero Engine GmbH, Munich, Germany

10 x

11 Περίληψη Στην παρούσα διδακτορική διατριβή παρουσιάζεται µια προσπάθεια επιτάχυνσης ε- νός ενδοεργαστηριακού (in-house) κώδικα υπολογιστικής ϱευστοδυναµικής (Computational Fluid Dynamics - CFD) χρησιµοποιώντας υπολογιστικά συστήµατα υψηλής απόδοσης (High Performance Computing - HPC). Το κέρδος που αναµένεται από µια τέτοια προσπάθεια είναι η δραστική µείωση του χρόνου επίλυσης καθώς και η δυνατότητα επίλυσης µεγαλύτερων προβληµάτων. Εισαγωγικά γίνεται ανασκόπηση σε προηγούµενες έρευνες που έχουν γίνει καθώς και αναφορά στις σηµαντικότερες τεχνολογίες και τεχνικές παράλληλου προγραµµατισµού, εργαλεία που διευκολύνουν την έρευνα του µηχανικού στον τοµέα του HPC. Η κατανόηση των τεχνολογιών αυτών όπως και η κατανόηση του προβλήµατος αποτελούν τα ϐασικότερα ϐήµατα για τον µελετητή καθώς η επιλογή του κατάλληλου µοντέλου προγραµµατισµού πάνω στη κατάλληλη τεχνολογία εξαρτάται από τη ϕύση του προβλήµατος. Η σωστή επιλογή λοιπόν ϑα οδηγήσει στη ϐέλτιστη αξιοποίηση των διαθέσιµων αυτών εργαλείων. Ακολουθεί η περιγραφή και λειτουργία της συστοιχίας υπολογιστών που εγκαταστάθηκε πάνω στην οποία εκπονήθηκε η διατριβή αυτή. Στα επόµενα κεφάλαια γίνεται ανάλυση του αρχικού σειριακού κώδικα και επεξηγούνται τα ϐήµατα µετάβασής του σε παράλληλο κώδικα. Περιγράφεται η διαχείριση της µνήµης, ο τρόπος παραλληλοποίησης του προβλήµατος στην περίπτωση απλής γεωµετρίας αλλά και για περιπτώσεις πολλαπλών γεωµετριών (multi-block). Η µέ- ϑοδος αποσύνθεσης πεδίου τιµών που χρησιµοποιείται εφαρµόζεται σε µια και δύο διαστάσεις. Η µονοδιάστατη αποσύνθεση γίνεται σε δύο διευθύνσεις. Κατά την α- ποσύνθεση του προβλήµατος γίνεται προσπάθεια να εξισοροπηθεί ο ϕόρτος εργασίας στους επεξεργαστές ώστε να ελαχιστοποιηθεί ο νεκρός χρόνος. Η επέκταση της συστοιχίας που έγινε µε επεξεργαστές διαφορετικής ταχύτητας επέβαλε την αναθεώρηση του αλγορίθµου αποσύνθεσης ώστε να διανέµει τα δεδοµένα ανάλογα µε την ταχύτητα του επεξεργαστή. Επίσης διερευνάται η δυνατότα αξιοποίησης της διαθέσιµης διανυxi

12 xii Περίληψη σµατικής µονάδας Altivec που παρέχεται από τη χρησιµοποιούµενη αρχιτεκτονική επεξεργαστή της συστοιχίας. Τέλος παρουσιάζονται αποτελέσµατα του παράλληλου κώδικα που δηµιουργήθηκε, αξιολογούνται οι επιδόσεις του συστήµατος και του κώδικα και γίνεται επαλή- ϑευσή των αποτελεσµάτων του συγκρινόµενα µε πειραµατικές µετρήσεις πάνω σε µια σειρά προβληµάτων (test-cases). Τα προβλήµατα που λύθηκαν ήταν ϱοές µόνιµης κατάστασης καθώς και µη µόνιµες ϱοές, ενώ δοκιµάστηκε η αποτελεσµατικότητα του κώδικα σε στρωτές και τυρβώδεις ϱοές µε διάφορα µοντέλα τύρβης. Τα προβλήµατα που επιλύθηκαν αποτελούνται τόσο από απλές γεωµετρίες όσο και από γεωµετρίες πολλαπλών πλεγµάτων.

13 Περιεχόµενα 1 ΕΙΣΑΓΩΓΗ 1 2 Παράλληλα υπολογιστικά συστήµατα Ορισµοί - Κατηγορίες Εξειδικευµένες µονάδες ιανυσµατικοί επεξεργαστές ιανυσµατικές µονάδες επεξεργαστών Επεξεργαστές καρτών γραφικών Προγραµµατιζόµενα ολοκληρωµένα κυκλώµατα Τεχνικές παράλληλου προγραµµατισµού Τεχνικές αποσύνθεσης προβλήµατος Απόδοση παράλληλων συστηµάτων Το πρωτόκολλο MPI Βασικές ϱουτίνες Συλλογική επικοινωνία Παραγόµενοι τύποι δεδοµένων Σειριακός επιλυτής Περιγραφή του σειριακού επιλυτή Βήµατα επίλυσης Εισαγωγή δεδοµένων και Υπολογισµός γεωµετρικών ποσοτήτων Επαναληπτική διαδικασία Ελεγχος τερµατισµού ιακριτοποίηση ιαχείριση µνήµης Επιλυτής συστήµατος Περιγραφή του αλγορίθµου xiii

14 xiv ΠΕΡΙΕΧΟΜΕΝΑ 5 Παραλληλοποίηση του σειριακού κώδικα Ανάλυση σειριακού κώδικα Αποσύνθεση πεδίου Εξισορρόπηση Βελτιωµένη εξισορρόπηση Μελέτη εξάρτησης δεδοµένων Αποσύνθεση στη διεύθυνση k Εξισορρόπηση ιαχείριση µνήµης ιανοµή δεδοµένων Επικοινωνία Παραγόµενοι τύποι δεδοµένων Αποσύνθεση στη διεύθυνση i ιαχείριση µνήµης Επικοινωνία Χειρισµός του αλγορίθµου SIP Χειρισµός Οριακών Συνθηκών Χειρισµός υπολογισµού ϱοής στην έξοδο Συνθήκη περιοδικότητας Επικοινωνία σε πλέγµατα τύπου O Επικοινωνία σε πλέγµατα τύπου C Χειρισµός ελέγχου τερµατισµού Χρήση διανυσµατικής µονάδας Χρήση της µονάδας altivec Επιδόσεις της µονάδας altivec ηµιουργία multi-block επιλυτή ιαχείριση µνήµης η µέθοδος ιαχείριση µνήµης η µέθοδος ιαχείριση µνήµης Εύρεση περιοχών επαφής µεταξύ υποπεδίων Επικοινωνία Επικοινωνία για δισδιάστατη αποσύνθεση

15 ΠΕΡΙΕΧΟΜΕΝΑ xv 7 Συστοιχία Υπολογιστών Υλικό Λογισµικό Λειτουργία Επικοινωνία Εκτέλεση εργασιών Αποτελέσµατα Απόδοση Επίδραση της επιλογής των επεξεργαστών Επαλήθευση αποτελεσµάτων Ροή σε αγωγό µε εµπόδιο Ροή σε ορθογωνικό αγωγό Ροή σε πειραµατική διάταξη T3L Ροή σε πειραµατική διάταξη T3L Ροή σε εναλλάκτη Συµπεράσµατα - Μελλοντική έρευνα Προτάσεις για µελλοντική έρευνα Βιβλιογραφικές αναφορές 127

16 Κατάλογος Σχηµάτων 2.1 Αρχιτεκτονική συστήµατος κοινής µνήµης Αρχιτεκτονική συστήµατος κατανεµηµένης µνήµης Αποσύνθεση σε 1,2 και 3 διαστάσεις Νόµος του Amdahl Κοινοποίηση δεδοµένων ιανοµή και συλλογή δεδοµένων Στοιχειώδης όγκος ελέγχου Λογικό διάγραµµα σειριακού κώδικα Σχήµα διακριτοποίησης HLPA Μετατροπή δισδιάστατου µητρώου σε διάνυσµα Αρίθµηση όγκων ελέγχου Σύστηµα εξισώσεων Πίνακες L και U ιάγραµµα ϱοής του παράλληλου κώδικα Νεκρός χρόνος κατά την επίλυση Αποσύνθεση απλής γεωµετρίας Κατανοµή µνήµης κατά την αποσύνθεση στη διεύθυνση k Επικοινωνία στη µονοδιάστατη αποσύνθεση Απαιτούµενη επικοινωνία για µονοδιάστατη αποσύνθεση Παραγόµενος τύπος δεδοµένων SN_TYPE για επικοινωνία στα µέτωπα S-N Παραγόµενος τύπος δεδοµένων WE_TYPE για επικοινωνία στα µέτωπα W-E Μηδενισµός στα όρια ενός 4x6 υποπροβλήµατος Αποσύνθεση σε 4 πεδία Σύστηµα εξισώσεων για επίλυση σε 4 επεξεργαστές xvi

17 ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ xvii 5.12 Ισοϋψείς ταχυτήτων. Επικοινωνία εντός (αριστερά) και εκτός (δεξιά) της επαναληπτικής διαδικασίας του Stone Χειρισµός οριακής συνθήκης στην έξοδο Γεωµετρία και εφαρµογή συνθήκης περιοδικότητας σε σειρά πτερυγίων στροβιλοµηχανής Οριακή συνθήκη περιοδικότητας και απαιτούµενη επικοινωνία O-type πλέγµα Απαιτούµενη επικοινωνία σε O-type πλέγµα C-type πλέγµα εφαπτόµενο στον εαυτό του Αρίθµηση κόµβων στο πλέγµα Επικοινωνία στο C-type πλέγµα Πρόσθεση σε ϐαθµωτή (scalar) και διανυσµατική (vector) µονάδα Επίδραση διαστάσης προστιθέµενων µητρώων στο χρόνο εκτέλεσης ιάταξη ϱοής σε αγωγό µε εµπόδιο Χρήση συνθήκης σταθερής τιµής πεδίου Χρήση τριών πλεγµάτων ιαχείριση µνήµης για πολλά blocks Μονοδιάστατη αποσύνθεση πολλών πεδίων µε την 1η µέθοδο ιανοµή µητρώων σύµφωνα µε την 1η µέθοδο Μονοδιάστατη αποσύνθεση πολλών πεδίων µε τη 2η µέθοδο Τρόπος αποθήκευσης υποπεδίων κατά τη 2η µέθοδο ισδιάστατη αποσύνθεση πολύπλοκης γεωµετρίας και ανάθεση επίλυσης σε 4 επεξεργαστές Επικοινωνία για δισδιάστατη αποσύνθεση Συστοιχία υπολογιστών ΕΜΡΣ Αρίθµηση επεξεργαστών Απεικόνιση διάταξης ϱοής γύρω από κύβο Επιτάχυνση, ισοϋψείς ταχυτήτων U, W πίεσης Π και πεδίο ταχυτήτων Ροϊκές γραµµές σε διάφορες ϑέσεις Γεωµετρία ορθογωνικού αγωγού Επιτάχυνση Ισοϋψείς ταχυτήτων στην περιοχή εισόδου Ισοϋψείς ταχυτήτων ακριβώς πριν (αριστερά) και µετά (δεξιά) τη γωνία 84

18 xviii ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ 8.9 Πεδία ταχυτήτων (αριστερά) και εµφάνιση δινών στις γωνίες Περιοχή ανακυκλοφορίας και διάγραµµα σύγκλισης για 15 επεξεργαστές Χρόνος επίλυσης και επιτάχυνση συναρτήσει των χρησιµοποιούµενων επεξεργαστών Αριθµός επαναλήψεων συναρτήσει των χρησιµοποιούµενων επεξεργαστών Γεωµετρία και αποσύνθεση σε 2-16 επεξεργαστές Γεωµετρία και αποσύνθεση σε επεξεργαστές ιαγράµµατα σύγκλισης για εκτέλεση σε 1-14 επεξεργαστές ιαγράµµατα σύγκλισης για εκτέλεση σε επεξεργαστές Ισοϋψείς ταχύτητας U για εκτέλεση σε 2-10 επεξεργαστές Ισοϋψείς ταχύτητας U για εκτέλεση σε επεξεργαστές Ισοϋψείς ταχύτητας V για εκτέλεση σε 2-10 επεξεργαστές Ισοϋψείς ταχύτητας V για εκτέλεση σε επεξεργαστές Ισοϋψείς πίεσης P για εκτέλεση σε 2-10 επεξεργαστές Ισοϋψείς πίεσης P για εκτέλεση σε επεξεργαστές Πεδίο ταχυτήτων για εκτέλεση σε 2-10 επεξεργαστές Πεδίο ταχυτήτων για εκτέλεση σε επεξεργαστές Ροϊκές γραµµές για εκτέλεση σε 2-12 επεξεργαστές Ροϊκές γραµµές για εκτέλεση σε επεξεργαστές Σύγκριση αποτελεσµάτων µε πειραµατικές µετρήσεις στη διάταξη T3L Χρόνος επίλυσης και επιτάχυνση συναρτήσει των χρησιµοποιούµενων επεξεργαστών Αριθµός επαναλήψεων συναρτήσει των χρησιµοποιούµενων επεξεργαστών ιαγράµµατα σύγκλισης για εκτέλεση σε 2-12 επεξεργαστές ιαγράµµατα σύγκλισης για εκτέλεση σε επεξεργαστές Ισοϋψείς ταχύτητας U για εκτέλεση σε 2-12 επεξεργαστές Ισοϋψείς ταχύτητας U για εκτέλεση σε επεξεργαστές Ισοϋψείς ταχύτητας V για εκτέλεση σε 1-12 επεξεργαστές Ισοϋψείς ταχύτητας V για εκτέλεση σε επεξεργαστές Ισοϋψείς πίεσης P για εκτέλεση σε 1-12 επεξεργαστές Ισοϋψείς πίεσης P για εκτέλεση σε επεξεργαστές

19 ΚΑΤΑΛΟΓΟΣ ΣΧΗΜΑΤΩΝ xix 8.38 Πεδίο ταχυτήτων για εκτέλεση σε 2-12 επεξεργαστές Πεδίο ταχυτήτων για εκτέλεση σε επεξεργαστές Ροϊκές γραµµές για εκτέλεση σε 2-12 επεξεργαστές Ροϊκές γραµµές για εκτέλεση σε επεξεργαστές Σύγκριση αποτελεσµάτων µε πειραµατικές µετρήσεις στη διάταξη T3L Γεωµετρία προβλήµατος Γεωµετρία και ισοµερής δισδιάστατη αποσύνθεση σε 22 επεξεργαστές Γεωµετρία και εξισορροπηµένη δισδιάστατη αποσύνθεση σε 22 επεξεργαστές Ισοϋψείς ταχύτητας U (αριστερά) και πεδίο ταχυτήτων (δεξιά) Ισοϋψείς ταχύτητας U (αριστερά) και W (δεξιά) Ροϊκές γραµµές σε διάφορες ϑέσεις

20 Κατάλογος Πινάκων 2.1 Σύγκριση Shared-Distributed Memory Systems Αντιστοιχία ϑέσεων µνήµης κατά τη διανυσµατοποίηση Ανάλυση επιδόσεων του σειριακού κώδικα Περιπτώσεις απλής εξισορρόπησης Benchmark για τα 2 είδη επεξεργαστών της συστοιχίας Ορισµός γειτονικών υποπεδίων Επικοινωνία κατά τη διαδικασία του αλγορίθµου Stone Ορισµός γειτονικών υποπεδίων όταν υπάρχει συνθήκη περιοδικότητας Ορισµός γειτονικών υποπεδίων σε πλέγµα τύπου Ο Επιδόσεις altivec για διάφορες πράξεις πλέγµατα, διαστάσεις, και αριθµός κελιών Αριθµός πακέτων Εξισορρόπηση για διάφορους αριθµούς χρησιµοποιούµενων επεξεργαστών xx

21 Κεφάλαιο 1 ΕΙΣΑΓΩΓΗ Η υπολογιστική ϱευστοδυναµική (CFD) αποτελεί, εδώ και χρόνια, ένα αναπόσπαστο µέρος της διαδικασίας σχεδιασµού και µελέτης ενός προϊόντος που λειτουργεί µέσα σε ένα ϱοϊκό πεδίο. Μαζί µε τη ϑεωρητική και πειραµατική προσέγγιση του προ- ϐλήµατος επιδιώκεται η ϐέλτιστη συµπεριφορά του εκάστοτε αντικειµένου µελέτης. Οι συνεχώς αυξανόµενες απαιτήσεις στο χώρο αυτό επιβάλουν τη χρήση ολοένα και ταχύτερων υπολογιστών, που λόγω των ϕυσικών ορίων που επιβάλονται από τα υλικά, η ταχύτητα (αλλά και η µνήµη) αυτή είναι πεπερασµένη και συνήθως ανεπαρκής για τη λύση µεγάλων προβληµάτων. Η παράλληλη επεξεργασία έρχεται να καλύψει την ανάγκη αυτή καθώς δίνει τη δυνατότητα πλέον να λυθούν πολύ µεγαλύτερα προ- ϐλήµατα και σε πολύ µικρότερο χρόνο, αφού το πρόβληµα λύνεται από µια οµάδα υπολογιστών που έχουν αθροιστική υπολογιστική ισχύ και δρουν σαν ένας µεγάλος υπερυπολογιστής. Η παραλληλοποίηση ενός κώδικα έχει κυρίως δύο στόχους, που αφορούν τόσο στον χρόνο αλλά και στον χώρο : επιτάχυνση της διαδικασίας επίλυσης δυνατότητα επίλυσης µεγαλύτερων προβληµάτων Ο αλγόριθµος επίλυσης εκτελεί µια οµάδα πράξεων σε ένα συγκεκριµένο υπολογιστικό πεδίο. Το πεδίο αυτό χωρίζεται σε ίσα µέρη (υποπεδία) και κάθε επεξεργαστής εκτελεί τους ίδιους υπολογισµούς ταυτόχρονα στο δικό του όµως υποπεδίο. Εναλλακτικά µπορεί σε κάθε επεξεργαστή να ανατεθεί µέρος των υπολογισµών (που εκτελούνται σε ολόκληρο το πεδίο) οπότε καθένας εκτελεί διαφορετικά ϐήµατα του αλγορίθµου. Και στις δύο περιπτώσεις ο χρόνος επίλυσης ελαττώνεται αφού κάθε επεξεργαστής εκτελεί λιγότερες πράξεις. 1

22 2 Κεφάλαιο 1. ΕΙΣΑΓΩΓΗ Το δεύτερο όφελος που προκύπτει είναι η δυνατότητα επίλυσης µεγαλύτερων προ- ϐληµάτων, αφού η συνολική διαθέσιµη µνήµη είναι µεγαλύτερη. Ετσι µπορεί να λυθεί ένα πρόβληµα που απαιτεί πολύ µεγάλο αριθµό υπολογιστικών κελιών που δε ϑα µπορούσε να λυθεί σε έναν υπολογιστή λόγω της περιορισµένης διαθέσιµης µνήµης. Η ανάγκη αυτή προκύπτει λόγω της υψηλής επιθυµητής ακρίβειας υπολογισµού που απαιτεί πυκνότερη διακριτοποίηση, δηλαδή περισσότερα υπολογιστικά κελιά και κατά συνέπεια µνήµη. Οι προαναφερθείσες ανάγκες στην περιοχή του CFD έχουν οδηγήσει από νωρίς την επιστηµονική κοινότητα στη λύση της παραλληλοποίησης. Η εξελίξεις στην τεχνολογία υπολογιστικών συστηµάτων έχουν ϐοηθήσει στην ανάπτυξη νέων µεθόδων, ενώ ισχύει και το αντίστροφο, οι αυξανόµενες ανάγκες σε υπολογιστική ισχύ έχουν οδηγήσει στη εξέλιξη των υπολογιστικών συστηµάτων. Πρόκειται για δύο χώρους που είναι στενά συνδεδεµένοι και γι αυτό έχουν ξεκινήσει προσπάθειες κατασκευής υπολογιστών µε δυνατότητα χρήσης πολλών επεξεργαστών από πολύ νωρίς, από τη δεκαετία του 60 [1]. Οι περισσότερες έρευνες επικεντρώνονται σε αλγορίθµους που ϐελτιστοποιούν τον καταµερισµό του προβλήµατος καθώς και την επικοινωνία [2]. Οι αλγόριθµοι αυτοί ασχολούνται µε το διαµερισµό µη-δοµηµένων κυρίως πλεγµάτων (unstructured meshes) και λιγότερο δοµηµένων (structured meshes) όπως γίνεται στην εργασία αυτή. Ο καταµερισµός µη δοµηµένων πλεγµάτων είναι ευκολότερος διότι δεν υπάρχει πε- ϱιορισµός ως προς τη µορφή των υποπεδίων που προκύπτουν. Ο αποτελεσµατικότερη ίσως µέθοδος είναι η αναδροµική ϕασµατική διχοτόµηση (Recursive Spectral Bisection - RSB) που προτάθηκε από τον Pothen [3]. Η µέθοδος εφαρµόζεται πάνω σε ένα γράφο ([4]), κόµβοι του οποίου αποτελούν οι όγκοι ελέγχου του πεδίου ϱοής ενώ οι διασυνδέσεις των κόµβων αναπαριστούν την αλληλεπίδραση των όγκων ελέγχου, δηλαδή την επαφή τους. Η µέθοδος αυτή προορίζεται για µη δοµηµένα πλέγµατα. Το γνωστότερο ίσως λογισµικό που κάνει καταµερισµό µη δοµηµένων πλεγµάτων είναι το METIS [5], χρησιµοποιείται µάλιστα και σε εµπορικούς κώδικες. Άλλες ϕασµατικές µέθοδοι καταµερισµού έχουν αναλυθεί και συγκριθεί σε µεταγενέστερη δηµοσίευση [6], ενώ έχουν προταθεί και ϐελτιστοποιήσεις για δυναµική εξισορρόπηση [7], δηλαδή εκ νέου καταµερισµός κατά τη διάρκεια της επίλυσης. Ο καταµερισµός ενός δοµηµένου πλέγµατος ϑα πρέπει να οδηγήσει στη δηµιουργία µικρότερων δοµηµένων πάλι πλεγµάτων, οπότε η παραπάνω µέθοδος δε µπορεί να εφαρµοστεί άµεσα. Ωστόσο στη δηµοσίευση του Rantakokko [8] παρουσιάζεται

23 3 η χρήση του αλγορίθµου RSB για δοµηµένα πλέγµατα. Ο χώρος χωρίζεται σε µικρότερες υποπεριοχές δοµηµένων πλεγµάτων που ϑεωρούνται κόµβοι ενός γράφου πάνω στους οποίους εφαρµόζεται η µέθοδος. Ετσι γίνεται ουσιαστικά καταµερισµός υποπεριοχών και όχι όγκων ελέγχου. Οι τελικές υποπεριοχές που ϑα λυθούν στον ίδιο επεξεργαστή συνενώνονται σε µεγαλύτερες περιοχές όταν αυτό είναι δυνατόν ελλαττώνοντας έτσι την µεταξύ τους επικοινωνία. Προσπάθειες για αυτόµατη παραλληλοποίηση κώδικα µε καταµερισµό σε πολλές διαστάσεις έχουν γίνει παλαιότερα όπως από τον Evans [9], στην εργασία του οποίου γίνεται µια προσπάθεια για ηµιαυτόµατη παραγωγή παράλληλου κώδικα αναλύοντας τον σειριακό κώδικα και ϐρίσκοντας ϐρόγχους που µπορούν να παραλληλοποιηθούν. Αργότερα αναπτύχθηκε και παρουσιάστηκε από τους Xiao et al το Auto-CFD [10]. Πρόκειται για ένα εργαλείο το οποίο αναλύει έναν σειριακό CFD κώδικα γραµµένο σε Fortran και τον µετατρέπει σε παράλληλο κώδικα για εκτέλεση σε περιβάλλοντα διανεµηµένης µνήµης, χρησιµοποιώντας το MPI[11] ή το PVM[12]. Παραλληλοποίηση επιλυτών έχουν γίνει και για περιβάλλοντα κοινής µνήµης, χρησιµοποιώντας τη διεπαφή OpenMP[13] για µικρό αριθµό επεξεργαστών (µέχρι 16). Στη δηµοσίευση του Hoeflinger [14] συγκρίθηκε η επίδοση του OpenMP σε σχέση µε τις επιδόσεις κώδικα που χρησιµοποιεί το MPI και ταυτόχρονα διερευνήθηκε η αδυναµία του OpenMP για επαρκή κλιµάκωση σε περισσότερους επεξεργαστές. Επίσης µέσα από αυτή την εργασία προτάθηκαν ϐελτιώσεις για το OpenMP και γενικούς κανόνες που πρέπει να χρησιµοποιούνται και να αποφεύγονται κατά τη χρήση του. Εφαρµογή CFD σε διανυσµατικούς επεξεργαστές έχει παρουσιαστεί στη δηµοσίευση των Bartels et al [15], όπου επιλύονται ϱοές παράλληλα χρησιµοποιώντας τις τεχνικές DNS και RANS για τις τυρβώδεις ϱοές. Η επίλυση έγινε σε 2 είδη διανυσµατικών επεξεργαστών (NEC SX-4 και Fujitsu VPP 700). Η επίλυση έγινε χρησιµοποιώντας νήµατα (τηρεαδς) αλλά και MPI. Παρόµοια εφαρµογή στο σύστηµα VPP 700 έχει γίνει για επίλυση τρισδιάστατης µη µόνιµης ϱοής [16]. Επίλυση ϱοών σε συστήµατα κοινής και διανεµηµένης µνήµης αναπτύσσοντας τρισδιάστατο κώδικα πολλαπλών τοπολογιών (multi-block) έδειξαν καλύτερη απόδοση σε πυκνότερα πλέγµατα στον ίδιο αριθµό επεξεργαστών όπως επίσης καλύτερη απόδοση ϕαίνεται να έχουν τα συστήµατα κοινής µνήµης [17]. Η εξειδικευµένη γλώσσα προγραµµατισµού HPF (High Performance Fortran) [18] έχει ϐρει επίσης εφαρµογή σε επίλυση προβληµάτων ϱευστοδυναµικής [19, 20]. Η HPF αποτελεί µια επέκταση της γλώσσας FORTRAN παρέχοντας µια διεπαφή για πα-

24 4 Κεφάλαιο 1. ΕΙΣΑΓΩΓΗ ϱάλληλο προγραµµατισµό. Η τελευταία δηµοσίευση διερευνά τις δυνατότητες αυτής της γλώσσας για επίλυσης πεδίων ϱοής χρησιµοποιώντας δοµηµένα και µη δοµηµένα πλέγµατα. Η χρήση του πρωτοκόλλου PVM εµφανίζεται πλέον σε λίγες εφαρµογές, παρά το ότι οι παλαιότερες προσπάθειες παραλληλοποίησης έγιναν µε αυτό [21, 22, 23, 24]. Μετά την εµφάνιση του πρωτοκόλλου MPI η χρήση του PVM άρχισε να ϕθίνει. Παράλληλα έχουν αναπτυχθεί κώδικες χρησιµοποιώντας περισσότερες από µια µεθόδους παραλληλοποίησης. Για παράδειγµα η χρήση του πρωτοκόλλου MPI µαζί µε threads όπως έχει αναπτυχθεί στη δηµοσίευση του Jia [25]. Στην παρουσίαση αυτή συγκρίνονται οι δύο µέθοδοι ξεχωριστά καθώς και ο συνδιασµός τους. Σύγκριση µεταξύ υβριδικού µοντέλου OpenMP-MPI µε καθαρά OpenMP έδειξε ότι υπερτερεί ο καθαρός προγραµµατισµός σε OpenMP [26]. Ο επιλυτής του συστήµατος εξισώσεων που προκύπτει εφαρµόζοντας τη µέθοδο πεπερασµένων όγκων καταναλώνει αρκετό υπολογιστικό χρόνο κατά την επίλυση. Στο παρελθόν έχουν προταθεί µέθοδοι παραλληλοποίησης του επιλυτή του συστήµατος εξισώσεων. Μέθοδοι παραλληλοποίησης του αλγορίθµου SIP (Strongly Implicit Procedure) του Stone [27], ο οποίος χρησιµοποιείται στον κώδικα αυτής της εργασίας, έχουν προταθεί σε παλαιότερη δηµοσίευση [28]. Τα τελευταία χρόνια έχουν τραβήξει την προσοχή οι επεξεργαστές των καρτών γραφικών (GPU) [29]. Από τις πρώτες προσπάθειες που έγιναν επιλύοντας τις εξισώσεις Navier-Stokes (N-S) για ασυµπίεστη ϱοή έδωσαν ικανοποιητική επιτάχυνση [30]. Ακολούθησαν και άλλες έρευνες σε αυτή την κατεύθυνση δίνοντας εντυπωσιακές επιταχύνσεις της τάξης του 40x για δισδιάστατα προβλήµατα και 16x για τρισδιάστατα ([31, 32]). Εκτός από την επίλυση απλών περιπτώσεων έχουν χρησιµοποιηθεί και για επίλυση υπερηχητικών ϱοών [33] και για επιτάχυνση επίλυσης ατµοσφαιρικών µοντέλων [34]. Φυσική εξέλιξη αυτής της κατεύθυνσης είναι η δηµιουργία µιας συστοιχίας αποτελούµενης από GPU [35, 36] µε σκοπό την αθροιστική εκµετάλλευση της ισχύος πολλών καρτών. Λεπτοµέρής ανάλυση της διαδικασίας επίλυσης των εξισώσεων N-S σε GPU γίνεται στο ϐιβλίο GPU Gems [37]. Η σταδιακή ανάπτυξη των συστηµάτων διανεµηµένης µνήµης και η προτίµησή τους λόγω της κλιµάκωσης που παρέχουν οδήγησαν σε µετατροπές των ήδη υπάρχοντων επιλυτών που προοριζόταν για συστήµατα κοινής µνήµης έτσι ώστε να λειτουργούν και σε συστήµατα διανεµηµένης µνήµης. Σε µία απο τις προσπάθειες αυτές ([38]) γίνεται ταυτόχρονα και ελαχιστοποίηση των αλλαγών στον αρχικό κώδι-

25 5 κα, ενώ έχει χρησιµοποιηθεί τόσο το MPI όσο και το PVM για µέγιστη ϕορητότητα σε διάφορα περιβάλλοντα παράλληλης επεξεργασίας. Τα συστήµατα διανεµηµένης µνήµης ενδέχεται να αποτελούνται από υπολογιστές διαφορετικής αρχιτεκτονικής. Στην εργασία του Χρονόπουλου [39] γίνεται κατεµερισµός του υπολογιστικού χώρου σε οµογενή συστήµατα (µε ίδιους επεξεργαστές) αλλά και σε ανοµοιογενή συστήµατα (µε διαφορετικούς επεξεργαστές και λειτουργικά συστήµατα). Στην περίπτωση των ανοµοιογενών συστηµάτων λαµβάνονται υπόψη η ταχύτητα και η µνήµη του κάθε συστήµατος ώστε να εξισορροπηθεί το ϕορτίο των υπολογισµών ανάλογα µε τις δυνατότητες του κάθε υπολογιστή. Για το σκοπό αυτό αναπτύσσεται ένας ευρετικός αλγόριθµος που ανάλογα µε το πρόβληµα δίνει επιταχύνει την επίλυση µέχρι και 100%. Για την επικοινωνία των υπολογιστών χρησιµοποιήθηκε το πρωτόκολλο MPI. Μεγαλύτερα προβλήµατα όπως η ϱοή γύρω από ένα αεροσκάφος έχουν επιλυθεί επιτυχώς σε παράλληλα περιβάλλοντα [40] παρουσιάζοντας ικανοποιητική επιτάχυνση ακόµα και µε τη χρήση διαύλων πολύ χαµηλής ταχύτητας (10-BaseT και Fast- Ethernet) [41]. Στη δηµοσίευση αυτή γίνεται ϐελτιστοποίηση του αεροδυναµικού σχήµατος ενός αεροσκάφος χρησιµοποιώντας τους 32 επεξεργαστές ενός IBM SP2. Ο χρόνος επίλυσης (28 ώρες) είναι ικανοποιητικός αν και το σύστηµα είναι πλέον ξεπερασµένο. Παρόµοια δουλειά έχει παρουσιαστεί και από τον Reuther [41] χρησιµοποιώντας παράλληλη επίλυση του πεδίου ϱοής γύρω από πτέρυγα αεροσκάφους αποσκοπώντας τη ϐελτιστοποίησή της. Μελέτη ϱοής γύρω από αεροσκάφος έχει γίνει µε παράλληλη επεξεργασία επίσης, µε σκοπό τη µείωση του ϑορύβου [42], ενώ η εφαρµογή Megaflow αποτελεί έναν ακόµη παράλληλο επιλυτή για ϱοές γύρω από αεροσκάφη [43]. Παλαιότερα τα µεγάλα υπολογιστικά συστήµατα κοινής µνήµης, όπως και σταθµοί εργασίας UNIX ήταν σχεδόν η µόνη επιλογή για επίλυση απαιτητικών προβληµάτων, µε κυριότερο µειονέκτηµα το µεγάλο οικονοµικό κόστος. Με την εµφάνιση λειτουργικών συστηµάτων τύπου UNIX τη δεκαετία του 1990 που έχουν τη δυνατότητα να τρέχουν σε ένα κοινό προσωπικό υπολογιστή (λχ Linux), άρχισε το ενδιαφέρον να στρέφεται προς αυτή την κατεύθυνση κυρίως λόγω του χαµηλού κόστους. Η απόδοση ενός Linux Cluster έδειξε να είναι ικανοποιητική µέχρι 16 επεξεργαστές σε σχέση µε ένα UNIX Cluster και έναν παράλληλο υπολογιστή (Cray T3E)[44]. Οι σηµερινές συστοιχίες linux έχουν ϐέβαια αναπτυχθεί σε πολύ καλύτερα επίπεδα απόδοσης προσφέροντας ένα επαρκές παράλληλο περιβάλλον µε χαµηλό κόστος κατασκευής.

26 6

27 Κεφάλαιο 2 Παράλληλα υπολογιστικά συστήµατα 2.1 Ορισµοί - Κατηγορίες Ο όρος παράλληλο υπολογιστικό σύστηµα σηµαίνει ότι το σύστηµα έχει την ικανότητα να εκτελεί πολλές πράξεις ταυτόχρονα, σε αντίθεση µε ένα κλιµακωτό (scalar) το οποίο έχει τη δυνατότητα να εκτελέσει µόνο µία πράξη σε έναν κύκλο. Υπάρχουν πολλά είδη παράλληλων συστηµάτων, και µπορούν να ταξινοµηθούν ανάλογα µε τον τρόπο που οι επεξεργαστές έχουν πρόσβαση στη µνήµη, από το επίπεδο υλικού στο οποίο γίνονται οι πράξεις παράλληλα και από τον τρόπο διασύνδεσης των επεξεργαστικών µονάδων (CPU). Τα δύο κύρια είδη είναι τα συστήµατα κοινής µνήµης και συστήµατα κατανεµηµένης µνήµης (shared memory και distributed memory αντίστοιχα). Στα συστήµατα κοινής µνήµης (σχήµα 2.1) τα στοιχεία επεξεργασίας (processor e- lements, κοινώς επεξεργαστές) έχουν άµεση πρόσβαση σε όλη τη µνήµη (RAM). Κλασσικά παραδείγµατα αποτελούν η αρχιτεκτονική SMP (Symmetric Multi-Processing, δηλαδή τα πολυεπεξεργαστικά συστήµατα) και η νεότερη τεχνολογία CMP (Chip-level MultiProcessor, κοινώς οι πολυπύρηνοι επεξεργαστές). Στα συστήµατα κατανεµηµένης µνήµης (σχήµα 2.2) ο (µοναδικός) επεξεργαστής έχει πρόσβαση µόνο στη µνήµη του συστήµατος στο οποίο ανήκει και όχι στη µνήµη των άλλων µελών του συστήµατος. Παράδειγµα ενός τέτοιου συστήµατος αποτελεί η συστοιχία πολλών µονοεπεξεργαστικών συστηµάτων τα οποία επικοινωνούν µέσω ενός διαύλου επικοινωνίας (τοπικού δικτύου). Φυσικά υπάρχει η δυνατότητα µίξης των δύο κατηγοριών, δηλαδή πολλά συστήµατα κοινής µνήµης να συνδέονται µέσω δικτύου δηµιουργώντας ένα µεγαλύτερο ανάµικτο συστήµατα κοινής-κατανεµηµένης µνήµης. 7

28 8 Κεφάλαιο 2. Παράλληλα υπολογιστικά συστήµατα Σχήµα 2.1: Αρχιτεκτονική συστήµατος κοινής µνήµης Σχήµα 2.2: Αρχιτεκτονική συστήµατος κατανεµηµένης µνήµης Στον πίνακα 2.1 ϕαίνονται οι δύο κατηγορίες µε τα χαρακτηριστικά τους. Σηµαντικότερο πλεονέκτηµα των συστηµάτων κατανεµηµένη µνήµη είναι η επεκτασιµότητα, η δυνατότητα δηλαδή αύξησης της επεξεργαστικής ισχύος προσθέτοντας επεξεργαστές. Αντίθετα τα συστήµατα κοινής µνήµης δεν µπορούν να έχουν µεγάλο αριθµό επεξεργαστών, διαθέτουν όµως πολύ µεγάλη ταχύτητα επικοινωνίας µεταξύ των ε- πεξεργαστών. Η παράµετρος αυτή πρέπει να ληφθεί υπόψη ειδικά σε περιπτώσεις όπου απαιτείται ανταλλαγή µεγάλου όγκου πληροφοριών. Η επιθυµητή υψηλότερη ταχύτητα επικοινωνίας στα συστήµατα µε κατανεµηµένη µνήµη έχουν οδηγήσει σε εξειδικευµένες τεχνολογίες δηµιουργώντας διαύλους ολοένα και υψηλότερης ταχύτητας και µικρότερου χρόνου απόκρισης (latency) προσπαθώντας να ελαττώσουν το χρονικό κόστος της επικοινωνίας. Στις τεχνολογίες αυτές συγκαταλέγονται το Myrinet [45] και το Infiniband [46]. Ενα ακόµη πλεονέκτηµα των κατανεµηµένων συστηµάτων αποτελεί η δυνατότητα χρήσης διαφορετικών αρχιτεκτονικών επεξεργαστών ή και ακόµα λειτουργικών συστηµάτων. Ετσι δίνεται η δυνατότητα επέκτασης µιας συστοιχίας µε επεξεργαστές νεότερης και γενικά διαφορετικής τεχνολογίας χωρίς να µένει η παλαιότερη χρησιµοποιούµενη τεχνολογία ανεκµετάλλευτη. Η επιλογή ανάµεσα στα δύο συστήµατα εξαρτάται καθαρά από το είδος των προβληµάτων για το οποίο

29 2.2. Εξειδικευµένες µονάδες 9 Πίνακας 2.1: Σύγκριση Shared-Distributed Memory Systems Shared Distributed CPUs Λίγοι Θεωρητικά άπειροι Μνήµη Περιορισµένη Θεωρητικά άπειρη Προγραµµατισµός Απλός Πολυπλοκότερος Ταχύτητα Επικοινωνίας Μεγάλη Μικρή Επεκτασιµότητα Μικρή Μεγάλη προορίζεται. Υποκατηγορίες των κατανεµηµένων συστηµάτων αποτελούν οι συστοιχίες υπολογιστών (clusters) και τα πλέγµατα υπολογιστών (Grid computing). Τα clusters είναι µια συστοιχία όµοιων κυρίως υπολογιστών που συνδέονται µέσω ενός γρήγορου τοπικού δικτύου (τυπικά Gigabit Ethernet, Myrinet, Infiniband). Ενδείκνυται για επίλυση µεγάλων προβληµάτων που ένα σύστηµα κοινής µνήµης δεν αρκεί είτε λόγω ισχύος είτε λόγω διαθέσιµης µνήµης. Σε περίπτωση όµως που απαιτείται συχνή και γρήγορη ανταλλαγή δεδοµένων, όπως συµβαίνει στις περισσότερες επαναληπτικές αριθµητικές µεθόδους που χρησιµοποιούνται στην επίλυση ϱοϊκών πεδίων, η τεχνολογία αυτή µειονεκτεί λόγω της χαµηλής ταχύτητας επικοινωνίας. Η τεχνολογία Beowulf αποτελεί εφαρµογή αυτής της κατηγορίας, πάνω στην οποία έχουν λυθεί προβλήµατα CFD [47]. Το Grid computing είναι µια τεχνολογία µε µεγαλύτερη έκταση και µπορεί να πε- ϱιλαµβάνει υπολογιστές οπουδήποτε στο διαδίκτυο οι οποίοι δουλεύουν πάνω στο ίδιο πρόβληµα. Λόγω της χαµηλής ταχύτητας επικοινωνίας χρησιµοποιείται σε προβλή- µατα που δεν υπάρχει εξάρτηση δεδοµένων και άρα δεν απαιτείται επικοινωνία µεταξύ των υποπροβληµάτων (πχ rendering, fractals κλπ) ή η απαιτούµενη ανταλλαγή δεδο- µένων είναι περιορισµένη. Η δηµοφιλέστερη εφαρµογή αυτής της τεχνολογίας είναι το SETI@Home. Η µέγιστη ϑεωρητική επιτάχυνση που µπορεί να επιτευχθεί είναι ίση µε τον αριθµό των επεξεργαστών. 2.2 Εξειδικευµένες µονάδες Πέρα από τους συµβατικούς κεντρικούς επεξεργαστές (CPU) οι οποίοι εκτελούν µια πράξη ανά κύκλο, υπάρχουν επεξεργαστές που έχουν τη δυνατότητα να εκτελούν εξειδικευµένες πράξεις σε πολλά δεδοµένα ταυτόχρονα. Κάποιες από τις σηµαντικότερες

30 10 Κεφάλαιο 2. Παράλληλα υπολογιστικά συστήµατα τεχνολογίες που έχουν αναπτυχθεί αναφέρονται παρακάτω συνοπτικά ιανυσµατικοί επεξεργαστές Αποτελούν µια ειδική κατηγορία επεξεργαστών που έχουν τη δυνατότητα να εκτελούν πράξεις σε µεγάλο όγκο δεδοµένων (διανύσµατα) ταυτόχρονα, παρέχοντας ένα περιβάλλον µε πολύ υψηλή ταχύτητα επεξεργασίας. Τα πιό γνωστά συστήµατα µε διανυσµατικούς επεξεργαστές είναι αυτά της εταιρίας Cray. Ενδεικτικά αναφέρεται πως ο επεξεργαστής του Cray X1 εκτελεί παράλληλα εντολές µέχρι και σε 32 floats (ή 16 double-precission). Το ταχύτερο σύστηµα του είδους αυτή τη στιγµή αποτελείται από διανυσµατικούς επεξεργαστές ϕτάνοντας την ταχύτητα των 100GFlops 1 ανά επεξεργαστή (NEC SX-9). Η τεχνολογία αυτή αν και εξελίσσεται δεν τραβάει πλέον τόσο το ενδιαφέρον λόγω του υψηλού κόστους και της ανάπτυξης των σαφώς ϕθηνότερων και επεκτάσιµων συστηµάτων διανεµηµένης µνήµης ιανυσµατικές µονάδες επεξεργαστών Σε χαµηλότερο επίπεδο και σε µικρότερη κλίµακα κατατάσσονται οι διανυσµατικές µονάδες που ενσωµατώνονται στους σύγχρονους επεξεργαστές. Οι µονάδες αυτές παρέχουν τη δυνατότητα να εκτελούνται περισσότερες από µία πράξεις ταυτόχρονα σε ένα µικρό αριθµό δεδοµένων (συνήθως µέχρι 16 bytes). Στην οµάδα αυτή ανήκουν οι µονάδες MMX (µόνο για πράξεις µε ακέραιους), SSE, 3dnow, Altivec κλπ. Η χρήση µιας τέτοιας µονάδας µπορεί να δώσει τετραπλάσια µέγιστη ϑεωρητική επιτάχυνση σε σχέση µε τον απλό επεξεργαστή για floats, ενώ ενδείκνυται για µικρό όγκο δεδοµένων Επεξεργαστές καρτών γραφικών Πολύ µεγάλο ενδιαφέρον έχουν προσελκύσει τελευταία και οι µονάδες επεξεργασίας καρτών γραφικών (GPU) οι οποίες διαθέτους πανίσχυρους επεξεργαστές και έχουν τη δυνατότητα να εκτελούν πράξεις σε ολόκληρα δισδιάστατα µητρώα (textures) σε ένα κύκλο, δηλαδή σε όλα τα στοιχεία των µητρώων ταυτόχρονα. Πέρα από την εξειδικευ- µένη τους δυνατότητα για τη γρήγορο υπολογισµό και απεικόνιση γραφικών έχουν αναπτυχθεί εργαλεία (BrookGPU, Cg, CUDA) που επιτρέπουν τη χρήση τους και για κοινές πράξεις που τις καθιστούν ένα ισχυρό εργαλείο για επίλυση προβληµάτων µε 1 Flop = FLoating-point Operations Per Second, πράξεις µε πραγµατικούς αριθµούς ανά δευτερόλεπτο

31 Προγραµµατιζόµενα ολοκληρωµένα κυκλώµατα 11 αριθµητικές µεθόδους όπως CFD ([37]). Ενδεικτικά αναφέρεται ότι η υπολογιστική ισχύς που διαθέτουν κάρτες τελευταίας τεχνολογίας αυτή τη στιγµή ξεπερνούν τα 2TFlops ενώ η ισχυρότερη ϐαθµωτή CPU τη στιγµή αυτή δεν ξεπερνά τα 50Gflops Προγραµµατιζόµενα ολοκληρωµένα κυκλώµατα Τα ολοκληρωµένα κυκλώµατα FPGA (Field-Programmable Gate Array) παρέχουν τη δυνατότητα να κατασκευαστεί ουσιαστικά ένας εξειδικευµένος επεξεργαστής για µια συγκεκριµένη εργασία. Τα κυκλώµατα αυτά περιέχουν λογικές πύλες, ενώ ο τρόπος σύνδεσης των πυλών αυτών µπορεί να προγραµµατιστεί καθώς δεν είναι προκαθορισµένος όπως στα κοινά ολοκληρωµένα. Μπορούν να επαναπρογραµµατιστούν χρησιµοποιώντας ειδικές γλώσσες προγραµµατισµού (πχ VHDL,Verilog) και ουσιαστικά µπορεί να υλοποιηθεί πάνω τους ένας αλγόριθµος σε επίπεδο hardware. Αυτό σηµαίνει ότι το κύκλωµα αυτό ϑα εκτελεί µόνο την εξειδικευµένη λειτουργία για την οποία έχει προγραµµατιστεί σε αντίθεση µε έναν κοινό επεξεργαστή που εκτελεί γενικές πράξεις. Για το λόγο αυτό µπορεί να πετύχει υψηλές ταχύτητες υπολογισµών. Σηµαντικό µειονέκτηµα είναι η δυσκολία στον προγραµµατισµό, σε σχέση µε κοινώς χρησιµοποιούµενες γλώσσες όπως η FORTRAN και η περιορισµένη µνήµη που διαθέτουν. Η τεχνολογία αυτή δε µπορούσε να αφήσει αδιάφορο τον τοµέα του CFD και έχουν παρουσιαστεί προσπάθειες χρήσης τέτοιων κυκλωµάτων για επιτάχυνση επιλυτών συστηµάτων εξισώσεων[48]. 2.3 Τεχνικές παράλληλου προγραµµατισµού Ανάλογα µε το είδος του παράλληλου συστήµατος έχουν αναπτυχθεί διάφορες τεχνικές προγραµµατισµού [49]. Η σωστή επιλογή της τεχνικής για ένα δεδοµένο σύστηµα είναι σηµαντική, για να εξασφαλιστεί η µέγιστη εκµετάλλευση των δυνατοτήτων του. Για τα συστήµατα κοινής µνήµης έχει αναπτυχθεί η τεχνική προγραµµατισµού µε νήµατα (threads). Τα νήµατα είναι αντίγραφα της αρχικής διεργασίας (process), αποτελούν ουσιαστικά µέρη της διεργασίας αλλά εκτελούν είτε διαφορετικές πράξεις ή ίδιες πράξεις σε διαφορετικά δεδοµένα. Ολα τα νήµατα έχουν πρόσβαση σε όλη τη µνήµη του συστήµατος οπότε δεν υπάρχει ανάγκη για µεταξύ τους επικοινωνία. Ο προγραµµατισµός γίνεται χρησιµοποιώντας εργαλεία όπως POSIX threads και OpenMP[13] και είναι σε γενικές γραµµές ευκολότερος αφού όλοι οι επεξεργαστές έχουν πρόσβαση σε όλη τη µνήµη. Ωστόσο είναι εύκολο να δηµιουργηθούν καταστά-

32 12 Κεφάλαιο 2. Παράλληλα υπολογιστικά συστήµατα σεις απροσδιοριστίας (race conditions) κατά τις οποίες οι τιµές κάποιων µεταβλητών µπορεί να αλλάξουν απροσδόκητα λόγω κακού χρονισµού των διεργασιών, όταν για παράδειγµα πολλές διεργασίες αλλάζουν την τιµή µιας κοινής µεταβλητής. Οι διεργασίες στα κατανεµηµένα συστήµατα αντίθετα δεν έχουν πρόσβαση στη µνήµη των άλλων διεργασιών, αφού εκτελείται µια διεργασία ανά επεξεργαστή. Ε- ποµένως προκύπτει η ανάγκη ενός πρωτοκόλου επικοινωνίας µεταξύ των διεργασιών µέσω του διαύλου που συνδέει τα επί µέρους στοιχεία επεξεργασίας. Το PVM (Parallel Virtual Machine) [12] και το MPI (Message Passing Interface) [11] είναι πρωτόκολλα που χρησιµοποιούνται κυρίως µε επικρατέστερο το MPI. Η δυσκολία που εισάγει αυτού του είδους ο προγραµµατισµος έγκειται στη µέριµνα του προγραµµατιστή για ορθή και έγκαιρη ανταλλαγή πληροφοριών, διαδικασία που απαιτεί την παρέµβαση του προγραµµατιστή στον κώδικα µε ενδεχόµενη µετατροπή του σειριακού αλγορίθ- µου. Ο κίνδυνος που υπάρχει σε αυτή τη διαδικασία είναι η δηµιουργία deadlocks, καταστάσεις κατά τις οποίες η εκτέλεση διεργασιών αδυνατεί να συνεχίσει λόγω αλληλεξαρτήσεων που εκκρεµούν Τεχνικές αποσύνθεσης προβλήµατος Ενα πρόβληµα µπορεί να χωριστεί σε µικρότερα υποπροβλήµατα, εφόσον ο αλγόριθ- µος επίλυσης το επιτρέπει. Ανάλογα µε τους περιορισµούς που ϑέτει ο αλγόριθµος αυτός υπάρχουν δύο τρόποι για το διαχωρισµό του προβλήµατος. αποσύνθεση πεδίου τιµών (Domain decomposision) λειτουργική αποσύνθεση (Functional decomposision) Σύµφωνα µε την 1η τεχνική το πρόβληµα χωρίζεται τοπολογικά. Το πεδίο τιµών αποσυντίθεται, και κάθε νέο υπο-πεδίο ανατίθεται σε έναν επεξεργαστή ο οποίος ϑα εκτελεί πράξεις µόνο µέσα σ αυτό το πεδίο, χωρίς να έχει πρόσβαση στα άλλα πεδία. Η µέθοδος απεικονίζεται σχηµατικά στο σχήµα 2.3 Η 2η τεχνική χωρίζει το πρόβληµα λειτουργικά. Κάθε επεξεργαστής εκτελεί δια- ϕορετικά ϐήµατα του αλγορίθµου που είναι ανεξάρτητα µεταξύ τους οπότε µπορούν να εκτελεστούν παράλληλα. Οι πράξεις γίνονται σε όλο το πεδίο τιµών και τα αποτελέσµατα του ενός επεξεργαστή δεν επηρρεάζουν αυτά κάποιου άλλου. Για επίλυση προβληµάτων µη µόνιµης ϱοής για τα οποία εκτός από το χώρο διακριτοποιείται και ο χρόνος µπορεί να γίνει αποσύνθεση και ως προς το χρόνο ([50]).

33 2.4. Απόδοση παράλληλων συστηµάτων 13 Σχήµα 2.3: Αποσύνθεση σε 1,2 και 3 διαστάσεις Στην πείπτωση αυτή κάθε επεξεργαστής λύνει το πεδίο ϱοής για διαφορετικό χρονικό ϐήµα. Απαραίτητη προϋπόθεση είναι να έχει ολοκληρωθεί η λύση του πρώτου χρονικού ϐήµατος ([51]). 2.4 Απόδοση παράλληλων συστηµάτων Το άµεσο κέρδος που προκύπτει από τη χρήση ενός παράλληλου συστήµατος είναι ο µειωµένος χρόνος επίλυσης του προβλήµατος. Συνεπώς αυτό που συνήθως µετράται είναι η επιτάχυνση που δίνει ένα τέτοιο σύστηµα σε σχέση µε το χρόνο εκτέλεσης του αρχικού σειριακού κώδικα σε έναν επεξεργαστή. Σύµφωνα µε το νόµο του Amdahl [52] η µέγιστη ϑεωρητική επιτάχυνση S για N επεξεργαστές είναι : S = 1 (1 P) + P N (2.1) όπου P το ποσοστό του παραλληλοποιηµένου κώδικα. Οπως προκύπτει από τη σχέση 2.1 η µέγιστη επιτάχυνση έχει ασυµπτωτική συµπεριφορά και είναι συνάρτηση

34 14 Κεφάλαιο 2. Παράλληλα υπολογιστικά συστήµατα του ποσοστού του παραλληλοποιηµένου κώδικα και ανεξάρτητο από τον αριθµό των επεξεργαστών (όταν N ) και απεικονίζεται και στο σχήµα 2.4 Πρέπει να τονιστεί ότι ακόµα και όταν το ποσοστό παραλληλοποίησης τείνει στο 100% η επιτάχυνση S είναι µικρότερη από τη ϑεωρητική λόγω της επικοινωνίας µεταξύ των επεξεργαστών. Στα συστήµατα κοινής µνήµης που ο δίαυλος επικοινωνίας παρέχει πολύ υψηλή ταχύτητα, η επιτάχυνση είναι µεγάλη (S N). Στα συστήµατα κατανεµηµένης µνήµης στο ο δίαυλος επικοινωνίας είναι αργός οπότε η επιτάχυνση µπορεί να αποβεί πολύ µικρότερη από τη ϑεωρητική, ειδικά αν υπάρχουν πολλά δεδοµένα που πρέπει να µεταφερθούν. Σχήµα 2.4: Νόµος του Amdahl Παρ ότι ο νόµος του Amdahl λέει ότι η µέγιστη ϑεωρητική επιτάχυνση είναι ίση µε τον αριθµό των επεξεργαστών, έχουν παρατηρηθεί και περιπτώσεις που το ϕράγ- µα αυτό ξεπερνιέται ([53]). Παρόµοια περίπτωση παρατηρείται και στην παρούσα διατριβή και το ϕαινόµενο σχολιάζεται στο κεφάλαιο των αποτελεσµάτων.

35 Κεφάλαιο 3 Το πρωτόκολλο MPI Το MPI είναι ένα πρωτόκολλο που έχει αναπτυχθεί για την επικοινωνία µεταξύ υπολογιστών. Βασικό χαρακτηριστικό είναι η προσφορά ενός περιβάλλοντος ανεξάρτητου από τη γλώσσα προγραµµατισµού και το λειτουργικό σύστηµα, κάνοντάς το ιδανικό για προγραµµατισµό σε παράλληλα συστήµατα χωρίς να απαιτείται εξειδικευµένη για το εκάστοτε σύστηµα γνώση. Είναι πλέον το πιο διαδεδοµένο πρωτόκολλο για την ανάπτυξη παράλληλων αλγορίθµων που προορίζονται για εκτέλεση σε συστήµατα κατανεµηµένης µνήµης, καλύπτοντας την ανάγκη για επικοινωνία που απαιτείται. Πριν αναλυθούν τα ϐήµατα της παραλληλοποίησης στα επόµενα κεφάλαια κρίνεται αναγκαία η περιγραφή και κατανόηση ϐασικών αρχών και λειτουργιών του πρωτοκόλλου MPI που χρησιµοποιήθηκε στην εργασία αυτή. 3.1 Βασικές ϱουτίνες Οι ϐασικές ϱουτίνες που παρέχει το MPI στον προγραµµατιστή είναι : 1. MPI_Init 2. MPI_Comm_Rank 3. MPI_Comm_Size 4. MPI_Send 5. MPI_Recv 6. MPI_Finalize 15

36 16 Κεφάλαιο 3. Το πρωτόκολλο MPI Οι 6 αυτές ϱουτίνες είναι αρκετές όχι µόνο για να ξεκινήσει να γράφει ο προγραµµατιστής ένα απλό παράλληλο πρόγραµµα, αλλά καλύπτουν πλήρως όλες τις ανάγκες του. Ωστόσο, υπάρχει µια πληθώρα άλλων ϱουτινών που διευκολύνουν τον προγραµµατισµό και ϑα παρουσιαστούν παρακάτω. Οι ϱουτίνες MPI_Init και MPI_Finalize οριοθετούν την έναρξη και λήξη της πα- ϱάλληλης επεξεργασίας αντίστοιχα. Η MPI_Comm_Size επιστρέφει το πλήθος των διεργασιών (np). Κατά κανόνα, ο αριθµός των διεργασιών είναι ίσος µε τον αριθµό των επεξεργαστών του συστήµατος. Ο αριθµός αυτός ορίζεται από τον χρήστη κατά την εκτέλεση του παράλληλου κώδικα από τη γραµµή εντολών. Η MPI_Comm_Rank δίνει σε κάθε διεργασία µια ακέραια τιµή-ταυτότητα. Με αυτόν τον τρόπο γίνεται διάκριση µεταξύ των διεργασιών αποθηκεύοντας στη µεταβλητή που επιστρέφει (έστω myrank) µια µοναδική ακέραια τιµή από 0 εως np-1 όπου np ο αριθµός των διεργασιών που επιστρέφει η MPI_Comm_Size. Η MPI_Send στέλνει δεδοµένα σε µια άλλη διεργασία, ενώ η MPI_Recv λαµβάνει από µια άλλη διεργασία. Οι MPI_Send και MPI_Recv ανήκουν στην κατηγορία της επικοινωνίας ένα προς ένα (point-to-point communication) διότι εµπλέκουν µόνο δύο διεργασίες που ανταλλάσουν µηνύµατα µεταξύ τους. Επίσης ανήκουν και στην κατηγορία των blocking communications διότι η επιστροφή στον κώδικα µετά την εκτέλεσή τους γίνεται µόνο όταν έχει ολοκληρωθεί η επικοινωνία και στις δύο πλευρές. Ο παρακάτω κώδικας αποτελεί ένα παράδειγµα ενός στοιχειώδους προγράµµατος σε γλώσσα προγραµµατισµού FORTRAN και η έξοδος που παράγει. program test include "mpif.h" integer np,myrank,ierror,istatus(mpi_status_size) call MPI_Init(ierror) call MPI_Comm_size(MPI_COMM_WORLD, np, ierror) call MPI_Comm_rank(MPI_COMM_WORLD, myrank, ierror) write(*,*) I am processor,myrank, of,np call MPI_Finalize(ierror) end εξής : Η εκτέλεση γίνεται από τη γραµµή εντολών για παράδειγµα για 4 διεργασίες ως

37 3.2. Συλλογική επικοινωνία 17 mpirun -np 4 test Η εκτέλεση του παραπάνω προγράµµατος γίνεται παράλληλα από 4 διεργασίες και δίνει το αποτέλεσµα : I am processor 2 of 4 I am processor 0 of 4 I am processor 3 of 4 I am processor 1 of 4 Αξιοσηµείωτο είναι το γεγονός ότι σε κάθε εκτέλεση η σειρά που τερµατίζουν οι διεργασίες είναι διαφορετική Η σειρά δεν είναι προβλέψιµη και εξαρτάται από τις υπόλοιπες διεργασίες του λειτουργικού συστήµατος και τις προτεραιότητές τους τη συγκεκριµένη στιγµή. Σε περίπτωση που κάποιος αλγόριθµος περιλαµβάνει ϐήµατα που εξαρτώνται από άλλα ϑα πρέπει να δοθεί ιδιαίτερη προσοχή και να προβλεφθεί από τον προγραµµατιστή ο κατάλληλος χειρισµός που ϑα ικανοποιήσει την εξάρτηση αυτή, ϑέτοντας την εξαρτώµενη διαδικασία σε αναµονή. 3.2 Συλλογική επικοινωνία Η συλλογική εποκοινωνία (Collective communication) είναι µια δυνατότητα που πα- ϱέχει το MPI και χρησιµεύει όταν όλες οι διεργασίες πρέπει να ανταλλάξουν δεδοµένα. Κάποιες χρήσιµες ϱουτίνες που χρησιµοποιούνται και στην εργασία αυτή είναι : 1. MPI_Barrier 2. MPI_Bcast 3. MPI_Scatter 4. MPI_Gather 5. MPI_Reduce Καλώντας την MPI_Barrier όλες οι διεργασίες περιµένουν µέχρι να εκτελεστεί από όλες. Χρησιµοποιείται για τον συγχρονισµό των εργασιών. Η MPI_Bcast στέλνει σε όλες τις διεργασίες το ίδιο µήνυµα, για παράδειγµα µια µεταβλητή ή έναν πίνακα. Χρήσιµη για την κοινοποίηση µιας τιµής µιας διεργασίας στις υπόλοιπες.

38 18 Κεφάλαιο 3. Το πρωτόκολλο MPI Σχήµα 3.1: Κοινοποίηση δεδοµένων Σχήµα 3.2: ιανοµή και συλλογή δεδοµένων Η MPI_Scatter διανέµει δεδοµένα από µια διεργασία στις υπόλοιπες ενώ η MPI_Gather συλλέγει δεδοµένα από όλες τις διεργασίες σε µία. Χαρακτηριστική χρήση της MPI_Scatter είναι κατά τη διανοµή των αρχικών δεδοµένων από τον κεντρικό επεξεργαστή στον οποίο γίνονται κάποιοι αρχικοί υπολογισµοί, στους υπόλοιπους επεξεργαστές πριν ξεκινήσει η επίλυση µε την επαναληπτική διαδιασία. Η MPI_Reduce εκτελεί έναν υπολογισµό σε όλες τις διεργασίες και αποθηκεύει στο αποτέλεσµα σε µία. Εδώ χρησιµοποιείται για τον υπολογισµό των σφαλµάτων καθώς και στον υπολογισµό ποσοτήτων στις εισόδους/εξόδους του ϱοϊκού πεδίου. 3.3 Παραγόµενοι τύποι δεδοµένων Ολες οι παραπάνω ϱουτίνες χειρίζονται µηνύµατα που δεν αποτελούνται µόνο από απλούς τύπους δεδοµένων (integer, float, κλπ). Το MPI παρέχει τη δυνατότητα στον προγραµµατιστή να δηµιουργήσει δικούς του τύπους δεδοµένων σε περιπτώσεις που για παράδειγµα ϑέλει να µεταφέρει δοµές ή δεδοµένα που δεν είναι συνεχόµενα στη µνήµη. Κλασσικό παράδειγµα αποτελεί η αποστολή µιας στήλης ενός δισδιάστατου πίνακα, η οποία στην FORTRAN αποτελείται από µη συνεχόµενα στη µνήµη στοιχεία. Η αποστολή n floats για παράδειγµα µπορεί να γίνει στέλνοντας 1 κάθε ϕορά : do i=1,n Send 1 float

39 3.3. Παραγόµενοι τύποι δεδοµένων 19 enddo Χρησιµοποιώντας ένα τύπο δεδοµένων η αποστολή γίνεται µε µιάς : Send n floats Στην πρώτη περίπτωση, σε κάθε αποστολή προστίθεται στο χρόνο αποστολής και ένας χρόνος απόκρισης. Ο ίδιος χρόνος απόκρισης προστίθεται και στη δεύτερη περίπτωση µία όµως ϕορά. Ετσι στέλνοντας µαζικά τα δεδοµένα εξοικονοµείται πολύτιµος χρόνος ειδικά σε περιπτώσεις που απαιτείται συχνή ανταλλαγή µικρού όγκου δεδοµένων.

40 20

41 Κεφάλαιο 4 Σειριακός επιλυτής 4.1 Περιγραφή του σειριακού επιλυτή Ο σειριακός επιλυτής ϐασίζεται στην µέθοδο των πεπερασµένων όγκων, και έχει αναπτυχθεί στο Εργαστήριο Μηχανικής Ρευστών και Στροβιλοµηχανών [54, 55]. Το πεδίο χωρίζεται σε στοιχειώδεις εξαπλευρικούς όγκους ελέγχου (κελιά) µέσα στους οποίους ϑεωρείται ότι το ϱευστό έχει σταθερές ιδιότητες. Κατά σύµβαση δίνονται τα ονόµατα W,E,S,N,B,T στις επιφάνειες του όγκου ελέγχου όπως απεικονίζονται στο σχήµα 4.1 Σε κάθε όγκο ελέγχου εφαρµόζονται οι εξισώσεις συνέχειας και ορµής από τις οποίες προκύπτουν οι εξισώσεις Navier-Stokes [56, 57] µε την εξής µορφή : (ρu i U j ) = p + [ ( U i µ x j x i x j x j + U ) ] j ρu x i u j i (4.1) Το σύνολο των στοιχειωδών όγκων δηµιουργεί ένα δοµηµένο πλέγµα, πάνω στο οποίο διακριτοποιούνται οι εξισώσεις Navier-Stokes. Ετσι προκύπτει ένα σύστηµα εξισώσεων µε την εξής µορφή : A P φ P = l=w,e,s,n,b,t (A l φ l ) + S u (4.2) όπου φ η προς επίλυση µεταβλητή (ταχύτητα, πίεση και τύρβη), Α είναι συντελεστές που προκύπτουν από όρους συναγωγής και διάχυσης και S u επιλύονται άµεσα αλλά η συνεισφορά τους δίνεται σαν όρος πηγής. είναι όροι που δεν Για την πίεση δεν υπάρχει εξίσωση µεταφοράς και η επίλυση γίνεται έµµεσα, επιλύοντας το παραπάνω σύστηµα εξισώσεων για τη διαφορά της πίεσης και διορθώνοντας τη µεταβλητή της πίεσης, σύµφωνα µε τον αλγόριθµο SIMPLE [58, 59]. Το 21

42 22 Κεφάλαιο 4. Σειριακός επιλυτής Σχήµα 4.1: Στοιχειώδης όγκος ελέγχου σύστηµα λύνεται µε τον αλγόριθµο SIP ο οποίος αναλύεται σε επόµενη παράγραφο. 4.2 Βήµατα επίλυσης Η λειτουργία του σειριακού κώδικα περιγράφεται στο διάγραµµα ϱοής του σχήµατος 4.2 και τα ϐήµατα περιγράφονται αναλυτικότερα παρακάτω Εισαγωγή δεδοµένων και Υπολογισµός γεωµετρικών ποσοτήτων Αρχικά εισάγεται η γεωµετρία του προβλήµατος, αρχικές συνθήκες και σταθερές που περιγράφουν το πρόβληµα. Ως γεωµετρία δίνονται οι συντεταγµένες ενός δοµηµένου πλέγµατος οι οποίες αντιστοιχούν στις γωνίες των όγκων ελέγχου που ορίζει. Στη ϕάση αυτή εισάγονται και οι οριακές συνθήκες, όπως ύπαρξη τοιχωµάτων, συνθήκες συµµετρίας και περιοδικότητας. Επίσης δίνεται µια αρχική εκτίµηση του πεδίου τιµών ϐάσει του οποίου ϑα ξεκινήσει η επίλυση µέσω της επαναληπτικής διαδικασίας. Υπολογίζονται γεωµετρικές ποσότητες των όγκων ελέγχου, όπως συντεταγµένες των κέντρων, κέντρων ακµών και πλευρών, παράγωγοι στον κανονικοποιηµένο χώρο κλπ.

43 Επαναληπτική διαδικασία 23 Σχήµα 4.2: Λογικό διάγραµµα σειριακού κώδικα Επαναληπτική διαδικασία Ακριβώς πριν ξεκινήσει η επαναληπτική διαδικασία υπολογίζονται οι όροι συναγωγής. Με την εκκίνηση της διαδικασίας εφαρµόζονται οι οριακές συνθήκες και κατόπιν επιλύονται οι µεταβλητές u, v, w (που αντιστοιχούν στις ταχύτητες στις διευθύνσεις x, y, z αντίστοιχα) ακολουθεί η επίλυση της πίεσης p και εφαρµόζεται η εξίσωση συνέχειας στην έξοδο της ϱοής. Η επίλυση των ταχυτήτων περιλαµβάνει µια σειρά από ενέργειες που ϕαίνονται στο λογικό διάγραµµα Ελεγχος τερµατισµού Το σφάλµα (residual) αποτελεί το κριτήριο για τη σύγκλιση της λύσης, και η τιµή του κάτω από την οποία σταµατά η επαναληπτική διαδικασία και ϑεωρείται ότι έχει ϐρεθεί η λύση εξαρτάται από το πρόβληµα. Συνήθως επιλέγεται η τιµή Πριν

44 24 Κεφάλαιο 4. Σειριακός επιλυτής τον τερµατισµό γράφονται τα αποτελέσµατα σε ειδικά µορφοποιηµένο αρχείο για µετέπειτα οπτικοποίηση και επεξεργασία. Το residual υπολογίζεται ως εξής : res φ = (A e φ i+1jk + A w φ i 1jk + A n φ ij+1k + A s φ ij 1k + A t φ ijk+1 + A b φ ijk 1 + A p φ ijk ) (4.3) 4.3 ιακριτοποίηση Το σχήµα διακριτοποίησης HLPA του Zhu [60] που χρησιµοποιείται συνοψίζεται στα παρακάτω ϐήµατα : Υπολογισµός των συντελεστών διακοπής a + i a i για κάθε επιφάνεια του όγκου ε- λέγχου (i=w,e,s,n,b,t) αν u i 0 τότε a + 1 αν φ P φ P 1 + φ P 2 < φ P φ P 2 i = 0 για κάθε άλλη περίπτωση αν u i < 0 τότε a i = 1 αν φ P 1 2φ P + φ P+1 < φ P 1 φ P+1 0 για κάθε άλλη περίπτωση Η προς επίλυση µεταβλητή στις πλευρές του κελιού φ i δίνεται από τη σχέση : φ i = u + i φ P 1 + u 1 i φ P + φ i όπου φ i = 0.5 µε ( 1 + u i u i ) a + i (φ P φ P 1 ) φ [ P 1 φ P (1 + u ] i ) a i (φ P 1 φ P ) φ P φ P+1 φ P + φ P 2 u i φ P 1 + φ P+1 Το τελικό σύστηµα εξισώσεων που προκύπτει είναι : A i φ P = A i φ i + S P i A i = Q D i + Q C i 0.5 i ( 1 + u i u i Οι όροι Q D i + Q C i είναι ποσότητες που εκφράζουν τη διάχυση και τη συναγωγή αντίστοιχα στις πλευρές του όγκου ελέγχου και προκύπτουν από τη διακριτοποίηση των εξισώσεων µεταφοράς [55]. Οπως ϕαίνεται από τις εξισώσεις για τον υπολογισµό των a + i, a i ) καθώς και του φ i απαιτούνται οι τιµές από δύο γειτονικούς όγκους ελέγχου (φ P 1, φ P 2 ). Η εξάρτηση αυτή απεικονίζεται στο σχήµα 4.3 όπου ϕαίνεται στο κέντρο ο όγκος ελέγχου σε τοµή στο επίπεδο i-j και οι γειτονικοί του από τους οποίους χρειάζεται τις τιµές.

45 4.4. ιαχείριση µνήµης ιαχείριση µνήµης Σχήµα 4.3: Σχήµα διακριτοποίησης HLPA Η εισαγωγή της γεωµετρίας, των αρχικών και οριακών συνθηκών γίνεται σε τρισδιάστατα µητρώα. Ακριβώς επειδή το πρόβληµα έχει τρισδιάστατη υπόσταση, η καταχώρηση των ποσοτήτων αυτών είναι πιο κατανοητή και διευκολύνει τον έλεγχο της διαδικασίας. Οι µεταβλητές αν και αναφέρονται σε τρισδιάστατα µεγέθη αποθηκεύονται σε µονοδιάστατα µητρώα µετά από ειδική µετατροπή. Οπως ϑα δειχθεί, αυτό δίνει ευελιξία στη διανοµή των δεδοµένων και στην αναφορά σε υποπεριοχές του προς επίλυση πεδίου και για το λόγο αυτό έχει προταθεί και εφαρµόζεται στην πράξη [51]. Η αποθήκευση των µεταβλητών σε µονοδιάστατο µητρώο-διάνυσµα γίνεται ακρι- ϐώς όπως και στη µνήµη RAM σειριακά (γίνεται εσωτερικά από τον µεταγλωτιστή). Ο τρόπος αποθήκευσης ενός µητρώου εξαρτάται από τη γλώσσα προγραµµατισµού. Στη γλώσσα FORTRAN η οποία και χρησιµοποιείται εδώ, τα στοιχεία ενός πολυδιάστατου µητρώου αποθηκεύονται στη µνήµη ξεκινώντας από την 1η διάσταση και προχωρώντας στις υπόλοιπες. Ολοι οι τρισδιάστατοι πίνακες λοιπόν µετασχηµατίζονται σε µονοδιάστατους ως εξής : A(i, j, k) A(ijk), ijk = (k 1) ni nj + (j 1) ni + i (4.4) όπου ni, nj, nk οι διαστάσεις του µητρώου A (αρχικοποιηµένο ως A(ni, nj, nk)) σύµ- ϕωνα µε το σχήµα 4.4.

46 26 Κεφάλαιο 4. Σειριακός επιλυτής Πίνακας 4.1: Αντιστοιχία ϑέσεων µνήµης κατά τη διανυσµατοποίηση Θέση στο χώρο Θέση στο διάνυσµα i,j,k ijk i+1,j,k ijk+1 i-1,j,k ijk-1 i,j+1,k ijk+ni i,j-1,k ijk-ni i,j,k+1 ijk+ni*nj i,j,k-1 ijk-ni*nj Σχήµα 4.4: Μετατροπή δισδιάστατου µητρώου σε διάνυσµα Η αναφορά στα γειτονικά κελιά συνεπώς ϑα γίνεται σύµφωνα µε την αντιστοιχία στον πίνακα 4.1. Στο σχήµα 4.5 απεικονίζεται ένα µητρώο Α µε διαστάσεις 10x1x12. Τα περιεχό- µενα του µητρώου µετά τη µετατροπή σε διάνυσµα ϑα είναι A = [1, 2, 3,..., 119, 120]. Το προς επίλυση πεδίο ϱοής αποτελείται από τα λευκά κελιά, ενώ τα διαγραµµισµένα χρησιµεύουν για την εφαρµογή των οριακών συνθηκών. Αν indexes είναι το µητρώο που περιέχει τους αριθµούς των υπολογιστικών (λευκών) κελιών τα περιεχόµενά του ϑα είναι indexes = [23, 24, 25, 26, 27, 28, 33, 34,..., 97, 98] και η αναφορά στην πε- ϱιοχή του προς επίλυση πεδίου γίνεται πλέον εύκολα ως A(indexes), χρησιµοποιώντας τη δυνατότητα αυτή (array subscripts) που δίνει η γλώσσα προγραµµατισµού FOR- TRAN. Ετσι ο κώδικας αποκτά µια πιό συµπαγοποιηµένη και κατανοητή µορφή, εξαλείφοντας πολλαπλές χρήσεις ϐρόγχων (loops) και ελέγχων if-then-else-endif.

47 4.5. Επιλυτής συστήµατος 27 Σχήµα 4.5: Αρίθµηση όγκων ελέγχου do k=3,nk-2 do j=3,nk-2 do i=3,ni-2 a(i+1,j,k)=b(i,j+1,k)+c(i,j,k+1) end do end do end do a(indexes+1)=b(indexes+ni)+c(indexes+ni*nj) 4.5 Επιλυτής συστήµατος Η επίλυση του συστήµατος που προκύπτει λύνεται µε τη µέθοδο SIP (Strongly Implicit Procedure και αναπτύχθηκε από τον Stone [27] το Εκµεταλλεύεται την αραιή δοµή του µητρώου συντελεστών για να ελαχιστοποιήσει τη χρησιµοποιούµενη µνήµη αλλά και το χρόνο επίλυσης. Ο αλγόριθµος αυτός είναι µια επαναληπτική διαδικασία και παρουσιάζει σταθερότητα και πολύ γρήγορη σύγκλιση για αυτού του είδους τα συστήµατα, γεγονός που καθιστούν την επιλογή του µονόδροµο.

48 28 Κεφάλαιο 4. Σειριακός επιλυτής Περιγραφή του αλγορίθµου Το τελικό σύστηµα εξισώσεων που προκύπτει από τη διαδικασία διακριτοποίησης είναι : A p φ P = A w φ W + A e φ E + A s φ S + A n φ N + A b φ B + A t φ T + S P (4.5) όπου A p = A w + A e + A s + A n + A b + A t. και έχει τη µορφή που ϕαίνεται στο σχήµα 4.6 Οι τιµές της κυρίας διαγωνίου του πίνακα Α (A p ) είναι µη µηδενικές ενώ όλες οι άλλες τιµές είναι µηδενικές εκτός από τις σεσηµασµένες διαγωνίους, που αντικατοπτρίζουν τη συνεισφορά των γειτονικών κελιών. Η αντιστοιχία των δεικτών P, W, E, S, N, B, T µε τους γειτονικούς όγκους ελέγχου είναι : P (i, j, k) E (i + 1, j, k), W (i 1, j, k) N (i, j + 1, k), S (i, j 1, k) T (i, j, k + 1), B (i, j, k 1) Η διακριτοποιηµέµη εξίσωση 4.5 παίρνει τη µορφή : A P φ ijk = A e φ i+1jk + A w φ i 1jk + A n φ ij+1k + A s φ ij 1k + A t φ ijk+1 + A b φ ijk 1 + S P (4.6) ή Τα ϐήµατα του αλγορίθµου είναι : AΦ = B (4.7) Υπολογισµός L,U (Αρχή επαναληπτικής διαδικασίας) Υπολογισµός σφάλµατος R (residual) Υπολογισµός L (forward substitution) Υπολογισµός U (backward substitution) ιόρθωση µεταβλητής (Τέλος επαναληπτικής διαδικασίας)

49 Περιγραφή του αλγορίθµου 29 Σχήµα 4.6: Σύστηµα εξισώσεων Αρχικά επιλέγεται ένας πίνακας Ν έτσι ώστε να διαφέρει ελάχιστα από τον Α, ο οποίος να µπορεί να παραγοντοποιηθεί σε γινόµενο δύο πινάκων L και U (Ν=LU). Ο U είναι άνω τριγωνικός έχοντας τους συντελεστές B P, B E, B N, B T στις αντίστοιχες διαγωνίους όπου ϐρίσκονται στον πίνακα Α οι A P, A E, A N, A T. Ο L είναι κάτω τριγωνικός έχοντας τους συντελεστές B W, B S, B B στις αντίστοιχες διαγωνίους και µοναδιαία κύρια διαγώνιο. Ολα τα υπόλοιπα στοιχεία των δύο πινάκων είναι µηδενικά. Η µορφή των πινάκων L και U απεικονίζεται στο σχήµα 4.7. Σχήµα 4.7: Πίνακες L και U

50 30 Κεφάλαιο 4. Σειριακός επιλυτής Αρχικά εξισώνονται οι διαγώνιοι των πινάκων L και Ν : B b(i,j,k) = A b(i,j,k) B s(i,j,k) = A s(i,j,k) B w(i,j,k) = A w(i,j,k) B w(i,j,k) B e(i 1,j,k) + B s(i,j,k) B n(i,j 1,k) + B b(i,j,k) B t(i,j,k 1) + B P(i,j,k) = A p(i,j,k) (4.8) B e(i,j,k) B b(i,j,k) = A e(i,j,k) B n(i,j,k) B b(i,j,k) = A n(i,j,k) B t(i,j,k) B b(i,j,k) = A t(i,j,k) Από το γινόµενο των L και U προκύπτουν οι επιπλέον διαγώνιοι που δεν αντιστοχούν σε διαγωνίους του πίνακα Α : B wn(i,j,k) = B w(i,j,k) B n(i 1,j,k) B wt(i,j,k) = B w(i,j,k) B t(i 1,j,k) B se(i,j,k) = B s(i,j,k) B e(i,j 1,k) B st(i,j,k) = B s(i,j,k) B t(i,j 1,k) (4.9) B be(i,j,k) = B b(i,j,k) B e(i,j,k 1) B bn(i,j,k) = B b(i,j,k) B n(i,j,k 1) Για κάθε όγκο ελέγχου i,j,k οι εξισώσεις που επιλύονται σε κάθε επανάληψη m είναι : A P(i,j,k) φ m (i,j,k) = A e(i,j,k) φ m (i+1,j,k) + A w(i,j,k)φ m (i 1,j,k) + A n(i,j,k) φ m (i,j+1,k) + A s(i,j,k)φ m (i,j 1,k) + A t(i,j,k) φ m (i,j,k+1) + A b(i,j,k)φ m (i,j,k 1) (4.10) B wn(i,j,k) φ m (i 1,j+1,k) B wt(i,j,k)φ m (i 1,j,k+1) B se(i,j,k) φ m (i+1,j 1,k) B st(i,j,k)φ m (i,j 1,k+1) B be(i,j,k) φ m (i+1,j,k 1) B bn(i,j,k)φ m (i,j+1,k 1) + B (i,j,k) Μετά από κατάλληλες προσεγγίσεις µέσω αναπτυγµάτων Taylor ([61]) προκύπτουν οι παρακάτω σχέσεις που δίνουν τις τιµές των επιπλέον όρων που εµφανίζονται στην εξίσωση 4.10 φ (i 1,j+1,k) = φ (i,j,k) + φ (i,j+1,k) + φ (i 1,j,k)

51 Περιγραφή του αλγορίθµου 31 φ (i 1,j,k+1) = φ (i,j,k) + φ (i 1,j,k) + φ (i,j,k+1) φ (i+1,j 1,k) = φ (i,j,k) + φ (i+1,j,k) + φ (i,j 1,k) (4.11) φ (i+1,j,k 1) = φ (i,j,k) + φ (i+1,j,k) + φ (i,j,k 1) φ (i,j 1,k+1) = φ (i,j,k) + φ (i,j 1,k) + φ (i,j,k+1) φ (i,j+1,k 1) = φ (i,j,k) + φ (i,j+1,k) + φ (i,j,k 1) Οι παραπάνω όροι πριν αφαιρεθούν από το δεξί µέλος της 4.10 πολλαπλασιάζονται µε µία σταθερά a, µε 0 < a < 1, για λόγους ευστάθειας. Η 4.10 παίρνει έτσι τη µορφή : A P(i,j,k) φ m (i,j,k) = A e(i,j,k) φ m (i+1,j,k) + A w(i,j,k)φ m (i 1,j,k) + A n(i,j,k) φ m (i,j+1,k) + A s(i,j,k)φ m (i,j 1,k) + A t(i,j,k) φ m (i,j,k+1) + A b(i,j,k)φ m (i,j,k 1) ( B wn(i,j,k) φ m (i 1,j+1,k) ( a φ m + (i,j,k) φm + )) (i,j+1,k) φm (i 1,j,k) ( B wt(i,j,k) φ m (i 1,j,k+1) ( a φ m + (i,j,k) φm + )) (i 1,j,k) φm (i,j,k+1) ( B se(i,j,k) φ m (i+1,j 1,k) ( )) a φ m + (i,j,k) φm + (i+1,j,k) φm (i,j 1,k) ( B st(i,j,k) φ m (i,j 1,k+1) ( a φ m + (i,j,k) φm + )) (i,j 1,k) φm (i,j,k+1) ( B be(i,j,k) φ m (i+1,j,k 1) ( )) a φ m + (i,j,k) φm + (i+1,j,k) φm (i,j,k 1) ( B bn(i,j,k) φ m (i,j+1,k 1) ( a φ m + (i,j,k) φm + (i,j+1,k) (i,j,k 1))) φm + B(i,j,k) (4.12) Από το συνδιασµό των 4.12 και 4.9 προκύπτουν οι συντελεστές των U και U: A b(i,j,k) B b(i,j,k) = ) 1 + a (B e(i,j,k 1) + B n(i,j,k 1) A s(i,j,k) B s(i,j,k) = ) 1 + a (B e(i,j 1,k) + B t(i,j 1,k) A w(i,j,k) B w(i,j,k) = ) 1 + a (B n(i 1,j,k) + B t(i 1,j,k) ) B t(i,j,k) = A t(i,j,k) + a (B w(i,j,k) B t(i 1,j,k) + B s(i,j,k) B t(i,j 1,k) B P(i,j,k) ) B n(i,j,k) = A n(i,j,k) + a (B w(i,j,k) B n(i 1,j,k) + B b(i,j,k) B n(i,j,k 1) (4.13) B P(i,j,k) ) B e(i,j,k) = A e(i,j,k) + a (B s(i,j,k) B e(i,j 1,k) + B b(i,j,k) B e(i,j,k 1) B P(i,j,k)

52 32 Κεφάλαιο 4. Σειριακός επιλυτής B P(i,j,k) = A P(i,j,k) )) + a (B w(i,j,k) (B n(i 1,j,k) + B t(i 1,j,k) B e(i 1,j,k) )) + a (B s(i,j,k) (B e(i,j 1,k) + B t(i,j 1,k) B n(i,j 1,k) )) + a (B b(i,j,k) (B e(i,j,k 1) + B n(i,j,k 1) B t(i,j,k 1) Στη σχέση AΦ = B ϑεωρείται A = N + P όπου P πίνακας έτσι ώστε ο N να διαφέρει ελάχιστα από τον A. Σε κάθε επανάληψη m ισχύει : ( NΦ m = PΦ m 1 +B N Φ m Φ m 1) = AΦ m 1 +B N m = R m 1 LU m = R m 1 όπου m = Φ m Φ m 1 ο πίνακας των διορθώσεων και R m 1 = AΦ m 1 B ο πίνακας των υπολοίπων στην m επανάληψη. Το τελικό σύστηµα είναι ισοδύναµο µε τα δύο τριγωνικά συστήµατα : LY m = R m 1 U m = Y m Το πρώτο λύνεται µε αντικατάσταση προς τα εµπρός και προκύπτει : Y m (i,j,k) = Rm 1 (i,j,k) B w(i,j,k)y m (i 1,j,k) B s(i,j,k)y m (i,j 1,k) B b(i,j,k)y m (i,j,k 1) (4.14) B P(i,j,k) ενώ από το 2ο µε αντικατάσταση προς τα πίσω : m (i,j,k) = Y m (i,j,k) B e(i,j,k) m (i+1,j,k) B n(i,j+1,k) m (i,j,k) B t(i,j,k) m (i,j,k+1) (4.15) Ο υπολογισµός της άγνωστης µεταβλητής προκύπτει από τη σχέση : Φ m = m + Φ m 1 (4.16) Ο αλγόριθµος τερµατίζει στο τέλος των προκαθορισµένων επαναλήψεων m ή όταν ικανοποιηθεί το κριτήριο σύγκλισης της µορφής R m 1 < ε όπου ε ένας µικρός ϑετικός αριθµός που δηλώνει την ακρίβεια της λύσης. i,j,k i,j,k

53 Κεφάλαιο 5 Παραλληλοποίηση του σειριακού κώδικα Κατά την πρώτη ϕάση της παραλληλοποίησης δίνεται προσπάθεια οι απαιτούµενες αλλαγές στον κώδικα να είναι το κατά δυνατόν λιγότερες. Η διατήρηση της αρχικής µορφής του κώδικα αποσκοπεί στην ευκολότερη κατανόηση του παράλληλου κώδικα, ώστε να µην χρειάζονται εξειδικευµένες γνώσεις παράλληλου προγραµµατισµού από την πλευρά του ερευνητή που τον χρησιµοποιεί. Ως µέθοδος παράλληλου προγραµµατισµού χρησιµοποιήθηκε η αποσύνθεση πεδίου, ενώ η επικοινωνία των υποπεδίων πραγµατοποιείται αποκλειστικά µέσω του πρωτοκόλλου MPI. Αν και η συστοιχία αποτελείται από συστήµατα κοινής µνήµης, δε χρησιµοποιήθηκε υβριδικός προγραµµατισµός όπως συνδιασµός MPI µε threads. Για τη ϐέλτιστη εκµετάλλευση όµως έγινε χρήση του αρθρώµατος usysv σύµφωνα µε το οποίο η επικοινωνία ανά- µεσα σε επεξεργαστές που ανήκουν σε σύστηµα κοινής µνήµης γίνεται µέσω IPC 1 χρησιµοποιώντας σηµατοφορείς (semaphores) αντί να γίνεται µέσω του πρωτοκόλλου TCP 2 όπως είναι η προεπιλεγµένη ϱύθµιση του MPI και χρησιµοποιείται για την ε- πικοινωνία ανάµεσα στους κόµβους. Με τον τρόπο αυτό επιτυγχάνεται µεγαλύτερη ταχύτητα επικοινωνίας µεταξύ επεξεργαστών που ανήκουν στο ίδιο σύστηµα κοινής µνήµης. 1 Inter-Process Communication 2 Transmission Control Protocol 33

54 34 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα 5.1 Ανάλυση σειριακού κώδικα Η ανάλυση του σειριακού κώδικα είναι ένα αναγκαίο ϐήµα που πρέπει να γίνει έτσι ώστε να γίνει σωστή επιλογή της µεθόδου παραλληλοποίησης. Το πρώτο χαρακτηριστικό του κώδικα είναι ότι εκτελεί τις ίδιες πράξεις σε όλο τον υπολογιστικό χώρο. Αυτό συνεπάγεται ότι καταλληλότερη τεχνική ενδείκνυται η αποσύνθεση πεδίου (Domain decomposition) Η επαναληπτική διαδικασία που εµπλέκεται στην επίλυση του προβλήµατος επιτάσσει την κατά το δυνατόν πληρότερη παραλληλοποίηση του µέρους αυτού καθώς εκεί αναλώνεται σχεδόν όλο το µέρος του χρόνου. Στο ϐήµα αυτό επιδιώκεται η ελαχιστοποίηση του σειριακού µέρους του κώδικα ώστε να προκύψει η µέγιστη δυνατή απόδοση σύµφωνα µε τον νόµο του Amdahl [52]. Επίσης µετά από ανάλυση επιδόσεων (performance analysis - profiling) προκύπτει ότι ο χρόνος που απασχολεί ο επιλυτής του συστήµατος εξισώσεων είναι αναλογικά µικρός, επειδή ο κώδικας αναλώνει αρκετό χρόνο εκτελώντας υπολογισµούς που προετοιµάζουν µια µεγάλη πληθώρα ϐοηθητικών µητρώων πριν καταλήξει στον τελικό υπολογισµό των µητρώων του γραµµικού συστήµατος. Οι υπολογισµοί αυτοί λοιπόν ϑα πρέπει να παραλληλοποιηθούν. Η ανάλυση έγινε χρησιµοποιώντας το εργαλείο gprof µετά από κατάλληλη µεταγλώτισση του κώδικα ώστε να παράγει στατιστικά κλήσεων και έγινε πάνω σε ένα πλέγµα 80x50x50 εκτελώντας 10 επαναλήψεις. Στον πίνακα 5.1 ϕαίνονται τα αποτελέσµατα της ανάλυσης για τις κυριότερες υπορουτίνες. Τον περισσότερο χρόνο (40%) καταναλώνει ο επιλυτής του συστήµατος SIP (υπορουτίνα stone). Πίνακας 5.1: Ανάλυση επιδόσεων του σειριακού κώδικα % cumulative self self total time seconds seconds s/call s/call name stone_ secdir_ scheme_ calcp_ convec_ calcu_ calcw_

55 5.2. Αποσύνθεση πεδίου Αποσύνθεση πεδίου Ο υπολογιστικός χώρος διαιρείται σε ίσα µέρη (όσον αφορά τα υπολογιστικά κελιά) και οι νέες υποπεριοχές (υποπεδία) που προκύπτουν διανέµονται σε κάθε επεξεργαστή σύµφωνα µε τη µέθοδο αποσύνθεσης πεδίου τιµών (Domain decomposition). Η ισοκατανοµή επιδιώκεται διότι αν κάποιος επεξεργαστής εκτελεί πράξεις σε λιγότερα δεδοµένα ϑα πρέπει να περιµένει έναν άλλον που επεξεργάζεται περισσότερα δεδοµένα. Ο νεκρός αυτός χρόνος ϑα πρέπει να ελαχιστοποιηθεί. Στην ιδανική περίπτωση όλοι οι επεξεργαστές δουλεύουν στον ίδιο αριθµό κελιών οπότε τελειώνουν την επαναληπτική διαδικασία στον ίδιο χρόνο και ο νεκρός χρόνος είναι µηδέν, αξιοποιώντας το σύστηµα στο µέγιστο των δυνατοτήτων του. Σύµφωνα µε τη µέθοδο αυτή κάθε επεξεργαστής αναλαµβάνει να επιλύσει ένα µέρος του πεδίου που του αναλογεί. Κάθε επεξεργαστής δηλαδή επιλύει ένα υποπρόβληµα χωρίς να τον ενδιαφέρει τι συµβαίνει στο υπόλοιπο πεδίο. Η επίλυση των υποπεδίων γίνεται µεν µεµονωµένα για κάθε επεξεργαστή, όµως πρέπει µε κάποιο τρόπο να µεταφερθεί η πληροφορία της επίλυσης των γειτονικών υποπεδίων καθότι πρόκειται για ένα πρόβληµα και όχι για αποµονωµένα υποπροβλήµατα. Ο τρόπος επικοινωνίας των επι µέρους διαδικασιών επίλυσης αναλύεται παρακάτω. Η αρχικοποίηση των µητρώων, η εισαγωγή της γεωµετρίας, των οριακών και αρχικών συνθηκών γίνεται από έναν επεξεργαστή (master) και στη συνέχεια αυτός διανέµει τα δεδοµένα στους υπόλοιπους ακριβώς πριν αρχίσει η επαναληπτική διαδικασία. Το λογικό διάγραµµα του παράλληλου κώδικα ϕαίνεται στο σχήµα 5.1. Ο κώδικας α- νήκει κατά συνέπεια στην κατηγορία SPMD σύµφωνα µε την ταξινόµηση κατά Flynn [62]. 5.3 Εξισορρόπηση Αν d c ο όγκος δεδοµένων που επεξεργάζεται ο επεξεργαστής c και v c η ταχύτητά του τότε ϑα εκτελέσει τις πράξεις σε χρόνο t c = d c v c. Στην απλούστερη περίπτωση όλοι οι επεξεργαστές εκτελούν τις πράξεις µε την ίδια ταχύτητα πάνω στον ίδιο αριθµό δεδοµένων, άρα τελειώνουν στον ίδιο χρόνο. Στη γενική περίπτωση που δεν τρέχουν όλοι οι επεξεργαστές στην ίδια ταχύτητα, κάθε επεξεργαστής χρειάζεται διαφορετικό χρόνο να επιλύσει το ίδιο πεδίο. Στο σχήµα 5.2 ϕαίνεται ένα τέτοιο παράδειγµα 6 επεξεργαστών. Πρώτος τελειώνει ο 5 και περιµένει τους υπόλοιπους πριν ξεκινήσει η επόµενη επανάληψη της επίλυσης. Ετσι δηµιουργείται ένας νεκρός χρόνος ίσος µε

56 36 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Σχήµα 5.1: ιάγραµµα ϱοής του παράλληλου κώδικα t max t min, στην περίπτωση αυτή t 5 t 3. Σκοπός είναι να ελαχιστοποιηθεί ο νεκρός αυτός χρόνος, ώστε να επιτευχθεί η µέγιστη απόδοση της συστοιχίας. Η ταχύτητα των επεξεργαστών είναι κάτι αµετάβλητο, οπότε το πρόβληµα αυτό λύνεται αναθέτοντας σε κάθε επεξεργαστή τόσα δεδοµένα ώστε να συγχρονιστεί µε τους υπόλοιπους. Στην απλή περίπτωση που όλοι οι επεξεργαστές έχουν την ίδια ταχύτητα, καθένας ϑα πρέπει να επεξεργάζεται τον ίδιο αριθµό δεδοµένων ώστε σε κάθε επανάληψη να τερµατίζουν µαζί. Αν nijk = ni nj nk ο αριθµός των κελιών τότε η ιδανική κατανοµή τους ϑα πρέπει να είναι nijk κελιά ανά επεξεργαστή, όπου np ο αριθµός των np επεξεργαστών. Αυτό δεν είναι πάντα εφικτό διότι κάθε υποπεδίο που ϑα προκύψει

57 Βελτιωµένη εξισορρόπηση 37 Σχήµα 5.2: Νεκρός χρόνος κατά την επίλυση µετά την αποσύνθεση ϑα πρέπει να αποτελείται πάλι από ένα δοµηµένο πλέγµα. Στον πίνακα 5.2 ϕαίνονται δύο παραδείγµατα διανοµής 18 k-επιπέδων σε 4 επεξεργαστές. Αν για κάθε επίπεδο απαιτείται για την επίλυσή του 1 χρονική µονάδα, τότε στην πρώτη περίπτωση ο νεκρός χρόνος είναι 2 χρονικές µονάδες, οι επεξεργαστές 0,1,2 που ολοκληρώνουν την επίλυση σε 4 χρονικές µονάδες ϑα πρέπει να περιµένουν τον επεξεργαστή 3 που ϑα τελειώσει τους υπολογισµούς σε 6 χρονικές µονάδες. Μεταφέ- ϱοντας ένα επίπεδο από τον επεξεργαστή 3 στον 2, ο νεκρός χρόνος µειώνεται στη µία χρονική µονάδα. Πίνακας 5.2: Περιπτώσεις απλής εξισορρόπησης Κακή εξισορρόπηση Καλύτερη εξισορρόπηση Αριθµός Επεξεργαστή Αριθµός Επεξεργαστή nk nk Βελτιωµένη εξισορρόπηση Η σταδιακή επέκταση της συστοιχίας από 8 σε 16 και κατόπιν σε 22 επεξεργαστές έγινε προσθέτοντας επεξεργαστές διαφορετικής ταχύτητας. Η ανοµοιοµορφία αυτή οδηγεί στη γενική περίπτωση που περιγράφτηκε στην προηγούµενη παράγραφο και δηµιουργεί νεκρό χρόνο που πρέπει να ελαχιστοποιηθεί. Για το σκοπό αυτό κάθε επεξεργαστής δεν αναλαµβάνει να υπολογίσει πλέον ίδιο αριθµό κελιών αλλά ανάλογο µε την ταχύτητά του, επιτυγχάνοντας µια σταθµισµένη εξισορρόπηση ϐάσει της

58 38 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Πίνακας 5.3: Benchmark για τα 2 είδη επεξεργαστών της συστοιχίας GHz Memory Bus (MHz) time (sec / 100 iterations) ταχύτητας αυτής. Θεωρείται ότι η ταχύτητα εκτέλεσης πράξεων του επεξεργαστή είναι ανάλογος της συχνότητάς του η οποία παρέχεται κατά την εκτέλεση του παράλληλου κώδικα χρησιµοποιώντας την εντολή συστήµατος sysctl hw.cpufrequency. Με τον τρόπο αυτό γίνεται αυτόµατα η αναγνώριση της συχνότητας του επεξεργαστή οπότε δεν απαιτείτα καµία γνώση και εισαγωγή αυτής της παραµέτρου από την πλευρά του χρήστη. Αν cells ο συνολικός αριθµός των κελιών, C ο αριθµός των επεξεργαστών και f c η ταχύτητα (συχνότητα σε GHz) του επεξεργαστή c τότε ο αριθµός κελιών που ανατίθεται στον επεξεργαστή c ϑα είναι : nc c = f c cells (5.1) C f c c=1 Η ϑεώρηση ότι η ταχύτητα εκτέλεσης των πράξεων είναι ανάλογη της συχνότητας του επεξεργαστή µπορεί να µην είναι πάντα ακριβής διότι εµπλέκονται και άλλα χαρακτηριστικά του συστήµατος που επηρεάζουν την ταχύτητα αυτή, όπως η λανθάνουσα µνήµη (cache), η ταχύτητα του διαύλου επικοινωνίας µε τη µνήµη, κλπ. Πιο ακριβής µέθοδος είναι η συγκριτικη µέτρηση επιδόσεων των επεξεργαστών (benchmark) ώστε να εξακριβωθούν οι πραγµατικές ικανότητές τους. Στον πίνακα 5.3 παρουσιάζονται τα αποτελέσµατα από ένα benchmark που έγινε µετρώντας χρόνους εκτέλεσης του κώδικα που αναπτύχθηκε. εν επιλέχθηκε κάποιο έτοιµο εργαλείο benchmark διότι ανάλογα µε το είδος των πράξεων η απόδοση µετα- ϐάλλεται. Ετσι η µέτρηση έγινε µε τον κώδικα για τον οποίο προορίζεται η συστοιχία δίνοντας αποτελέσµατα σε πραγµατικές συνθήκες. Από τα αποτελέσµατα προκύπτει ότι οι επεξεργαστές των 2.3GHz είναι σε πραγµατικές συνθήκες όντως 15% ταχύτε- ϱοι από αυτούς των 2.0GHz. Για την εξισορρόπηση λοιπόν χρησιµοποιήθηκε αυτή η αναλογία (2.3/2) για τη διανοµή των µητρώων.

59 5.4. Μελέτη εξάρτησης δεδοµένων Μελέτη εξάρτησης δεδοµένων Το επόµενο ϐήµα είναι η µελέτη εξάρτησης δεδοµένων (data dependency study), στο οποίο εξετάζεται ο τρόπος που οι υπολογισµοί σε κάθε υπο-χώρο εξαρτώνται από γειτονικούς. Σύµφωνα µε το σχήµα διακριτοποίησης HLPA που χρησιµοποιήθηκε κάθε επεξεργαστής ϑα πρέπει µε κάποιο τρόπο έχει πρόσβαση στις τιµές των 2 γειτονικών αυτών κελιών σε κάθε διεύθυνση, σύµφωνα µε τις σχέσεις που αναπτύχθηκαν στην παράγραφο 4.3. Ετσι γύρω από το κάθε υπο-πεδίο δεσµεύονται 2 επίπεδα κελιών όπου δεν επιλύονται οι εξισώσεις αλλά χρησιµεύουν για την αποθήκευση των τιµών ενός γειτονικού υπο-χώρου και οριακών συνθηκών. Τα κελιά αυτά λέγονται ghost cells, περιβάλλουν το πεδίο επίλυσης και απεικονίζονται στο σχήµα 5.3 ως γραµµοσκιασµένα. Σε όλους τους υπόλοιπους υπολογισµούς, όπως στη διαδικασία του Stone που αναπτύχθηκε στο αντίστοιχο κεφάλαιο) η εξάρτηση δεδοµένων περιορίζεται µέχρι το 1ο γειτονικό κελί. Κατά συνέπεια η δέσµευση 2 κελιών λόγω της απαίτησης του σχήµατος HLPA καλύπτει τις ανάγκες των υπόλοιπων υπολογισµών. 5.5 Αποσύνθεση στη διεύθυνση k Η πρώτη προσέγγιση παραλληλοποίησης για απλή γεωµετρία (1 block) έγινε µε αποσύνθεση στη διεύθυνση z, όπως απεικονίζεται στο σχήµα 5.3. Αυτό σηµαίνει ότι το πεδίο επίλυσης χωρίζεται σε υποπεδία µε τοµές κάθετα στη διεύθυνση z, οπότε κάθε υποπεδίο αποτελείται από i-j επίπεδα κελιών της αρχικής γεωµετρίας Εξισορρόπηση Στην συγκεκριµένη περίπτωση της µονοδιάστατης αποσύνθεσης κατά z τα υποπεδία ϑα περιέχουν αριθµό κελιών πολλαπλάσιο του ni nj, και εφόσον ϑα έχουν όλοι τις ίδιες διαστάσεις στις διευθύνσεις i j αρκεί να διανεµηθούν στους επεξεργαστές nk np επίπεδα k. Στη γενική περίπτωση δεν προκύπτει ακέραιος αριθµός οπότε δεν αντιστοιχεί ο ίδιος αριθµός δεδοµένων σε όλους τους επεξεργαστές. Επιλέγοντας όµως ένα nk ακέραιο πολλαπλάσιο του np κατά τη δηµιουργία του πλέγµατος εξασφαλίζεται η άριστη εξισορρόπηση, για εκτέλεση σε οµοιογενή συστοιχία µε ίδιους επεξεργαστές. Σε κάθε περίπτωση χρησιµοποιείται ο αλγόριθµος σταθµισµένης εξισορρόπησης ϐάσει της ταχύτητας των επεξεργαστών.

60 40 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα ιαχείριση µνήµης Κάθε επεξεργαστής δεσµεύει χώρο στη µνήµη για το υποπεδίο υπολογισµού που του αντιστοιχεί. Η δέσµευση γίνεται έτσι ώστε να επιτυγχάνεται η ίδια αρίθµηση των όγκων ελέγχου όπως η αρχική πριν την αποσύνθεση. Αν myks, myke η αρχή και το τέλος των υπολογιστικών επιπέδων k για κάθε επεξεργαστή, οι αντίστοιχες ϑέσεις στη διανυσµατική µορφή συµπεριλαµβάνοντας τα ghost-cells ϑα είναι σύµφωνα µε τον τύπο 4.4: myvs = (myks 3) ni nj + 1 myve = (myke + 2) ni nj + 1 Ετσι δεσµεύεται µνήµη για τα µητρώα µε τη χρήση της εντολής allocate ως εξής : allocate(a(myvs:myve)) Στη δέσµευση της µνήµης περιλαµβάνονται και τα ghost-cells οπότε κάθε επεξεργαστής δεσµεύει µνήµη για (ni + 4) (nj + 4) (mynk + 4) ϑέσεις, όπου mynk ο αριθµός κελιών στην k διεύθυνση του εκάστοτε επεξεργαστή. Συνεπώς µετά την αποσύνθεση χρησιµοποιείται τελικά περισσότερη µνήµη από ότι στον σειριακό κώδικα λόγω ακρι- ϐώς της χρήσης των ghost-cells. Στο σχήµα 5.3 ϕαίνεται σε ένα παράδειγµα η αρχική γεωµετρία και αρίθµηση και η αποσύνθεση του πεδίου σε 2 µικρότερα για εκτέλεση σε 2 επεξεργαστές ιανοµή δεδοµένων Η διανοµή των µητρώων από τον κεντρικό επεξεργαστή στους υπόλοιπους γίνεται χρησιµοποιώντας τη ϱουτίνα MPI_Scatterv του πρωτοκόλλου MPI. Κατά τη διανοµή περιλαµβάνονται δύο επίπεδα κελιών πριν και µετά το υπολογιστικό πεδίο, έτσι ώστε να περιέχουν τις τιµές από τα µετέπειτα γειτονικά υποπεδία και να χρησιµοποιηθούν ακολούθως ως ghost-cells. Για τη διανοµή απαιτούνται τα µήκη και οι µετατοπίσεις των υποπεδίων στα µητρώα. Ως µήκη εννοούνται οι διαστάσεις των υποπεδίων, δηλαδή το µέγεθος του µητρώου διανύσµατος που δεσµεύεται για κάθε επεξεργαστή. Οι µετατοπίσεις είναι η σχετικές ϑέσεις έναρξης των παραπάνω υπο-διανυσµάτων στο αρχικό (πριν τη διανοµή των δεδοµένων) µητρώο-διάνυσµα. Η σχέση που δίνει τα µήκη είναι : len i = (ni i + 4) (nj i + 4) (mynk i + 4) (5.2) ενώ οι µετατοπίσεις είναι

61 ιανοµή δεδοµένων 41 Σχήµα 5.3: Αποσύνθεση απλής γεωµετρίας Σχήµα 5.4: Κατανοµή µνήµης κατά την αποσύνθεση στη διεύθυνση k

62 42 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Επικοινωνία i 1 idis i = len i (5.3) Η απαιτούµενη επικοινωνία µεταξύ των επεγεργαστών στην περίπτωση της µονοδιάστατης αποσύνθεσης στη διεύθυνση z είναι απλή στην υλοποίηση και παρουσιάζεται στο σχήµα 5.6. Κάθε επεξεργαστής µε ταυτότητα myrank πρέπει να ανταλλάξει δεδοµένα µε τους γειτονικούς του στους οποίους δίνονται τα ονόµατα left και right µε ταυτότητες myrank-1 και myrank+1 αντίστοιχα, όπως παρουσιάζονται στον πίνακα 5.4. Εξαίρεση αποτελούν οι οριακοί επεξεργαστές µε rank 0 και np-1 για τους οποίους δεν απαιτείται καµία επικοινωνία µε τους left και right αντίστοιχα. Στους επεξεργαστές αυτούς δίνονται ως left και right οι ειδικές τιµές MPI_PROC_NULL που ορίζονται από το πρωτόκολλο MPI, τέχνασµα που δηµιουργεί µια εικονική επικοινωνία κατά την οποία δεν ανταλλάσονται δεδοµένα. Η εικονική αυτή επικοινωνία δείχνεται στο σχήµα 5.5 µε τα διακεκοµένα ϐέλη. Ετσι όλοι οι επεξεργαστές εκτελούν την ίδια εντολή για αποστολή και λήψη των απαιτούµενων τιµών, αποφεύγοντας τη χρήση εντολών ελέγχου όπως if, κάτι που καθυστερεί τη διαδικασία. Κάθε επεξεργαστής λοιπόν εκτελεί τις παρακάτω εντολές που απαιτούνται για την ανταλλαγή δεδοµένων : 0 MPI_Send left MPI_Recv right MPI_Send right MPI_Recv left Η σειρά µε την οποία γίνεται η αποστολή και λήψη παίζει σηµαντικό ϱόλο καθότι η λάθος σειρά µπορεί να οδηγήσει σε deadlock. Αν για παράδειγµα εκτελεστεί πρώτα η MPI_Recv πρίν την MPI_Send τότε ϑα περιµένει δεδοµένα χωρίς να έχουν σταλεί από κάποιον γειτονικό. Στο σχήµα 5.6 απεικονίζονται 2 υποπεδία σε ένα παράδειγµα για να δειχτεί η χρήση των ghost-cells κατά την επίλυση οριακών κελιών. Ετσι όταν για παράδειγµα ο επεξεργαστής 2 Ϲητήσει για το κελί 55 την τιµή του κελιού 75 που ανήκει στον 1ο επεξεργαστή, ϑα τη ϐρεί στο ghost-cell όπου ϑα έχει αποθηκευτεί µετά την έγκαιρη

63 Παραγόµενοι τύποι δεδοµένων 43 Πίνακας 5.4: Ορισµός γειτονικών υποπεδίων left rank right MPI_PROC_NULL ncpu-2 ncpu-1 MPI_PROC_NULL Σχήµα 5.5: Επικοινωνία στη µονοδιάστατη αποσύνθεση αποστολή της. Η αποστολή έχει γίνει περιλαµβάνοντας 2 επίπεδα κελιών Παραγόµενοι τύποι δεδοµένων Για την επικοινωνία των υποπεδίων έχουν χρησιµοποιηθεί παραγόµενοι τύποι δεδο- µένων, µε τη ϐοήθεια των οποίων διευκολύνεται ο προγραµµατισµός οδηγώντας σε µια πιό συµπαγοποιηµένη και ευανάγνωστη µορφή του κώδικα. Ο κυριότερος λόγος που γίνεται αυτό είναι η αποφυγή ϐρόγχων κατά τους οποίους γίνεται σταδιακή αποστολή των δεδοµένων. Επειδή κάθε αποστολή περιλαµβάνει µια καθυστέρηση λόγω περιορισµών του υλικού (latency) Ο χρόνος αποστολής ενός πακέτου δεδοµένων είναι : t = t s + t l (5.4) όπου t s ο χρόνος αποστολής που προκύπτει ϐάσει της ταχύτητας του διαύλου και του πλήθους των δεδοµένων και είναι : ενώ ο χρόνος απόκρισης (latency) t l t s = bytes speed (5.5) είναι µια σταθερή ποσότητα και εξαρτάται από το είδος του διαύλου. Στη συγκεκριµένη περίπτωση αυτής της εργασια ο δίαυλος Gigabit που χρησιµοποιείται εδώ έχει µεγάλο latency σε σχέση µε άλλους, και είναι της τάξης των µs. Ο χρόνος αυτός προστίθεται σε κάθε αποστολή πακέτου,

64 44 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Σχήµα 5.6: Απαιτούµενη επικοινωνία για µονοδιάστατη αποσύνθεση οπότε πρέπει να περιοριστεί ο αριθµός των πακέτων και τα δεδοµένα να στέλνονται κατά το δυνατόν µαζικά. Χρησιµοποιώντας έναν τέτοιο κατάλληλο τύπο αποφεύγεται η άσκοπη τµηµατική αποστολή των δεδοµένων και ϐελτιώνεται κατά συνέπεια η επιτάχυνση του κώδικα. Για την επικοινωνία στη διεύθυνση k δηµιουργείται ένας παραγόµενος τύπος BT_TYPE που περιλαµβάνει 2 επίπεδα i j κελιών και είναι συνεχόµενα στη µνή- µη. Ο αριθµός των κελιών είναι ni nj οπότε ο τύπος δηµιουργείται ως εξής : MPI_Type_contiguous(2*ni*nj, MPI_REAL, BT_TYPE, ierror) όµοια δηµηιυργούνται και τύποι για επικοινωνία µεταξύ των µετώπων S,N και W,E, καθώς και για ανταλλαγή γωνιακών σηµείων, τύποι που ϑα χρησιµοποιηθούν σε πολυδιάστατη αποσύνθεση και αποσύνθεση σε άλλες διευθύνσεις και στην επικοινωνία του multi-block επιλυτή. MPI_Type_vector(nk, 2*ni, ni*nj, MPI_REAL, SN_TYPE, ierror) MPI_Type_vector(nj, 1, ni, MPI_REAL, CORNER_TYPE, ierror) Σε πολλά προβλήµατα η διεύθυνση i είναι η διεύθυνση της κύριας ϱοής, οπότε χρησιµοποιούνται περισσότερα κελιά κατά τη διακριτοποίηση του υπολογιστικού χώρου. Ο αριθµός κελιών στα επίπεδα i-j,i-k,j-k είναι αντίστοιχα ni*nj,ni*nk,nj*nk

65 5.6. Αποσύνθεση στη διεύθυνση i 45 Σχήµα 5.7: Παραγόµενος τύπος δεδοµένων SN_TYPE για επικοινωνία στα µέτωπα S-N µε ανάλογο κόστος στην επικοινωνία κατά την αποσύνθεση στις αντίστοιχες διευθύνσεις (k,j,i). Συνεπώς όταν ni> nj,nk στην περίπτωση της αποσύνθεσης στη διεύθυση k η επικονωνία µεταξύ των επεξεργαστών είναι αυξηµένη. Κατά τη µονοδιάστατη αποσύνθεση η ελάχιστος όγκος δεδοµένων προς ανταλλαγή είναι : min{ni nj, ni nk, nj nk} (5.6) Επειδή στα περισσότερα προβλήµατα η µεγαλύτερη διάσταση είναι αυτή στη διεύ- ϑυνση i ϑα πρέπει να αποφεύγεται η αποσύνθεση στις διευθύνσεις όπου εµπλέκεται δηλαδή στις j και k. Στην επόµενη παράγραφο διερευνάται αυτή η περίπτωση ενώ στο κεφάλαιο παρουσίασης των αποτελεσµάτων αξιολογείται το κέρδος από αυτή τη διαφοροποίηση. 5.6 Αποσύνθεση στη διεύθυνση i Στα πλαίσια της µετάβασης του κώδικα ώστε να δύναται να επιλύσει προβλήµατα που περιγράφονται µε πολλαπλές τοπολογίες (multi-block) η αποσύνθεση στη διεύθυνση i αποτέλεσε το µεταβατικό στάδιο, αλλάζοντας τη λογική επίλυσης και τη διαχείριση µνήµης.

66 46 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα ιαχείριση µνήµης Στην περίπτωση αυτή η αρχική γεωµετρία διασπάται πάλι σε υποπεδία αλλά δηµιουργούνται νέα, µε δική τους αρίθµηση (δε διατηρείται η αρίθµηση των κελιών όπως στην αποσύνθεση κατά k). Κάθε υποπεδίο αποθηκεύεται στη µνήµη πάλι σε διανυσµατική µορφή, αριθµώντας τους όγκους ελέγχου από 1 (a(1 : n)) όπου n ο αριθµός κελιών σε κάθε block. Ο τελικός αριθµός των υποπεδίων είναι ίσος µε τον αριθµό των επεξεργαστών που ϑα συµµετέχουν στην επίλυση, και εφαρµόζεται ο ίδιος αλγόριθµος εξισορρόπησης όπως και στην προηγούµενη αποσύνθεση κατά k Επικοινωνία Η επικοινωνία στην περίπτωση αυτή είναι και πάλι µονοδιάστατη και απλή µε µόνη διαφορά την κατεύθυνση επικοινωνίας. Επίσης τα δεδοµένα που πρέπει να ανταλλάξουν οι επεξεργαστές δεν είναι πλέον συνεχόµενα τη µνήµη, οπότε ϑα πρέπει να χρησιµοποιηθεί ένας παραγόµενος τύπος δεδοµένων, ο οποίος ϑα διευκολύνει τον προγραµµατισµό αποφεύγοντας τους άσκοπους ϐρόγχους και ελέγχους. Η απαιτούµενη επικοινωνία ϑα πρέπει να γίνει στα µέτωπα W - E, ο τύπος δεδοµένων που κατασκευάζεται για το σκοπό αυτό αποτελείται από δύο επίπεδα j k. Οι σχετικές ϑέσεις των στοιχείων και ο τρόπος παραγωγής του τύπου αυτού απεικονίζεται στο σχήµα 5.8. MPI_Type_vector(nj*nk, 2, ni, MPI_REAL, WE_TYPE, ierror) MPI_Type_commit(WE_TYPE) Με τις παρακάτω κλήσεις έχει δηµιουργηθεί ο τύπος και είναι έτοιµος για χρήση ως εξής : call MPI_Send(send_s, 1, WE_TYPE, left, id), itag, MPI_COMM_WORLD, ierror)... call MPI_Recv(recv_s, 1, WE_TYPE, right, id), itag, MPI_COMM_WORLD, ierror, istatus) 5.7 Χειρισµός του αλγορίθµου SIP Εφόσον η λύση του προβλήµατος που διαπραγµατεύεται η εργασία αυτή ϐασίζεται στην τεχνική του domain decomposition δεν υπάρχει ανάγκη παραλληλοποίησης

67 5.7. Χειρισµός του αλγορίθµου SIP 47 Σχήµα 5.8: Παραγόµενος τύπος δεδοµένων WE_TYPE για επικοινωνία στα µέτωπα W-E του ίδιου του αλγορίθµου. Κάθε επεξεργαστής λύνει το δικό του σύστηµα που αντιστοιχεί στη ο προς επίλυση υποπεδίο µε τη µέθοδο SIP. Ωστόσο, υπάρχει ένα λεπτό σηµείο που πρέπει να δοθεί προσοχή ώστε να ανακτηθεί η χαµένη πληροφορία που προκύπτει από γειτονικούς επεξεργαστές λόγω περιορισµών του ίδιου του αλγορίθ- µου. Το σύστηµα εξισώσεων που λύνει κάθε επεξεργαστής είναι της µορφής : A P φ ijk = A w φ i 1jk + A e φ i+1jk + A s φ ij 1k + A n φ ij+1k + A b φ ijk 1 + A t φ ijk+1 + S P (5.7) Ο αλγόριθµος απαιτεί το µηδενισµό των συντελεστών A l, l = W, E, S, N, B, T στα όρια του προς επίλυση πεδίου (σχήµα 5.9). Με αυτόν τον τρόπο χάνεται η αλληλεπίδραση µε τα γειτονικά πεδία στα αντίστοιχα επίπεδα και δίνεται µια λανθασµένη λύση ϑεωρώντας τα υποπεδία αποµονωµένα. Η πληροφορία που χάνεται µε αυτό τον τρόπο εισάγεται σαν ένας πρόσθετος όρος πηγής. Ο συντελεστής A l προστίθεται στο A P και στον όρο πηγής S P ενώ αφαιρείται από τους υπόλοιπους. Το σύστηµα εξισώσεων παίρνει τελικά τη µορφή :

68 48 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα (A P + A fw + A fe + A fs + A fn + A fb + A ft )φ ijk = (A w A fw )φ i 1jk + (A e A fe )φ i+1jk + (A s A fs )φ ij 1k + (A n A fn )φ ij+1k + (A b A fb )φ ijk 1 + (A t A ft )φ ijk+1 + (S P + A fw φ W + A fe φ E + A fs φ S + A fn φ N + A fb φ B + A ft φ T ) Σχήµα 5.9: Μηδενισµός στα όρια ενός 4x6 υποπροβλήµατος Στο σχήµα 5.11 απεικονίζει τη µορφή του συστήµατος εξισώσεων που προκύπτει για το πρόβληµα του σχήµατος 5.10 για εκτέλεση σε 4 επεξεργαστές. Επίσης ϕαίνονται και οι περιοχές των µητρώων που αντιστοιχούν σε κάθε επεξεργαστή. Οι διαγώνιοι αναπαριστούν την αλληλεπίδραση των υποπεδίων. Οπως είναι αναµενόµενο τα στοιχεία στην περιοχή A 14 και A 23 του πίνακα A είναι µηδενικά αφού οι πλευρές των υποπεδίων αυτών δεν έρχονται σε επαφή. Η επικοινωνία ανάµεσα στους επεξεργαστές µπορεί να γίνει µετά το τέλος της επαναληπτικής διαδικασίας του αλγορίθµου SIP ή στο τέλος της κάθε επανάληψης. Στην πρώτη περίπτωση παρατηρήθηκε κα- ϑυστέρηση στη σύγκλιση η οποία οπτικοποιείται στις ισοϋψείς του σχήµατος 5.12 ως ασυνέχεια στα επίπεδα τοµής (δεξιά). Η συµπεριφορά αυτή είναι αναµενόµενη και οφείλεται στην καθυστέρηση στην ενηµέρωση των τιµών µεταξύ των επεξεργαστών,

69 5.7. Χειρισµός του αλγορίθµου SIP 49 Σχήµα 5.10: Αποσύνθεση σε 4 πεδία Σχήµα 5.11: Σύστηµα εξισώσεων για επίλυση σε 4 επεξεργαστές καθότι οι τιµές που διαβάζονται από τα ghost-cells ανήκουν στην προηγούµενη εξωτερική επανάληψη της επίλυσης. Ετσι η επικοινωνία ϑα πρέπει να γίνεται σε κάθε εσωτερική επανάληψη της διαδικασίας του αλγορίθµου SIP ώστε να υπάρχει έγκαιρη ενηµέρωση των τιµών.

70 50 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Πίνακας 5.5: Επικοινωνία κατά τη διαδικασία του αλγορίθµου Stone Υπολογισµός L,U Υπολογισµός L,U (Αρχή επαναληπτικής διαδικασίας) (Αρχή επαναληπτικής διαδικασίας) Υπολογισµός R (residual) Υπολογισµός R (residual) Επίλυση L (forward substitution) Επίλυση L (forward substitution) Επίλυση U (backward substitution) Επίλυση U (backward substitution) ιόρθωση µεταβλητής ιόρθωση µεταβλητής Επικοινωνία (Τέλος επαναληπτικής διαδικασίας) (Τέλος επαναληπτικής διαδικασίας) Επικοινωνία Σχήµα 5.12: Ισοϋψείς ταχυτήτων. Επικοινωνία εντός (αριστερά) και εκτός (δεξιά) της επαναληπτικής διαδικασίας του Stone

71 5.8. Χειρισµός Οριακών Συνθηκών Χειρισµός Οριακών Συνθηκών Τα µητρώα που περιέχουν πληροφορίες για τις οριακές συνθήκες όπως τοιχώµατα και συνθήκες συµµετρίας δεν διανέµονται οπότε όλοι οι επεξεργαστές γνωρίζουν τις συνθήκες ολόκληρου του πεδίου. Οπου υπάρχουν τοιχώµατα σε µέτωπα W,E,S,N γίνεται ένας έλεγχος για να µην οδηγηθούν οι πράξεις του ενός επεξεργαστή εκτός του πεδίου του. Ο χειρισµός αυτός έγινε για να παραµείνει ίδιο το κοµµάτι του κώδικα που χειρίζεται τις οριακές συνθήκες Χειρισµός υπολογισµού ϱοής στην έξοδο Στην έξοδο του πεδίου ϱοής διορθώνονται οι ταχύτητες ϐάσει της αρχής διατήρησης µάζας. Αν flow in = c w (5.8) και flow = c e (5.9) η ϱοή στην έξοδο, η ταχύτητα στη έξοδο (i=ni+1) ϑα πρέπει να είναι : i=1 i=ni u i=ni+1 e = u in flow in flow (5.10) όπου u in η ταχύτητα στην είσοδο του πεδίου ϱοής Σχήµα 5.13: Χειρισµός οριακής συνθήκης στην έξοδο

72 52 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Κάθε επεξεργαστής υπολογίζει την επί µέρους ϱοής που του αντιστοιχεί. Ο υπολογισµός της συνολικής ϱοής στην έξοδο γίνεται µε τη ϱουτίνα συλλογικής επικοινωνίας MPI_Allreduce χρησιµοποιώντας τον τελεστή MPI_SUM ως εξής : MPI_Allreduce(myflow, flow, 1, MPI_REAL, MPI_SUM, MPI_COMM_WORLD, ierror) Οι ποσότητες myflow που υπολογίζονται από κάθε επεξεργαστή ξεχωριστά προστί- ϑενται και το άθροισµα αποθηκεύεται στη µεταβλητή flow σε όλους τους επεξεργαστές. Η διαδικασία αυτή απεικονίζεται στη σχήµα Συνθήκη περιοδικότητας Υπάρχουν περιπτώσεις που η γεωµετρία του προβλήµατος παρουσιάζει περιοδικότητα, όπως η σειρά πτερυγίων σε στροβιλοµηχανή, σειρά σωλήνων σε εναλλάκτη, κλπ. Στις περιπτώσεις αυτές για εξοικονόµηση µνήµης επιλύεται ένα µέρος της γεωµετρίας και εφόσον αυτή επαναλαµβάνεται εκατέρωθεν, εφαρµόζεται στα όρια µια συνθήκη περιοδικότητας έτσι ώστε ο κώδικας να αντιλαµβάνεται ότι υπάρχει εκεί επανάληψη της ίδιας γεωµετρίας. Στο σχήµα 5.14(α ) απεικονίζεται µια σειρά πτερυγίων στροβιλοµηχανής. Η ϱοή επιλύεται µόνο στο µέρος της γεωµετρίας που επαναλαµβάνεται, εφαρµόζοντας τη συνθήκη περιοδικότητας (σχήµα 5.14(ϐ )). Στο σχήµα 5.15 απεικονίζεται µια τέτοια γεωµετρία καθώς και η απαραίτητη διαδικασία επικοινωνίας που πρέπει να λάβει χώρα, όταν η αποσύνθεση πεδίου γίνεται κατά τη διεύθυνση k. Στην περίπτωση αυτή αρκεί η ανταλλαγή δύο οριακών επιπέδων κελιών µεταξύ των επεξεργαστών που χειρίζονται τα κελιά αυτά. Κατά σύµβαση οι επεξεργαστές αυτοί αριθµούνται ως 0 και ncpu-1, όπου ncpu ο αριθµός των ε- πεξεργαστών, και οι γειτονικοί επεξεργαστές ορίζονται σύµφωνα µε τον πίνακα 5.6. Πίνακας 5.6: Ορισµός γειτονικών υποπεδίων όταν υπάρχει συνθήκη περιοδικότητας left rank right ncpu myrank-1 myrank myrank ncpu-2 ncpu-1 0

73 Συνθήκη περιοδικότητας 53 (α ) Πλέγµα σε σειρά πτερυγίων (ϐ ) Πλέγµα µε συνθήκη περιοδικότητας Σχήµα 5.14: Γεωµετρία και εφαρµογή συνθήκης περιοδικότητας σε σειρά πτερυγίων στροβιλοµηχανής Σχήµα 5.15: Οριακή συνθήκη περιοδικότητας και απαιτούµενη επικοινωνία

74 54 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Επικοινωνία σε πλέγµατα τύπου O Ουσιαστικά πρόκειται για ένα πλέγµα τύπου C του οποίου οι γραµµές σταθερού ξ ή η κλείνουν. Στα πλέγµατα τύπου Ο τα µέτωπα W και E (ή S,N) επικοινωνούν σύµφωνα µε το σχήµα 5.16 Στη συγκεκριµένη περίπτωση υπάρχει επαφή στα µέτωπα S-N, δηλαδή τα κελιά µε j=1 και j=nj. Αν γίνει µονοδιάστατη αποσύνθεση στη διεύθυνση j τότε το W µέτωπο ανήκει στον 1ο επεξεργαστή (µε rank 0) ενώ το E µέτωπο ανήκει στον τελευταίο επεξεργαστή (µε rank np-1). Η απαραίτητη µεταξύ τους επικοινωνία είναι απλή και αρκεί να σταλούν 2-i επίπεδα floats ξεκινώντας από το κελί (1,1). Ο τρόπος επικοινωνίας αυτός απεικονίζεται στο σχήµα 5.17 στο οποίο δείχνεται και η αρίθµηση των υπολογιστικών όγκων ελέγχου. Η σύνδεση των δύο µετώπων γίνεται ορίζοντας τα γειτονικά υποπεδία κατάλληλα σύµφωνα µε τον πίνακα 5.7. Σχήµα 5.16: O-type πλέγµα Πίνακας 5.7: Ορισµός γειτονικών υποπεδίων σε πλέγµα τύπου Ο left rank right ncpu myrank-1 myrank myrank ncpu-2 ncpu-1 0

75 Επικοινωνία σε πλέγµατα τύπου C 55 Σχήµα 5.17: Απαιτούµενη επικοινωνία σε O-type πλέγµα Επικοινωνία σε πλέγµατα τύπου C Ενα πλέγµα τύπου C µπορεί να χρησιµοποιηθεί για να περιγράψει απλές περιπτώσεις ϱοής γύρω από ένα αντικείµενο, όπως για παράδειγµα γύρω από µια πτέρυγα όπως δείχνει το σχήµα Στην περίπτωση αυτή έρχονται σε επαφή όγκοι ελέγχου που ανήκουν στο ίδιο µέτωπο και σε περίπτωση που αυτοί επιλύονται σε διαφορετικό επεξεργαστή ϑα πρέπει να γίνει ειδικός χειρισµός για την επικοινωνία µεταξύ τους. Σχήµα 5.18: C-type πλέγµα εφαπτόµενο στον εαυτό του Ο τρόπος επικοινωνίας στην περίπτωση αυτή αν και είναι ϕαινοµενικά απλός παρουσιάζει µια ιδιαιτερότητα. Οι τιµές των κελιών 1-n1 πρέπει να σταλούν στα ghost-cells πάνω από τα κελιά ni-n1+1 ως ni. Αν σταλούν n1 floats στη ϑέση nin1+1 πάνω από το κελί ni-n1+1 ϑα αποθηκευτεί η τιµή του κελιού 1, που είναι λάθος. Ετσι ϑα πρέπει οι τιµές να σταλούν ανάποδα, σύµφωνα µε τη διαδκασία του σχήµατος 5.20, διότι η αρίθµηση στο κάτω µέρος του πλέγµατος έχει αντίθετη ϕορά (σχήµα 5.19).

76 56 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Σχήµα 5.19: Αρίθµηση κόµβων στο πλέγµα Σχήµα 5.20: Επικοινωνία στο C-type πλέγµα 5.9 Χειρισµός ελέγχου τερµατισµού Ο τερµατισµός της επαναληπτικής διαδικασίας γίνεται ϐάσει του υπολογισµού του σφάλµατος που αναπτύχθηκε στην παράγραφο Στον παράλληλο κώδικα ο υπολογισµός του σφάλµατος γίνεται για κάθε πεδίο ξεχωριστά, συνεπώς για τον υπολογισµό του συνολικού σφάλµατος το οποίο αναφέρεται σε όλο το πεδίο ϱοής (όπως γίνεται στο σειριακό κώδικα) ϑα πρέπει τα επί µέρους σφάλµατα να αθροιστούν. Αν κάθε επεξεργαστής υπολογίζει ένα σφάλµα myresidual για το υποπεδίο που επιλύει, τότε το συνολικό σφάλµα ϑα είναι : N residual = myresidual i (5.11) i=1 όπου N ο αριθµός των επεξεργαστών. Η τιµή residual υπολογίζεται κάνοντας χρήση της υπορουτίνας MPI_Allreduce χρησιµοποιώντας τον τελεστή MPI_SUM, ως εξής :

77 5.10. Χρήση διανυσµατικής µονάδας 57 MPI_Allreduce(myresidual, residual, 1, MPI_REAL, MPI_SUM, MPI_COMM_WORLD, ierror) Οι ποσότητες myresidual που υπολογίζονται από κάθε επεξεργαστή ξεχωριστά από τη σχέση 4.3 προστίθενται και το άθροισµα αποθηκεύεται στη µεταβλητή residual σε όλους τους επεξεργαστές Χρήση διανυσµατικής µονάδας Η χρησιµοποιούµενη συστοιχία αποτελείται από 22 επεξεργαστές PowerPC - G5 της IBM. Οι επεξεργαστές αυτοί διαθέτουν µια ισχυρή διανυσµατική µονάδα ονόµατι Altivec όπου µπορούν να εκτελούνται περισσότερες από µια πράξεις ταυτόχρονα. Ενα µέρος της έρευνας αναλώθηκε στην διερεύνηση αυτής της µονάδας, την πιθανή ενσωµάτωση της τεχνολογίας αυτής στον κώδικα ώστε να επιτευχθεί µεγαλύτερη επιτάχυνση. Η µονάδα αυτή µπορεί να εκτελέσει µια πράξη (instruction) σε δεδοµένα συνολικού µήκους 128bit. εδοµένου ότι ένας αριθµός κινητής υποδιαστολής απλής ακρίβειας (float) έχει µήκος 4bytes = 32bits στη µονάδα αυτή µπορούν να εκτελεστούν 4 πράξεις ταυτόχρονα (σε ένα κύκλο) σε αντίθεση µε µία ϐαθµωτή µονάδα που εκτελεί µία πράξη ανά κύκλο, διαφοροποίηση που ϕαίνεται στο σχήµα Σχήµα 5.21: Πρόσθεση σε ϐαθµωτή (scalar) και διανυσµατική (vector) µονάδα

78 58 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Χρήση της µονάδας altivec Η πρόσβαση στη τεχνολογία που προσφέρει η µονάδα αυτή επιτυγχάνεται µέσω µιας ϐιβλιοθήκης που παρέχεται από τον µεταγλωτιστή που χρησιµοποιείται. Η δυνατότητα αυτή παρέχεται µόνο για τη γλώσσα προγραµµατισµού C οπότε η ενσωµάτωση της τεχνολογίας αυτής στον κώδικα που αναπτύσσεται εδώ και είναι γραµµένος σε FORTRAN ϑα πρέπει να δηµιουργηθούν κάποιες ενδιάµεσες ϐοηθητικές ϱουτίνες (wrappers), που ϑα παρέχονται στον κώδικα υπό τη µορφή ϐιβλιοθήκης. #include <veclib/vfp.h> void my_vec_add(float *a, float *b, float *c, int *n) { int i; int step = vec_step( vector float ); int loops = *n / step; for( i=0 ; i < loops ; i++ ) { #define va ((vector float*) a ) #define vb ((vector float*) b ) #define vc ((vector float*) c ) *vc = vec_add(*va, *vb); va++; vb++; vc++; } } Ο παραπάνω κώδικας σε C αποτελεί µια ενδιάµεση ϐοηθητική ϱουτίνα (wrapper) ώστε να χρησιµοποιηθεί το altivec µέσα από τη FORTRAN ως εξής : program vecadd parameter (n=4096) real a(n),b(n) a=1. b=3. call my_vec_add(a,b,c,n) end

79 Επιδόσεις της µονάδας altivec 59 Η παραπάνω ϱουτίνα µπορεί να εκτελέσει παράλληλα 4 πράξεις αλλά για συνολικό αριθµό δεδοµένων πολλαπλάσιο του 4. Στη γενική περίπτωση τα προστιθέµενα διανύσµατα δεν έχουν διάσταση πολλαπλάσια του 4, οπότε η πρόσθεση των υπολοίπων δεδοµένων που δεν µπορούν να εκτελεστούν παράλληλα σε τετράδα ϑα πρέπει να γίνει σειριακά. Με την προσθήκη των παρακάτω γραµµών στην υπορουτίνα δίνεται η δυνατότητα για πρόσθεση µητρώων µε οποιαδήποτε διάσταση : m=mod(n,4) for (i=n-m+1; i<=n; i++) { vc[i]=va[i]+vb[i]; } Αυτό αφήνει ουσιαστικά ένα µέρος του κώδικα σειριακό κάτι που έχει αντίκτυπο στην µέγιστη επιτάχυνση σύµφωνα µε το νόµο του Amdahl Επιδόσεις της µονάδας altivec Η µέγιστη επιτάχυνση που επιτεύχθηκε για συνήθεις πράξεις όπως ο πρόσθεση και πολλαπλασιασµός διανυσµάτων ήταν γύρω στο 40% (πίνακας 5.8) και παρατηρήθηκε για µικρές διαστάσεις µητρώων, ενώ για µεγαλύτερα (πάνω από 65000) η απόδοση ϕθίνει δραµατικά και δεν έχει πρακτική αξία. Στο σχήµα 5.22 ϕαίνεται αυτή η συµπεριφορά, αφορά την πρόσθεση 2 µητρώων τύπου float και αναπαριστά το χρόνο εκτέλεσης στην CPU και στη µονάδα Altivec για διάφορες διαστάσεις των προστιθέ- µενων µητρώων. Στο ίδιο σχήµα ϕαίνεται και η επιτάχυνση (speedup) που ορίζεται ως ο λογος του χρόνου εκτέλεσης στο altivec προς το χρόνο εκτέλεσης στη CPU. Πίνακας 5.8: Επιδόσεις altivec για διάφορες πράξεις Τελεστής CPU Altivec * e x Πρέπει να σηµειωθεί ότι οι πράξεις έγιναν µε µεγέθη µητρώων πολλαπλάσια του 4, οπότε η επιτάχυνση που αναφέρεται είναι η µέγιστη. Για τυχαία µεγέθη το κέρδος είναι µικρότερο καθώς όπως αναφέρθηκε προκύπτει ένα µέρος των πράξεων που εκτελείται σειριακά. Ο χρόνος απόκρισης αυτών των κλήσεων αν και ϕαινοµενικά αµελητέος, δηµιουργεί υπολογίσιµη καθυστέρηση λόγω των χιλιάδων κλήσεων που

80 60 Κεφάλαιο 5. Παραλληλοποίηση του σειριακού κώδικα Σχήµα 5.22: Επίδραση διαστάσης προστιθέµενων µητρώων στο χρόνο εκτέλεσης γίνονται από τον κώδικα. εδοµένου ότι τα περισσότερα προβλήµατα χρησιµοποιούν µεγάλα µητρώα και το κέρδος από αυτή την τεχνολογία στην κλίµακα αυτή είναι αµελητέο, δεν ενσωµατώθηκε στον κώδικα που χρησιµοποιείται παραγωγικά, αλλά παραµένει σε στάδιο διερεύνησης για µελλοντική πιθανή χρήση σε µέρη του κώδικα ή για επιτάχυνση εργαλείων επεξεργασίας δεδοµένων (pre- και post-processing).

81 Κεφάλαιο 6 ηµιουργία multi-block επιλυτή Η χρήση του δοµηµένου πλέγµατος που απαιτεί η µέθοδος πεπερασµένων όγκων περιορίζει τον κατακερµατισµό του υπολογιστικού χώρου στην περίπτωση µιας πολυπλοκότερης γεωµετρίας µε αποτέλεσµα η ποιότητα των όγκων ελέγχου να µην είναι καλή. Τέτοιες περιπτώσεις περιλαµβάνουν για παράδειγµα γεωµετρίες µε εµπόδια τη ϱοή όπως η διάταξη του σχήµατος 6.1. Η παραλληλοποίηση ενός επιλυτή που χειρίζεται περισσότερα του ενός δοµηµένου πλέγµατος (block) είναι εν γένει πολυπλοκότερη αλλά αναγκαία, γι αυτό και η έρευνα έχει κατευθυνθεί από πολλούς σε αυτόν τον τοµέα [63, 64]. Η αρχική προσέγγιση των παραπάνω περιπτώσεων χρησιµοποιώντας ενα µόνο δο- µηµένο πλέγµα είναι ο ειδικός χειρισµός της περιοχής αυτής κατά τον οποίο εφαρµό- Ϲεται η οριακή συνθήκη «σταθερής τιµής πεδίου» [61]. Η οριακή συνθήκη προβλέπει τη χρήση µιας ψευτοπηγής στα κελιά που ορίζουν την εν λόγω περιοχή (γκρί κελιά στο σχήµα 6.2) η οποία διαµορφώνει το τελικό σύστηµα εξισώσεων ως εξής : (A P + S P + S p)φ P = A i φ i + S u + φ FIX S u (6.1) όπου S p και S u όροι µε πολύ µεγάλη τιµή, έτσι ώστε οι όροι A P +S P και i A i φ i +S u ϑεωρούνται αµελητέοι. Ετσι προκύπτει φ P φ FIX, δηλαδή η σταθερή επιθυµητή τιµή στα συγκεκριµένα κελιά. Αν πρόκειται για εµπόδιο όπου δεν υπάρχει ϱοή τίθεται φ FIX = 0 για τις ταχύτητες φ P u, v, w. Ο παραπάνω χειρισµός έχει το µειονέκτηµα της άσκοπης χρήσης µνήµης στην περιοχή όπου εφαρµόζεται οι συνθήκη αυτή, και κυρίως ο άσκοπος υπολογιστικός χρόνος που αναλώνεται εκεί. Η χρήση περισσότερων του ενός δοµηµένου πλέγµατος λύνει τα παραπάνω προβλήµατα καθώς η απαιτούµενη µνήµη και οι υπολογισµοί 61 i

82 62 Κεφάλαιο 6. ηµιουργία multi-block επιλυτή γίνονται µόνο σε όγκους ελέγχου όπου υπάρχει ϱοή. Παράδειγµα χρήσης τριών πλεγµάτων για το πρόβληµα του σχήµατος 6.1 απεικονίζεται στο σχήµα 6.3. Σχήµα 6.1: ιάταξη ϱοής σε αγωγό µε εµπόδιο Σχήµα 6.2: Χρήση συνθήκης σταθερής τιµής πεδίου Σχήµα 6.3: Χρήση τριών πλεγµάτων Στην παρούσα εργασία ερευνήθηκαν δύο τρόποι µε τους οποίους µπορεί να γίνει αποσύνθεση πολλών δοµηµένων πλεγµάτων. Η διαχείριση της µνήµης και στις δύο περιπτώσεις πριν τη διανοµή των δεδοµένων είναι ίδια και περιγράφεται αµέσως µετά.

83 6.1. ιαχείριση µνήµης ιαχείριση µνήµης Το σύνολο των blocks (έστω m) αποθηκεύονται στη µνήµη σύµφωνα µε τη διανυσµατική µορφή που περιγράφτηκε και χρησιµοποιείται και στο σειριακό κώδικα. Τα διανύσµατα που αντιστοιχούν σε κάθε block αποθηκεύονται σειριακά, δηλαδή µετά το τέλος του διανύσµατος του ενός block αρχίζει το διάνυσµα του επόµενου, οπότε στη µνήµη όλα τα µεγέθη που αναφέρονται σε όλο το πεδίο αποθηκεύονται µε τη µορφή του σχήµατος 6.4. Συνεπώς το κελί i,j,k (στον κανονικοποιηµένο χώρο) του τυχαίου block b αποθηκεύεται στη µνήµη στη ϑέση : ijk b = (k 1) ni b nj b + (j 1) ni b + i + offset b (6.2) όπου ni b, nj b, nk b ο αριθµός κελιών του block b στις διευθύνσεις i,j,k αντίστοιχα, συµπεριλαµβανοµένων των εικονικών κελιών. Η µετατόπιση offset b του block b στη µνήµη είναι : b 1 offset b = (ni i nj i nk i ) (6.3) όπου offset 1 = 0 (για το 1ο block οπότε η σχέση 6.2 ανάγεται στην 4.4. i=1 Σχήµα 6.4: ιαχείριση µνήµης για πολλά blocks Είναι προφανές ότι η χρήση πολυδιάστατων µητρώων ϑα αποτελούσε πιό ϕυσικό τρόπο αναφοράς στους όγκους ελέγχου απ ότι η διανυσµατική µορφή που χρησιµοποιείται εδώ Στην επίλυση πολλών blocks όµως ϑα πρέπει να δεσµευτεί µία ακόµη διάσταση που ϑα αναφέρεται στον αριθµό του block, έχοντας για τρισδιάστατο πρό- ϐληµα συνολικά 4 διαστάσεις. Η δέσµευση µνήµης ϑα πρέπει να γίνει ϐάσει των µεγαλύτερων διαστάσεων των πλεγµάτων. Αν για παράδειγµα υπάρχουν m blocks και ni b, nj b, nk b οι διαστάσεις του πλέγµατος b τότε για το µητρώο Α που ϑα περιέχει ποσότητες αναφερόµενες στα παραπάνω πλέγµατα ϑα πρέπει να δεσµευτεί µνήµη maxni b maxnj b maxnk b m.

84 64 Κεφάλαιο 6. ηµιουργία multi-block επιλυτή Πίνακας 6.1: 3 πλέγµατα, διαστάσεις, και αριθµός κελιών block ni nj nk cells Χρησιµοποιώντας τη διανυσµατική αποθήκευση όµως η δεσµευόµενη µνήµη µειώνεται αποθηκεύοτας όσα δεδοµένα ακριβώς χρειάζονται, δηλαδή m ni b nj b nk b b=1 Η σπατάλη της µνήµης χρησιµοποιώντας πολυδιάστατα µητρώα ϕαίνεται έντονα µέσα από ένα παράδειγµα χρήσης 3 πλεγµάτων του πίνακα 6.1. Χρησιµοποιώντας 4διάστατο µητρώο Α για αποθήκευση τιµών ως Α(200,100,40,3) απαιτούνται = ϑέσεις µνήµης 1, δηλαδή (4bytes/float) = 9375kb. Χρησιµοποιώντας ένα διάνυσµα τοποθετώντας σειριακά τα τρία επί µέρους διανύσµατα του κάθε πλέγµατος απαιτούνται µόνο = ϑέσεις µνήµης, δηλαδή = 3711kb. Ετσι εξοικονοµείται στην περίπτωση αυτή µνήµη γύρω στο 60% η µέθοδος Κάθε block (από τα συνολικά m) αποσυντίθεται σε τόσα υποπεδία όσοι οι επεξεργαστές (Ν στο σύνολο) όπως ϕαίνεται στο σχήµα 6.5 Κάθε επεξεργαστής αναλαµβάνει να λύσει τα υποπεδία των blocks που του αντιστοιχούν. Η επίλυση των υποπεδίων αυτών γίνεται σειριακά. Ο ψευδοκώδικας επίλυσης για κάθε επεξεργαστή είναι : do i=1,n solve subblock i end do ιαχείριση µνήµης Μετά τη διανοµή (distribution) των µητρώων στους επεξεργαστές η κατανοµή της µνήµης µετατρέπεται έτσι ώστε κάθε cpu να γνωρίζει µόνο τα δεδοµένα τα οποία 1 τύπου float

85 ιαχείριση µνήµης 65 Σχήµα 6.5: Μονοδιάστατη αποσύνθεση πολλών πεδίων µε την 1η µέθοδο πρόκειται να επεξεργαστεί, σύµφωνα µε το σχήµα 6.6. Σχήµα 6.6: ιανοµή µητρώων σύµφωνα µε την 1η µέθοδο Η αποθήκευση των δεδοµένων σε κάθε επεξεργαστή γίνεται µε την ίδια λογική που παρουσιάστηκε στην παράγραφο 6.1. Σε κάθε επεξεργαστή ορίζεται και πάλι η µετατόπιση του κάθε µέρους του block b myoffset b : b 1 myoffset b = myvlen b (6.4) όπου myvlen b το µήκος του διανύσµατος δηλαδή ο αριθµός κελιών του υποπεδίου b που υπολογίζει ο εκάστοτε επεξεργαστής, ενώ myoffset 1 = 0. Οπότε η ϑέση µνήµης του i,j,k του τυχαίου block b ϑα είναι : i=1 ijk b = (k 1) ni b nj b + (j 1) ni b + i + myoffset b (6.5)

86 66 Κεφάλαιο 6. ηµιουργία multi-block επιλυτή 6.3 2η µέθοδος Από το σύνολο των αρχικών m blocks δηµιουργούνται νέα µικρότερα m2 blocks και κατανέµονται στους διαθέσιµους επεξεργαστες κατά το σχήµα 6.7 Η δηµιουργία των νέων blocks γίνεται έτσι ώστε σε κάθε επεξεργαστή να αντιστοιχεί τουλάχιστον ένα νέο block. Σχήµα 6.7: Μονοδιάστατη αποσύνθεση πολλών πεδίων µε τη 2η µέθοδο Κάθε επεξεργαστής έχει στη µνήµη του και επιλύει τα νέα blocks που του αντιστοιχούν (myblocks). Ο ψευδοκώδικας επίλυσης για κάθε επεξεργαστή είναι : foreach i in myblocks solve newblock i end do ιαχείριση µνήµης Κάθε επεξεργαστής έχει αποθηκευµένα στη µνήµη του µόνο τα blocks τα οποία πρόκειται να επεξεργαστεί. Τα δεδοµένα αποθηκεύονται πάλι σε διανυσµατική µορφή σειριακά, το ένα µετά το άλλο, σύµφωνα µε το σχήµα 6.8, όπου my_n ο αριθµός των blocks του εκάστοτε επεξεργαστή που επιλύει. Προφανώς my_n = m2, όπου m2 ο συνολικός αριθµός των νέων blocks. Τα διανύσµατα που αντιστοιχούν δηλαδή σε κάθε block συνεννώνονται σε ένα συνολικό : Η ϑέση αποθήκευσης του κελιού i,j,k του block b είναι : ijk b = (k 1) ni b nj b + (j 1) ni b + i + myoffset(b) (6.6)

87 Εύρεση περιοχών επαφής µεταξύ υποπεδίων 67 Σχήµα 6.8: Τρόπος αποθήκευσης υποπεδίων κατά τη 2η µέθοδο όπου myoffset(b) η µετατόπιση όπως ακριβώς υπολογίζεται και κατά διαχείριση της µνήµης πριν τη διανοµή όπως περιγράφτηκε στην αρχή του κεφαλαίου, µε µόνη διαφορά ότι κάθε επεξεργαστής έχει τις δικές του τιµές του myoffset(b) αφού διαχειρίζεται διαφορετικό αριθµό και διαφορετικά blocks. Στο σχήµα 6.9 απεικονίζεται ένα παράδειγµα δισδιάστατης αποσύνθεσης δύο αρχικών blocks σε 7 και στη συνέχεια διανέµονται προς επίλυση σε 4 επεξεργαστές Εύρεση περιοχών επαφής µεταξύ υποπεδίων Μετά τη δηµιουργία των νέων blocks εφαρµόζεται ένας αλγόριθµος εύρεσης των πε- ϱιοχών επαφής τους, ώστε να αυτοµατοποιηθεί η διαδικασία της επικοινωνίας µεταξύ τους. Για κάθε block γίνεται έλεγχος σε όλες τις πλευρές µε τα υπόλοιπα blocks και αναγνωρίζονται ποιά κελιά έρχονται σε επαφή µεταξύ τους. Η διαδικασία αυτή είναι χρονοβόρα αν ο αριθµός των κελιών είναι µεγάλος. Επειδή δεν υπάρχει εξάρτηση δεδοµένων η διαδικασία µπορεί να εκτελεστεί παράλληλα, σε τόσους επεξεργαστές όσα είναι τα blocks. Από την ανάπτυξη αυτής της διαδικασίας προκύπτει ένα ακόµα όφελος. Ο αλγόριθµος µπορεί να εφαρµοστεί και σε blocks που προκύπτουν κατά την αποσύνθεση µε οποιοδήποτε άλλο λογισµικό. Μετά την εκτέλεση της διαδικασίας γράφονται σε ένα αρχείο µε την παρακάτω µορφή ο τρόπος µε τον οποίο επικοινωνούν τα blocks µεταξύ τους. Στο παράδειγµα δείχνεται το block 17 που επιλύεται στον ε- πεξεργαστή 16, και επικοινωνεί µέσω των µετώπων W,E,S,S µε τα blocks 15,17,4,5 αντίστοιχα. Τα start,end δείχνουν τους αριθµούς των κελιών όπου ξεκινά και σταµατά η επαφή.

88 68 Κεφάλαιο 6. ηµιουργία multi-block επιλυτή Σχήµα 6.9: ισδιάστατη αποσύνθεση πολύπλοκης γεωµετρίας και ανάθεση επίλυσης σε 4 επεξεργαστές block block2 block@cpu id F block2@cpu2 start end start end start2 end2 start2 end2 17@16 1 W 16@ @16 1 E 18@ @16 1 S 4@ @16 2 S 5@ Εν συνεχεία ο παράλληλος κώδικας τροφοδοτείται από αυτό το αρχείο ώστε να είναι σε ϑέση να συντονίσει την ορθή επικοινωνία µεταξύ των επεξεργαστών.

89 6.4. Επικοινωνία Επικοινωνία Η επικοινωνία ανάµεσα στους επεξεργαστές είναι πολυπλοκότερη σε σχέση µε την απλή περίπτωση παράλληλης επίλυσης ενός block. Στις περιπτώσεις µάλιστα αποσύνθεσης σε περισσότερες διευθύνσεις πέρα από την πολυπλοκότητα αυτή αναµένεται και επιπλέον καθυστέρηση λόγω της αυξηµένης επικοινωνίας που δηµιουργείται Επικοινωνία για δισδιάστατη αποσύνθεση Η επικοινωνία εδώ είναι πολυπλοκότερη, καθώς κάθε επεξεργαστής ενδέχεται να χρειαστεί να ανταλλάξει δεδοµένα µε περισσότερους από έναν επεξεργαστές και σε διαφορετικές διευθύνσεις όπως απεικονίζεται στο σχήµα Για τη γενική περίπτωση όπου απαιτείται επικοινωνία και στις τρείς διευθύνσεις γίνεται χρήση τριών διαφορετικών παραγόµενων τύπων δεδοµένων. Ενας τύπος για την επικοινωνία στα µέτωπα W,E, µια για S,N και µια για B,T. Για να εξασφαλιστεί η ορθή µεταφορά των δεδοµένων, χρησιµοποιείται κατά την κλήση των MPI_Send και MPI_Recv ένας αριθµός ταυτότητα (tag) για κάθε Ϲεύγος επικοινωνίας έτσι ώστε να µη σταλεί σε λάθος block η πληροφορία που του αντιστοιχεί. Κατά τον υπολογισµό δεύτερων παραγώγων προκύπτουν όροι που εξαρτώνται και από διαγώνια γειτονικά κελία. Ενδεικτικά αναφέρεται η παρακάτω σχέση υπολογισµού δεύτερης παραγώγου της ποσότητας u για τον όγκο ελέγχου i, j: ( 2 u x y ) i,j = 1 ( ui+1,j+1 u i+1,j 1 u ) i 1,j+1 u i 1,j 1 2 x 2 y 2 y (6.7) Ο υπολογισµός στον όγκο ελέγχου i, j, k απαιτεί γνώση της τιµής τους διαγώνιους όγκους (i + 1, j + 1, k), (i + 1, j 1, k), (i 1, j + 1, k), (i 1, j 1, k) συνεπώς στα όρια των υποπεριοχών ϑα πρέπει αυτή η πληροφορία να µεταφερθεί και να αποθηκευτεί στο κατάλληλο ghost cell, Η συνολική διαδικασία επικοινωνίας που πρέπει να λάβει χώρα σε µία γενική περίπτωση δισδιάστατης αποσύνθεσης απεικονίζεται στο σχήµα Επάνω ϕαίνεται το πλέγµα µιας τυχαίας γεωµετρίας χωρισµένη σε τρία blocks, δείχνοντας µόνο τα υπολογιστικά κελιά. Κάθε block επιλύεται από διαφορετικό επεξεργαστή. Κάτω απεικονίζονται τα τρία blocks ξεχωριστά µαζί µε τα ghost-cells (γραµµοσκιασµένα κελιά), η διαδικασία επικοινωνίας στα µέτωπα των blocks και η µεταφορά τιµών για τα διαγώνια κελιά.

90 70 Κεφάλαιο 6. ηµιουργία multi-block επιλυτή Σχήµα 6.10: Επικοινωνία για δισδιάστατη αποσύνθεση Τα blocks 1 και 2, ανταλλάσουν τιµές µεταξύ τους στα µέτωπα E,W αντίστοιχα κατά τη διεύθυνση i. Επιπλέον επικοινωνούν µερικώς µέσω των µετώπων S µε το block 3 στο µέτωπο Ν κατά τη διεύθυνση j, Απαιτείται επίσης και η µεταφορά των τιµών των δύο γκρί κελιών του block 3 στα ghost-cells των blocks 1 και 2 οπότε ολοκληρώνεται η σωστή ενηµέρωση των τιµών µεταξύ των blocks.

91 Κεφάλαιο 7 Συστοιχία Υπολογιστών Για τις ανάγκες της ανάπτυξης του παράλληλου κώδικα εγκαταστάθηκε µια συστοιχία υπολογιστών αποτελούµενη αρχικά από 8 υπολογιστικές µονάδες (4 dual-cpu) ενώ στη συνέχεια επεκτάθηκε αριθµώντας σήµερα 22 υπολογιστικές µονάδες. 7.1 Υλικό Η χρησιµοποιούµενη συστοιχία αποτελείται από : 1 Xserve G5 server 2 x 2.3Ghz 4 Xserve G5 nodes 2 x 2.0Ghz 6 Xserve G5 nodes 2 x 2.3Ghz 1 Gigabit managed switch 1 UPS σύµφωνα µε τη συνδεσµολογία που ϕαίνεται στο σχήµα 7.1(ϐ ) 7.2 Λογισµικό Το λειτουργικό σύστηµα που χρησιµοποιείται είναι το MacOS X ενώ για τη µεταγλώτισση του κώδικα χρησιµοποιείται ο XL Fortran Compiler της IBM. Για την επικοινωνία µεταξύ των κόµβων χρησιµοποιήθηκε το πρωτόκολο MPI και συγκεκριµένα η υλοποίηση LAM[65]. 71

92 72 Κεφάλαιο 7. Συστοιχία Υπολογιστών (α ) Φωτογραφία της συστοιχίας (ϐ ) Συνδεσµολογία της συστοιχίας Σχήµα 7.1: Συστοιχία υπολογιστών ΕΜΡΣ 7.3 Λειτουργία Οι 10 κόµβοι (nodes) δεν διαθέτουν σκληρό δίσκο και εκκινούν µέσω του δικτύου (netboot). Το λειτουργικό σύστηµα και τις απαραίτητες ϱυθµίσεις τα παρέχει ο server µέσω των πρωτοκόλλων NFS 1 και DHCP 2 αντίστοιχα. Ο server διαθέτει επίσης µονάδες αποθήκευσης που χρησιµοποιούνται από κοινού από όλους τους υπόλοιπους κόµβους επίσης µέσω του πρωτοκόλου NFS. Με τον τρόπο αυτό οποιαδήποτε αλλαγή στις ϱυθµίσεις ή εγκατάσταση κάποιου λογισµικού αρκεί να γίνει µία ϕορά στον server και όχι σε κάθε κόµβο ξεχωριστά. Αυτό διευκολύνει πολύ τη διαχείριση της συστοιχίας και παρέχει οµοιογένεια όσον αφορά τη λειτουργία της. Τέλος η διαχείριση των χρηστών και των κόµβων που συµµετέχουν στη συστοιχία γίνεται µέσα από την υπηρεσία καταλόγου LDAP 3. 1 Network File System 2 Dynamic Host Configuration Protocol 3 Lightweight Directory Access Protocol

93 7.4. Επικοινωνία Επικοινωνία Η επικοινωνία γίνεται µέσω ενός µεταγωγέα (Gigabit Switch) και επιλέχθηκε λόγω του χαµηλού κόστους. Ο δίαυλος Gigabit έχει µεγάλο χρόνο απόκρισης (latency) σε σχέση µε άλλα πχ Myrinet, Infiniband, οπότε έχει γίνει µέριµνα για αποφυγή της συχνής ανταλλαγής δεδοµένων καθώς και της ανταλλαγής µικρών µηνυµάτων. Σύγκριση επιδόσεων µεταξύ αυτών και άλλων διαύλων υπάρχει στη ϐιβλιογραφία [66]. Η όλη διάταξη ελέγχεται αποµακρυσµένα µέσω του τοπικού δικτύου χρησιµοποιώντας το πρωτόκολο SSH. Αξίζει να σηµειωθεί ότι η προσθήκη νέων κόµβων στη συστοιχία απαιτεί ελάχιστες ϱυθµίσεις στον server ενώ δεν απαιτεί καµία αλλαγή στον κώδικα που έχει αναπτυχθεί. Σε µεγάλα προβλήµατα ο όγκος των δεδοµένων που µεταφέρονται µέσω του switch είναι µεγάλος. Η αποστολή των δεδοµένων γίνεται σε «πακέτα» και όχι µε µιας. Το µέγιστο µέγεθος ενός πακέτου που µπορεί να µεταφερθεί (MTU - Maximum Transmission Unit) εξαρτάται από τις ϱυθµίσεις που έχουν γίνει στο switch και στο λειτουργικό σύστηµα. Τυπική τιµή που χρησιµοποιείται στη συντριπτική πλειοψηφία των υπολογιστών ενός τοπικού δικτύου είναι 1500bytes. Αν σταλεί ένα πακέτο µεγαλύτερο από το MTU τότε το πακέτο διασπάται πριν την αποστολή σε τµήµατα µικρότερα ή ίσα του MTU. Τα τµήµατα αυτά επανασυνδέονται πριν την λήψη και έτσι γίνεται επιτυχής µεταφορά ολόκληρου του πακέτου. Η διαδικασία αυτή εισάγει επιπλέον καθυστέ- ϱηση στη µεταφορά διότι για κάθε τµήµα προστίθεται ο χρόνος απόκρισης κατά τη µεταφορά του. Συνεπώς όταν ένα µεγάλο πακέτο διασπάται σε πολλά µικρά τµήµατα µειώνεται η ταχύτητα µεταφοράς του. Στον πίνακα 7.1 ϕαίνεται ότι η πλειοψηφία των πακέτων έχει σχετικά µεγάλο µεγεθος. Τυπικά αναφέρεται πως για ένα πλέγµα µε διαστάσεις 80x40x40 η µεταφορά 2 επιπέδων j-k απαιτεί bytes = bytes. Το MTU είναι ένα µέγεθος το οποίο µπορεί να µεταβληθεί ανάλογα µε τις ανάγκες και τη χρήση του τοπικού δικτύου. Η αλλαγή αυτή µπορεί να γίνει µόνο εφόσον το επιτρέπει το υλικό (κάρτα δικτύου και switch) και στα όρια που αυτό καθορίζει. Στη συγκεκριµένη συστοιχία υποστηρίζονται τιµές του MTU µέχρι και 9000 (Jumbo Frames). Η ϱύθµιση αυτή γίνεται τόσο στην πλευρά του switch όσο και στις κάρτες δικτύου όλων των κόµβων. Το κέρδος που παρατηρήθηκε από αυτή την αλλαγή (από 1500 σε 9000) ήταν της τάξης του 10%.

94 74 Κεφάλαιο 7. Συστοιχία Υπολογιστών Πίνακας 7.1: Αριθµός πακέτων Frames (bytes) count Εκτέλεση εργασιών Η εκτέλεση παράλληλου κώδικα γίνεται αποµακρυσµένα, κατόπιν συνδέσεως του χρήστη µε τον server µέσω του πρωτοκόλλου SSH. Πριν την εκτέλεση οποιουδήποτε παράλληλου κώδικα ϑα πρέπει να οριστούν οι επεξεργαστές που ϑα συµµετέχουν στην παράλληλη επίλυση. Ο ορισµός γίνεται µέσω της εντολής lamboot στην οποία δίνονται µέσω ενός αρχείου (έστω bhost) οι κόµβοι και οι αριθµοί επεξεργαστών που διαθέτουν. Η πρώτη στήλη είναι τα ονόµατα των υπολογιστών και ϑα πρέπει να αντιστοιχούν σε ένα IP µέσω του πρωτοκόλλου DNS 4 αλλιώς ϑα πρέπει να δωθούν οι διευθύνσεις IP. Στη 2η στήλη δίνονται ο αντίστοιχος αριθµός των επεξεργαστών. server node1 node2 node3 node4 node5 node6 node7 node8 node9 node10 cpu=2 cpu=2 cpu=2 cpu=2 cpu=2 cpu=2 cpu=2 cpu=2 cpu=2 cpu=2 cpu=2 Η αρχικοποίηση που απαιτείται πριν την διαδικασία παράλληλης εκτέλεσης γίνεται µε την εντολή : lamboot bhost 4 Domain Name System

95 7.5. Εκτέλεση εργασιών 75 Η παραπάνω αρχικοποίηση εκκινεί σε κάθε κόµβο διεργασίες της υπολοίησης LAM και χρησιµεύουν στο συντονισµό µεταξύ των κόµβων και των διεργασιών κάτι που γίνεται µέσω του πρωτοκόλου UDP 5. Η εκτέλεση των εργασιών γίνεται από τη γραµµή εντολών µε την εντολή mpirun: mpirun -v -np 22 -wd pwd -L program όπου program το εκτελέσιµο του παράλληλου κώδικα. Εναλλακτικά µπορεί να χρησιµοποιηθούν όλοι οι διαθέσιµοι επεξεργαστές που ορίζονται στο αρχείο bhost εκτελώντας απλώς : mpirun -v C -wd pwd -L program 5 User Datagram Protocol

96 76

97 Κεφάλαιο 8 Αποτελέσµατα Στο κεφάλαιο αυτό αξιολογείται η απόδοση του κώδικα, δηλαδή η επιτάχυνση που παρέχει και εξετάζεται η ικανότητα επίλυσης για διάφορους αριθµούς επεξεργαστών και η πιθανή διαφοροποίηση των λύσεων συναρτήσει των χρησιµοποιούµενων επεξεργαστών της συστοιχίας. 8.1 Απόδοση Η αξιολόγηση της απόδοσης έχει να κάνει άµεσα µε την επιτάχυνση speed-up που παρέχει ο παράλληλος κώδικας. Η επιτάχυνση αυτή ορίζεται συνήθως ως ο λόγος του χρόνου εκτέλεσης του σειριακού κώδικα (σε 1 επεξεργαστή) προς το χρόνο εκτέλεσης του παράλληλου κώδικα. Επίσης ορίζεται η απόδοτικότητα (efficiency) ως : S = T s T p (8.1) E = S n 100% (8.2) όπου n ο αριθµός των επεξεργαστών. Στην ιδανική περίπτωση ισχύει S = n, δηλαδή E = 100%. Θα πρέπει να τονιστεί ότι κατά την αποσύνθεση σε διάφορους αριθµούς υποπεδίων, η εξισορρόπηση δεν είναι ίδια, (πίνακας 8.1) οπότε η επιτάχυνση που µετράται περιλαµβάνει διαφορετικούς νεκρούς χρόνους ανάλογα µε τον χρησιµοποιούµενο α- ϱιθµό επεξεργαστών. Επίσης κατά την παράλληλη εκτέλεση σε µικρό αριθµό διεργασιών (1 ή 2) και σε περιπτώσεις πολύ πυκνών πλεγµάτων σε µεγάλα προβλήµατα στα οποία η χρησιµοποιούµενη µνήµη είναι µεγαλύτερη από τη διαθέσιµη, γίνεται 77

98 78 Κεφάλαιο 8. Αποτελέσµατα αναγκαστικά χρήση της εικονικής µνήµης (virtual memory) χρησιµοποιώντας χώρο στο σκληρό δίσκο. Το γεγονός αυτό επιβραδύνει πάρα πολύ τη διαδικασία επίλυσης καθώς ο χρόνος ανάγνωσης και εγγραφής της εικονικής µνήµης είναι πάρα πολύ µεγάλος, οπότε η ταχύτητα υπολογισµού δεν ανταποκρίνεται στην πραγµατικότητα. Επίσης ϑα πρέπει να τονιστεί ότι η σειριακή έκδοση του κώδικα δεν υφίσταται πλέον, και η εκτέλεση σε έναν επεξεργαστή γίνεται µέσω του παράλληλου κώδικα χρησιµοποιώντας έναν επεξεργαστή. Λόγω των επιπλέον ελέγχων που υπάρχουν στην κώδικα ο χρόνος επίλυσης είναι µεγαλύτερος από αυτόν του σειριακού επιλυτή, και για το λόγο αυτό αποφεύγεται η σύγκριση της ταχύτητας επίλυσης του παράλληλου κώδικα σε σχέση µε έναν επεξεργαστή Επίδραση της επιλογής των επεξεργαστών Η αρίθµηση των επεξεργαστών είναι σύµφωνα µε το σχήµα 8.1. Ο αριθµός των επεξεργαστών αυξάνεται προσθέτοντας επεξεργαστές «κάθετα», δηλαδή για 4 επεξεργαστές χρησιµοποιούνται οι 0,2,4,6 και όχι οι 0,1,2,3. Στην 1η περίπτωση η επιτάχυνση ήταν µέχρι και 15% µεγαλύτερη. Το ϕαινόµενο αυτό ακούγεται παράδοξο, καθότι στην 1η περίπτωση η επικοινωνία είναι πιό αργή αφού γίνεται εξ ολοκλήρου µέσω του τοπικού δικτύου, σε αντίθεση µε τη 2η περίπτωση που η ταχύτητα επικοινωνίας γίνεται µέσα από το πολύ γρηγορότερο memory bus. Αυτό µπορεί να εξηγηθεί µε το γεγονός ότι οι 2 επεξεργαστές στον ίδιο κόµβο µοιράζονται την ταχύτητα του κοινού διαύλου επικοινωνίας µε τη µνήµη. Η συµπεριφορά αυτή παρατηρήθηκε και στην περίπτωση εκτέλεσης δύο ίδιων διεργασιών στον ίδιο κόµβο. Εφόσον ο κόµβος έχει δύο επεξεργαστές ϑα έπρεπε ο χρόνος εκτέλεσης και των δύο διεργασιών να παραµείνει ίδιος (αφού κάθε επεξεργαστής αναλαµβάνει την εκτέλεση µιας διεργασίας). Ετσι παρατηρήθηκε µια µικρή αύξηση του χρόνου εκτέλεσης, κάτι που δε συµβαίνει σε συστήµατα που κάθε επεξεργαστής έχει δικό του δίαυλο επικοινωνίας µε τη µνήµη. 8.2 Επαλήθευση αποτελεσµάτων Για την επαλήθευση της ορθότητας του παράλληλου κώδικα έγινε σύγκριση των αποτελεσµάτων του µε πειραµατικές µετρήσεις από γνωστά test cases. [55, 67]. Επίσης εξετάζεται η διαφοροποίηση της λύσης µεταξύ των λύσεων σε διάφορους αριθµούς επεξεργαστών.

99 Ροή σε αγωγό µε εµπόδιο 79 Σχήµα 8.1: Αρίθµηση επεξεργαστών Ροή σε αγωγό µε εµπόδιο Ενα από τα πρώτα προβλήµατα που επιλύθηκαν παράλληλα ήταν η τρισδιάστατη ϱοή αέρα µέσα σε έναν αγωγό µέσα στον οποίο υπάρχει ένα εµπόδιο µε τη σχήµα ενός κύβου. Η γεωµετρία της διάταξης απεικονίζεται στο σχήµα 8.2. Η ταχύτητα εισόδου του αέρα είναι 26.57m/s. Για λόγους εξοικονόµησης µνήµης το πρόβληµα Σχήµα 8.2: Απεικόνιση διάταξης ϱοής γύρω από κύβο λύνεται χρησιµοποιώντας συνθήκη συµµετρίας στο µέτωπο Β (επίπεδο x-y) στο µέσο το κύβου, υπολογίζοντας ουσιαστικά το µισό πεδίο ϱοής. Η επίλυση έγινε για 1-22 επεξεργαστές αποσυνθέτοντας το χώρο στη διεύθυνση k, δίνοντας µέγιστη επιτάχυνση 19.3 ϕορές σε σχέση µε 1 για εκτέλεση σε 22 επεξεργαστές. Στην περίπτωση του πυκνού πλέγµατος και για 2 επεξεργαστές παρατηρήθηκε το παράδοξο γεγονός ότι η επιτάχυνση είναι µεγαλύτερη από τη ϑεωρητική. Η συµπε- ϱιφορά αυτή εξηγείται και οφείλεται στην καλύτερη χρήση της λανθάνουσας µνήµης cache που επιτυγχάνει ο µεταγλωτιστής για τις συγκεκριµένες διαστάσεις του προ- ϐλήµατος.

100 80 Κεφάλαιο 8. Αποτελέσµατα (α ) Επιτάχυνση για 3 διαφορετικά πλέγµατα (ϐ ) U (γ ) W (δ ) P (ε ) Πεδίο ταχυτήτων Σχήµα 8.3: Επιτάχυνση, ισοϋψείς ταχυτήτων U, W πίεσης Π και πεδίο ταχυτήτων

101 Ροή σε αγωγό µε εµπόδιο 81 (α ) Μπροστά (ϐ ) Επάνω στον κύβο (γ ) Πίσω από τον κύβο (δ ) Πίσω από τον κύβο Σχήµα 8.4: Ροϊκές γραµµές σε διάφορες ϑέσεις

102 82 Κεφάλαιο 8. Αποτελέσµατα Ροή σε ορθογωνικό αγωγό Το συγκεκριµένο πρόβληµα είναι τρισδιάστατη ϱοή σε ορθογωνικό αγωγό µε καµπυλότητα 90 o. Επιπλέον εφαρµόζεται οριακή συνθήκη συµµετρίας στο µέτωπο Τ (TOP). Η επίλυση έγινε χρησιµοποιώντας 16 επεξεργαστές και µονοδιάστατη αποσύνθεση στη διεύθυνση k. (α ) Γεωµετρία ορθογωνικού αγωγού (ϐ ) Γεωµετρία και αποσύνθεση (γ ) Λεπτοµέρεια πλέγµατος στην έξοδο Σχήµα 8.5: Γεωµετρία ορθογωνικού αγωγού

103 Ροή σε ορθογωνικό αγωγό 83 Σχήµα 8.6: Επιτάχυνση (α ) Ισοϋψείς ταχύτητας U στην είσοδο (ϐ ) Ισοϋψείς ταχύτητας V στην είσοδο (γ ) Ισοϋψείς ταχύτητας W στην είσοδο Σχήµα 8.7: Ισοϋψείς ταχυτήτων στην περιοχή εισόδου

104 84 Κεφάλαιο 8. Αποτελέσµατα (α ) U (ϐ ) U (γ ) V (δ ) V (ε ) W (ϝ ) W Σχήµα 8.8: Ισοϋψείς ταχυτήτων ακριβώς πριν (αριστερά) και µετά (δεξιά) τη γωνία

105 Ροή σε ορθογωνικό αγωγό 85 (α ) Πεδίο ταχυτήτων αµέσως µετά τη γωνία (ϐ ) Εµφάνιση ανακυκλοφορίας στις γωνίες στην έξοδο (γ ) Πεδίο ταχυτήτων στην έξοδο (δ ) Εµφάνιση ανακυκλοφορίας στις γωνίες στην έξοδο Σχήµα 8.9: Πεδία ταχυτήτων (αριστερά) και εµφάνιση δινών στις γωνίες

106 86 Κεφάλαιο 8. Αποτελέσµατα Ροή σε πειραµατική διάταξη T3L4 Στην πειραµατική διάταξη T3L4 η ταχύτητα εισόδου είναι 5m/s ενώ το ποσοστό τύρ- ϐης είναι 2,5%. Η περίπτωση αυτή επελέγη διότι παρουσιάζει καλύτερη ευστάθεια σε σχέση µε τις υπόλοιπες διατάξεις. Το πλέγµα που χρησιµοποιήθηκε έχει διαστάσεις 560x199 µε συνολικό αριθµό υπολογιστικών κελιών Στον πίνακα 8.1 ϕαίνεται η διανοµή των κελιών σε διάφορους αριθµούς επεξεργαστών. Πίνακας 8.1: Εξισορρόπηση για διάφορους αριθµούς χρησιµοποιούµενων επεξεργαστών Αριθµός Ταυτότητα Ιδανικός Ανατιθέµενος Απόκλιση επεξεργαστών επεξεργαστή αριθµός κελιών αριθµός κελιών % 2 0, , , , , , , Στα σχήµατα που ακολουθούν παρουσιάζονται ισοϋψείς ταχυτήτων και πίεσης, καθώς και διανυσµατική απεικόνιση ταχυτήτων και ϱοϊκές γραµµές του πεδίου. Στις ισοϋψείς διακρίνεται η οµοιότητα των λύσεων όπως και η αναµενόµενη συνέχεια στα σηµεία τοµής - σύνορα των υποπεδίων επίλυσης. Κατά την αποσύνθεση της αρχικής γεωµετρίας ϕαίνεται πως δεν υπάρχει ισοκατανοµή στο χώρο. Αυτό οφείλεται στο γεγονός ότι η αποσύνθεση γίνεται ϐάσει του κανονικοποιηµένου χώρου και γίνεται εξισορρόπηση ϐάσει αριθµού κελιών, οπότε προκύπτουν µικρότερες περιοχές όπου το πλέγµα είναι πυκνότερο (σχήµατα 8.13(α ) (ε )).

107 Ροή σε πειραµατική διάταξη T3L4 87 (α ) Σύνορα υποπεδίων επίλυσης στην περιοχή α- (ϐ ) Αποτυχία σύγκλισης για εκτέλεση σε 14 επεξεργαστές για u=5m/s νακυκλοφορίας Σχήµα 8.10: Περιοχή ανακυκλοφορίας και διάγραµµα σύγκλισης για 15 επεξεργαστές Για την ταχύτητα εισόδου που επελέγη (5m/s) παρατηρήθηκε αδυναµία σύγκλισης του κώδικα κατά την εκτέλεση σε 14 και 15 επεξεργαστές. Η αδυναµία αυτή εξηγείται από τη συσσώρευση αριθµητικού σφάλµατος στην περιοχή της ανακυκλο- ϕορίας που δηµιουργείται, όπου συνορεύουν δύο υποπεδία όπως ϕαίνεται στο σχηµα 8.10(α ). Στην περιοχή αυτή δηµιουργούνται έντονες κλίσεις των ταχυτήτων, οι τιµές που γνωρίζει ο ένας επεξεργαστής από τον γειτονικό του ανήκουν στην προηγούµενη επανάληψη και έτσι η υστέρηση αυτή οδηγεί σε καθυστέρηση της σύγκλισης. Το πρόβληµα αυτό ξεπεράστηκε συνδιάζοντας δύο παραµέτρους του επιλυτή, την αύξηση των εσωτερικών επαναλήψεων του αλγορίθµου SIP για την επίλυση της διόρθωσης πίεσης στην οποία παρουσιάστηκε το πρόβληµα και την αύξηση της σταθεράς a. Ο πρώτος χειρισµός οδηγεί σε καλύτερη ακρίβεια της επίλυσης ενώ η αύξηση της στα- ϑεράς a σηµαίνει συµµετοχή περισσότερων όρων του αναπτύγµατος taylor κάτι που επιταχύνει τη σύγκλιση. Η επιλογή του αριθµού επεξεργαστών για την επίλυση του προβλήµατος ϕαίνεται να επηρεάζει και τον αριθµό των επαναλήψεων που απαιτούνται για τη σύγκλιση της επαναληπτικής διαδικασίας (σχήµα 8.12). Συγκεκριµένα οι επαναλήψεις αυτές αυξάνονται µε την αυξηση των επεξεργαστών. Οσοι περισσότεροι επεξεργαστές χρησι- µοποιούνται για την επίλυση τόσο αυξάνεται και η συνολική απαιτούµενη επικοινωνία µεταξύ τους. Ετσι το αθροιστικό σφάλµα που υφίσταται στα όρια των υποπεδίων είναι µεγαλύτερο γενογός που καθυστερεί τη σύγκλιση. Ενδέχεται λοιπόν κατά την επίλυση ο χρόνος εκτέλεσης ανά επανάληψη να είναι µικρότερος για ένα δεδοµένο αριθµό

108 88 Κεφάλαιο 8. Αποτελέσµατα επεξεργαστών, αλλά ο συνολικός χρόνος επίλυσης να είναι µεγαλύτερος από το χρόνο που χρειάζονται λιγότεροι επεξεργαστές σε λιγότερες όµως επαναλήψεις. Σχήµα 8.11: Χρόνος επίλυσης και επιτάχυνση συναρτήσει των χρησιµοποιούµενων επεξεργαστών Σχήµα 8.12: Αριθµός επαναλήψεων συναρτήσει των χρησιµοποιούµενων επεξεργαστών

109 Ροή σε πειραµατική διάταξη T3L4 89 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU (ϝ ) 12 CPU Σχήµα 8.13: Γεωµετρία και αποσύνθεση σε 2-16 επεξεργαστές

110 90 Κεφάλαιο 8. Αποτελέσµατα (α ) 14 CPU (ϐ ) 16 CPU (γ ) 18 CPU (δ ) 20 CPU (ε ) 22 CPU Σχήµα 8.14: Γεωµετρία και αποσύνθεση σε επεξεργαστές

111 Ροή σε πειραµατική διάταξη T3L4 91 (α ) 1 CPU (ϐ ) 2 CPU (γ ) 4 CPU (δ ) 6 CPU (ε ) 8 CPU (ϝ ) 10 CPU (Ϲ ) 12 CPU (η ) 14 CPU Σχήµα 8.15: ιαγράµµατα σύγκλισης για εκτέλεση σε 1-14 επεξεργαστές

112 92 Κεφάλαιο 8. Αποτελέσµατα (α ) 16 CPU (ϐ ) 18 CPU (γ ) 20 CPU (δ ) 22 CPU Σχήµα 8.16: ιαγράµµατα σύγκλισης για εκτέλεση σε επεξεργαστές

113 Ροή σε πειραµατική διάταξη T3L4 93 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU Σχήµα 8.17: Ισοϋψείς ταχύτητας U για εκτέλεση σε 2-10 επεξεργαστές

114 94 Κεφάλαιο 8. Αποτελέσµατα (α ) 12 CPU (ϐ ) 14 CPU (γ ) 16 CPU (δ ) 18 CPU (ε ) 20 CPU (ϝ ) 22 CPU Σχήµα 8.18: Ισοϋψείς ταχύτητας U για εκτέλεση σε επεξεργαστές

115 Ροή σε πειραµατική διάταξη T3L4 95 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU Σχήµα 8.19: Ισοϋψείς ταχύτητας V για εκτέλεση σε 2-10 επεξεργαστές

116 96 Κεφάλαιο 8. Αποτελέσµατα (α ) 12 CPU (ϐ ) 14 CPU (γ ) 16 CPU (δ ) 18 CPU (ε ) 20 CPU (ϝ ) 22 CPU Σχήµα 8.20: Ισοϋψείς ταχύτητας V για εκτέλεση σε επεξεργαστές

117 Ροή σε πειραµατική διάταξη T3L4 97 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU Σχήµα 8.21: Ισοϋψείς πίεσης P για εκτέλεση σε 2-10 επεξεργαστές

118 98 Κεφάλαιο 8. Αποτελέσµατα (α ) 12 CPU (ϐ ) 14 CPU (γ ) 16 CPU (δ ) 18 CPU (ε ) 20 CPU (ϝ ) 22 CPU Σχήµα 8.22: Ισοϋψείς πίεσης P για εκτέλεση σε επεξεργαστές

119 Ροή σε πειραµατική διάταξη T3L4 99 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU Σχήµα 8.23: Πεδίο ταχυτήτων για εκτέλεση σε 2-10 επεξεργαστές

120 100 Κεφάλαιο 8. Αποτελέσµατα (α ) 12 CPU (ϐ ) 14 CPU (γ ) 16 CPU (δ ) 18 CPU (ε ) 20 CPU (ϝ ) 22 CPU Σχήµα 8.24: Πεδίο ταχυτήτων για εκτέλεση σε επεξεργαστές

121 Ροή σε πειραµατική διάταξη T3L4 101 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU (ϝ ) 12 CPU Σχήµα 8.25: Ροϊκές γραµµές για εκτέλεση σε 2-12 επεξεργαστές

122 102 Κεφάλαιο 8. Αποτελέσµατα (α ) 14 CPU (ϐ ) 16 CPU (γ ) 18 CPU (δ ) 20 CPU (ε ) 22 CPU Σχήµα 8.26: Ροϊκές γραµµές για εκτέλεση σε επεξεργαστές

123 Ροή σε πειραµατική διάταξη T3L4 103 Στο σχήµα 8.27 παρατίθενται συγκριτικά διαγράµµατα της ταχύτητας U σε σχέση µε πειραµατικές µετρήσεις σε 8 ϑέσεις, στα οποία διακρίνεται η άριστη συµπεριφορά του κώδικα, υπολογίζοντας µε πάρα πολύ καλή ακρίβεια την πραγµατική ϱοή. (α ) x=6mm (ϐ ) x=8mm (γ ) x=10mm (δ ) x=11mm (ε ) x=13mm (ϝ ) x=15mm (Ϲ ) x=17mm (η ) x=19mm Σχήµα 8.27: Σύγκριση αποτελεσµάτων µε πειραµατικές µετρήσεις στη διάταξη T3L4

124 104 Κεφάλαιο 8. Αποτελέσµατα Ροή σε πειραµατική διάταξη T3L6 Στην πειραµατική διάταξη T3L6 η ταχύτητα εισόδου είναι 10m/s ενώ το ποσοστό τύρβης είναι 2,5%. Σε αυτή την περίπτωση η περιοχή ανακυκλοφορίας είναι µικρότερη, ενώ δεν υφίσταται πλέον το πρόβληµα εκτέλεσης σε 14 και 15 επεξεργαστές. Αυτό οφείλεται στον περιορισµό των διαστάσεων της ανακυκλοφορίας µε συνέπεια τη µικρότερη συσσώρευση σφάλµατος. Σχήµα 8.28: Χρόνος επίλυσης και επιτάχυνση συναρτήσει των χρησιµοποιούµενων επεξεργαστών Σχήµα 8.29: Αριθµός επαναλήψεων συναρτήσει των χρησιµοποιούµενων επεξεργαστών

125 Ροή σε πειραµατική διάταξη T3L6 105 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU (ϝ ) 12 CPU Σχήµα 8.30: ιαγράµµατα σύγκλισης για εκτέλεση σε 2-12 επεξεργαστές

126 106 Κεφάλαιο 8. Αποτελέσµατα (α ) 14 CPU (ϐ ) 16 CPU (γ ) 18 CPU (δ ) 20 CPU (ε ) 22 CPU Σχήµα 8.31: ιαγράµµατα σύγκλισης για εκτέλεση σε επεξεργαστές

127 Ροή σε πειραµατική διάταξη T3L6 107 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU (ϝ ) 12 CPU Σχήµα 8.32: Ισοϋψείς ταχύτητας U για εκτέλεση σε 2-12 επεξεργαστές

128 108 Κεφάλαιο 8. Αποτελέσµατα (α ) 14 CPU (ϐ ) 16 CPU (γ ) 18 CPU (δ ) 20 CPU (ε ) 22 CPU Σχήµα 8.33: Ισοϋψείς ταχύτητας U για εκτέλεση σε επεξεργαστές

129 Ροή σε πειραµατική διάταξη T3L6 109 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU (ϝ ) 12 CPU Σχήµα 8.34: Ισοϋψείς ταχύτητας V για εκτέλεση σε 1-12 επεξεργαστές

130 110 Κεφάλαιο 8. Αποτελέσµατα (α ) 14 CPU (ϐ ) 16 CPU (γ ) 18 CPU (δ ) 20 CPU (ε ) 22 CPU Σχήµα 8.35: Ισοϋψείς ταχύτητας V για εκτέλεση σε επεξεργαστές

131 Ροή σε πειραµατική διάταξη T3L6 111 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU (ϝ ) 12 CPU Σχήµα 8.36: Ισοϋψείς πίεσης P για εκτέλεση σε 1-12 επεξεργαστές

132 112 Κεφάλαιο 8. Αποτελέσµατα (α ) 14 CPU (ϐ ) 16 CPU (γ ) 18 CPU (δ ) 20 CPU (ε ) 22 CPU Σχήµα 8.37: Ισοϋψείς πίεσης P για εκτέλεση σε επεξεργαστές

133 Ροή σε πειραµατική διάταξη T3L6 113 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU (ϝ ) 12 CPU Σχήµα 8.38: Πεδίο ταχυτήτων για εκτέλεση σε 2-12 επεξεργαστές

134 114 Κεφάλαιο 8. Αποτελέσµατα (α ) 14 CPU (ϐ ) 16 CPU (γ ) 18 CPU (δ ) 20 CPU (ε ) 22 CPU Σχήµα 8.39: Πεδίο ταχυτήτων για εκτέλεση σε επεξεργαστές

135 Ροή σε πειραµατική διάταξη T3L6 115 (α ) 2 CPU (ϐ ) 4 CPU (γ ) 6 CPU (δ ) 8 CPU (ε ) 10 CPU (ϝ ) 12 CPU Σχήµα 8.40: Ροϊκές γραµµές για εκτέλεση σε 2-12 επεξεργαστές

136 116 Κεφάλαιο 8. Αποτελέσµατα (α ) 14 CPU (ϐ ) 16 CPU (γ ) 18 CPU (δ ) 20 CPU (ε ) 22 CPU Σχήµα 8.41: Ροϊκές γραµµές για εκτέλεση σε επεξεργαστές

137 Ροή σε πειραµατική διάταξη T3L6 117 Στο σχήµα 8.42 παρατίθενται συγκριτικά διαγράµµατα της ταχύτητας U σε σχέση µε πειραµατικές µετρήσεις σε 8 ϑέσεις, στα οποία διακρίνεται η άριστη συµπεριφορά του κώδικα, υπολογίζοντας µε πάρα πολύ καλή ακρίβεια την πραγµατική ϱοή. (α ) x=6mm (ϐ ) x=7mm (γ ) x=8mm (δ ) x=14mm (ε ) x=15mm (ϝ ) x=16mm (Ϲ ) x=20mm (η ) x=23mm Σχήµα 8.42: Σύγκριση αποτελεσµάτων µε πειραµατικές µετρήσεις στη διάταξη T3L6

138 118 Κεφάλαιο 8. Αποτελέσµατα Ροή σε εναλλάκτη Η διάταξη αποτελείται από σειρές σωλήνων ελειπτικού σχήµατος, κάθετα στους ο- ποίους ϱέει αέρας µε ταχύτητα 7m/s. Λόγω της περιοδικότητας της γεωµετρίας η επίλυση γίνεται σε τµήµα αυτής για να εξοικονοµηθεί µνήµη και εφαρµόζονται εκατέρωθεν οριακές συνθήκες περιοδικότητας, δηλαδή στα µέτωπα B-T. Στα µέτωπα S-N εφαρµόζεται συνθήκη συµµετρίας. Η διακριτοποίηση του χώρου γίνεται µε τη χρήση δύο δοµηµένων πλεγµάτων για να εξασφαλιστεί η καλή ποιότητα του πλέγµατος. Η γεωµετρία της διάταξης ϕαίνεται στο σχήµα Σχήµα 8.43: Γεωµετρία προβλήµατος Η επίλυση του προβλήµατος έγινε και µε τις 2 µεθόδους αποσύνθεσης. Η γεω- µετρία περιγράφεται από 2 blocks ενώ τα πλέγµατα που χρησιµοποιήθηκαν έχουν διαστάσεις 1144 x 3 x 88 µε συνολικό αριθµό κελιών Σχήµα 8.44: Γεωµετρία και ισοµερής δισδιάστατη αποσύνθεση σε 22 επεξεργαστές Σχήµα 8.45: Γεωµετρία και εξισορροπηµένη δισδιάστατη αποσύνθεση σε 22 επεξεργαστές Στην 1η περίπτωση αποσύνθεσης κατά k ο όγκος δεδοµένων που ανταλλάσουν οι επεξεργαστές είναι αυξηµένος διότι µεταφέρονται επίπεδα i j και συγκεκριµένα 2 ni nj ncpu = = κελιά συνολικά.

139 Ροή σε εναλλάκτη 119 Στην αποσύνθεση κατά i η επικοινωνία µειώνεται πάρα πολύ καθότι ανταλλάσσονται επίπεδα j k δηλαδή = κελιά. Κατά την επίλυση µε τη 2η µέθοδο παρατηρήθηκε επιτάχυνση της τάξης του 250% σε σχέση µε την επίλυση µε την 1η µέθοδο και οφείλεται καθαρά στον περιορισµό του όγκου δεδοµένων που ανταλλάσσονται. Στο σχήµα 8.46 απεικονίζονται οι ισοϋψείς της ταχύτητας U σε τρία διαφορετικά σηµεία της διάταξης. Στο σχήµα αυτό ϕαίνεται µόνο το προς επίλυση πεδίο. Στα σχήµατα που ακολουθούν απεικονίζονται ισοϋψείς ταχυτήτων και διανυσµατική απεικόνιση του πεδίου ϱοής δείχνοντας εκατέρωθεν την περιοδικότητα όπου διακρίνεται η αναµενόµενη συνέχεια τόσο στα όρια των υποπεδίων όσο και στα όρια όπου εφαρµόζονται οι συνθήκες περιοδικότητας.

140 120 Κεφάλαιο 8. Αποτελέσµατα (α ) Είσοδος (ϐ ) Είσοδος (γ ) Μέση (δ ) Πίσω από ένα σωλήνα (ε ) Εξοδος (ϝ ) Μέση Σχήµα 8.46: Ισοϋψείς ταχύτητας U (αριστερά) και πεδίο ταχυτήτων (δεξιά)

141 Ροή σε εναλλάκτη 121 (α ) Είσοδος (ϐ ) Είσοδος (γ ) Μέση (δ ) Μέση (ε ) Εξοδος (ϝ ) Εξοδος Σχήµα 8.47: Ισοϋψείς ταχύτητας U (αριστερά) και W (δεξιά)

142 122 Κεφάλαιο 8. Αποτελέσµατα (α ) Είσοδος (ϐ ) Μέση (γ ) Πίσω από ένα σωλήνα (δ ) Πίσω από τον τελευταίο σωλήνα Σχήµα 8.48: Ροϊκές γραµµές σε διάφορες ϑέσεις

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008 Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008 Αντικείµενο της εργαστηριακής άσκησης για το 2008 αποτελεί το πρόβληµα της εύρεσης της κατανοµής ϑερµότητας ενός αντικειµένου σε σταθερή

Διαβάστε περισσότερα

προβλήµατα ανάλυσης ροής

προβλήµατα ανάλυσης ροής προβλήµατα ανάλυσης ροής ΕΚ ΟΣΗ Νοέµβριος 2006 Σελίδα 1 ΡΕΥΣΤΟΜΗΧΑΝΙΚΗ ΑΝΑΛΥΣΗ ΣΥΝ ΥΑΣΜΕΝΑ ΠΡΟΒΛΗΜΑΤΑ ΡΕΥΣΤΟΜΗΧΑΝΙΚΗΣ ΑΝΑΛΥΣΗΣ ΑΝΑΛΥΣΗΣ ΑΝΤΟΧΗΣ Ενσωµατώνεται το εξελιγµένο πρόγραµµα ανάλυσης προβληµάτων

Διαβάστε περισσότερα

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

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 ΓΛΩΣΣΑΡΙ Αµοιβαίος αποκλεισµός (mutual exclusion) Στο µοντέλο κοινού χώρου διευθύνσεων, ο αµοιβαίος αποκλεισµός είναι ο περιορισµός του αριθµού των διεργασιών

Διαβάστε περισσότερα

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

Διαβάστε περισσότερα

ΑΕΠΠ Ερωτήσεις θεωρίας

ΑΕΠΠ Ερωτήσεις θεωρίας ΑΕΠΠ Ερωτήσεις θεωρίας Κεφάλαιο 1 1. Τα δεδομένα μπορούν να παρέχουν πληροφορίες όταν υποβάλλονται σε 2. Το πρόβλημα μεγιστοποίησης των κερδών μιας επιχείρησης είναι πρόβλημα 3. Για την επίλυση ενός προβλήματος

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 3: Περιγραφή αριθμητικών μεθόδων (συνέχεια)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 3: Περιγραφή αριθμητικών μεθόδων (συνέχεια) ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ Διάλεξη 3: Περιγραφή αριθμητικών μεθόδων (συνέχεια) Χειμερινό εξάμηνο 2008 Προηγούμενη παρουσίαση... Εξετάσαμε

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 2: Περιγραφή αριθμητικών μεθόδων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ. Διάλεξη 2: Περιγραφή αριθμητικών μεθόδων ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΙΚΗΣ ΤΕΧΝΙΚΗΣ Διάλεξη : Περιγραφή αριθμητικών μεθόδων Χειμερινό εξάμηνο 008 Προηγούμενη παρουσίαση... Γράψαμε τις εξισώσεις

Διαβάστε περισσότερα

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

ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή ΕΝΟΤΗΤΑ 2 η ΙΑΧΕΙΡΙΣΗ ΡΟΗΣ ΕΡΓΑΣΙΑΣ (WORKFLOW MANAGEMENT) 2.1 Εισαγωγή Οι σηµερινές δραστηριότητες των επιχειρήσεων δηµιουργούν την ανάγκη για όσο το δυνατό µεγαλύτερη υποστήριξη από τα πληροφοριακά τους

Διαβάστε περισσότερα

«ΜΕΛΕΤΗ ΙΑΤΑΞΕΩΝ ΦΩΤΟΝΙΚΩΝ ΚΡΥΣΤΑΛΛΩΝ ΓΙΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΕΣ ΕΦΑΡΜΟΓΕΣ»

«ΜΕΛΕΤΗ ΙΑΤΑΞΕΩΝ ΦΩΤΟΝΙΚΩΝ ΚΡΥΣΤΑΛΛΩΝ ΓΙΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΕΣ ΕΦΑΡΜΟΓΕΣ» ΠΡΟΣΚΛΗΣΗ ΕΝ ΙΑΦΕΡΟΝΤΟΣ ΓΙΑ ΕΚΠΟΝΗΣΗ Ι ΑΚΤΟΡΙΚΗΣ ΙΑΤΡΙΒΗΣ «ΜΕΛΕΤΗ ΙΑΤΑΞΕΩΝ ΦΩΤΟΝΙΚΩΝ ΚΡΥΣΤΑΛΛΩΝ ΓΙΑ ΤΗΛΕΠΙΚΟΙΝΩΝΙΑΚΕΣ ΕΦΑΡΜΟΓΕΣ» Υπεύθυνος Καθηγητής: κ. Θωµάς Σφηκόπουλος Υπεύθυνος Επιστηµονικός Συνεργάτες:

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

Διαβάστε περισσότερα

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

Διαβάστε περισσότερα

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα.

Πιο συγκεκριμένα, η χρήση του MATLAB προσφέρει τα ακόλουθα πλεονεκτήματα. i Π Ρ Ο Λ Ο Γ Ο Σ Το βιβλίο αυτό αποτελεί μια εισαγωγή στα βασικά προβλήματα των αριθμητικών μεθόδων της υπολογιστικής γραμμικής άλγεβρας (computational linear algebra) και της αριθμητικής ανάλυσης (numerical

Διαβάστε περισσότερα

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

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Εαρινό Εξάμηνο 2013/14 Κεφάλαιο 3: Θεωρία Παράλληλου Προγραμματισμού

Διαβάστε περισσότερα

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

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

Διαβάστε περισσότερα

WIRELESS SENSOR NETWORKS (WSN)

WIRELESS SENSOR NETWORKS (WSN) WIRELESS SENSOR NETWORKS (WSN) Δρ. Ιωάννης Παναγόπουλος Εργαστήριο Υπολογιστικών Συστημάτων Καθ. Γεώργιος Παπακωνσταντίνου Αθήνα 2008 ΕΙΣΑΓΩΓΗ ΣΤΑ WSN Σε συγκεκριμένες εφαρμογές, επιθυμείται η μέτρηση

Διαβάστε περισσότερα

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος Ενότητα 1 - Εισαγωγή Ευστράτιος Γαλλόπουλος c Ε. Γαλλόπουλος 201-2015 Ασκηση 1 Τι ονοµάζουµε υπολογιστικούς πυρήνες ; πυρήνων. Να δώσετε 3 παραδείγµατα τέτοιων Απάντηση ιαδικασίες (που µπορεί να είναι

Διαβάστε περισσότερα

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

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

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853

Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853 Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853 Θέμα Παράλληλη Αριθμητική Επίλυση Μερικών Διαφορικών Εξισώσεων με τις μεθόδους Jacob και Jacob over

Διαβάστε περισσότερα

ΠΟΩΤΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΔΤΝΑΜΙΚΗΣ ΜΗΧΑΝΩΝ

ΠΟΩΤΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΔΤΝΑΜΙΚΗΣ ΜΗΧΑΝΩΝ ΡΙΣΤΟΤΕΩΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΟΕΣΣΑΩΟΝΙΚΗΣ ΠΟΩΤΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΤΑΣΚΕΤΑΣΤΙΚΟΣ ΤΟΜΕΑΣ ΕΡΓΑΣΤΗΡΙΟ ΔΤΝΑΜΙΚΗΣ ΜΗΧΑΝΩΝ Γεωργία N. Γεωργίου Διπλ. Μηχανολόγος Μηχανικός A.Π.O. ΙΖΡΟΣΔΙΟΡΙΣΜΟΣ

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ

ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗ ΥΔΑΤΙΚΩΝ ΠΟΡΩΝ Συνδυασμένη χρήση μοντέλων προσομοίωσης βελτιστοποίησης. Η μέθοδος του μητρώου μοναδιαίας απόκρισης Νικόλαος

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ

ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ ΕΝΟΤΗΤΑ III ΒΑΣΙΚΕΣ ΜΕΘΟ ΟΙ ΑΝΑΛΥΣΗΣ Βασικός τελικός στόχος κάθε επιστηµονικής τεχνολογικής εφαρµογής είναι: H γενική βελτίωση της ποιότητας του περιβάλλοντος Η βελτίωση της ποιότητας ζωής Τα µέσα µε τα

Διαβάστε περισσότερα

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

Διαβάστε περισσότερα

Υπολογιστικές Μέθοδοι Ανάλυσης και Σχεδιασµού Υπολογιστικό Εργαστήριο Μάθηµα 1 Εισαγωγή στο MPI http://ecourses.chemeng.ntua.gr/courses/computational_methods Αρχιτεκτονικές Παράλληλων Υπολογιστών Shared

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΝΧΕΙΟ Σχολή Μηχανολόγων Μηχανικών Τομέας Ρευστών Εργαστήριο Θερμικών Στροβιλομηχανών. Διδακτορική Διατριβή

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΝΧΕΙΟ Σχολή Μηχανολόγων Μηχανικών Τομέας Ρευστών Εργαστήριο Θερμικών Στροβιλομηχανών. Διδακτορική Διατριβή ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΝΧΕΙΟ Σχολή Μηχανολόγων Μηχανικών Τομέας Ρευστών Εργαστήριο Θερμικών Στροβιλομηχανών Διδακτορική Διατριβή ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΠΡΟΒΛΗΜΑΤΩΝ ΑΕΡΟΔΥΝΑΜΙΚΗΣ- ΑΕΡΟΕΛΑΣΤΙΚΟΤΗΤΑΣ ΣΕ ΕΠΕΞΕΡΓΑΣΤΕΣ

Διαβάστε περισσότερα

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων.

Στο στάδιο ανάλυσης των αποτελεσµάτων: ανάλυση ευαισθησίας της λύσης, προσδιορισµός της σύγκρουσης των κριτηρίων. ΠΕΡΙΛΗΨΗ Η τεχνική αυτή έκθεση περιλαµβάνει αναλυτική περιγραφή των εναλλακτικών µεθόδων πολυκριτηριακής ανάλυσης που εξετάσθηκαν µε στόχο να επιλεγεί η µέθοδος εκείνη η οποία είναι η πιο κατάλληλη για

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής

Διαβάστε περισσότερα

οµηµένος Εξελικτικός Αλγόριθµος

οµηµένος Εξελικτικός Αλγόριθµος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΕΡΓΑΣΤΗΡΙΟ ΘΕΡΜΙΚΩΝ ΣΤΡΟΒΙΛΟΜΗΧΑΝΩΝ ιπλωµατική Εργασία: οµηµένος Εξελικτικός Αλγόριθµος του Ιωάννη Μ. Κλωνάρη Επιβλέπων: Κυριάκος Χ. Γιαννάκογλου

Διαβάστε περισσότερα

Τα κύρια σηµεία της παρούσας διδακτορικής διατριβής είναι: Η πειραµατική µελέτη της µεταβατικής συµπεριφοράς συστηµάτων γείωσης

Τα κύρια σηµεία της παρούσας διδακτορικής διατριβής είναι: Η πειραµατική µελέτη της µεταβατικής συµπεριφοράς συστηµάτων γείωσης Κεφάλαιο 5 ΣΥΜΠΕΡΑΣΜΑΤΑ Το σηµαντικό στην επιστήµη δεν είναι να βρίσκεις καινούρια στοιχεία, αλλά να ανακαλύπτεις νέους τρόπους σκέψης γι' αυτά. Sir William Henry Bragg 5.1 Ανακεφαλαίωση της διατριβής

Διαβάστε περισσότερα

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής

Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2. Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Ερωτήσεις πολλαπλής επιλογής - Κεφάλαιο 2 Α1. Ο αλγόριθμος είναι απαραίτητος μόνο για την επίλυση προβλημάτων πληροφορικής Α2. Ο αλγόριθμος αποτελείται από ένα πεπερασμένο σύνολο εντολών Α3. Ο αλγόριθμος

Διαβάστε περισσότερα

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

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 9 1. Εισαγωγή... 13 1.1 Οι Μεγάλες Σύγχρονες Επιστημονικές Προκλήσεις... 13 1.2 Εξέλιξη της Παράλληλης Επεξεργασίας Δεδομένων... 14 1.3 Οι Έννοιες της Σωλήνωσης, του Παραλληλισμού

Διαβάστε περισσότερα

Περίληψη. Υπερυπολογιστές. Υπολογιστικά προβλήµατα. TOP 500 (Ιούνιος 2007) TOP 500 (Ιούνιος 2009) Ε-85: Ειδικά Θέµατα Λογισµικού

Περίληψη. Υπερυπολογιστές. Υπολογιστικά προβλήµατα. TOP 500 (Ιούνιος 2007) TOP 500 (Ιούνιος 2009) Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Υπολογιστικά Συστήµατα Υψηλών Επιδόσεων και Εφαρµογές» Περίληψη Υπερυπολογιστές Πολυεπεξεργαστικά συστήµατα

Διαβάστε περισσότερα

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

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕΤΡΑ ΑΠΟΔΟΣΗΣ ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΨΗΛΩΝ ΕΠΙΔΟΣΕΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΨΗΛΩΝ ΕΠΙΔΟΣΕΩΝ Η

Διαβάστε περισσότερα

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ Εντολές επανάληψης Κεφάλαια 02-08 οµές Επανάληψης Επιτρέπουν την εκτέλεση εντολών περισσότερες από µία φορά Οι επαναλήψεις ελέγχονται πάντοτε από κάποια συνθήκη η οποία καθορίζει την έξοδο από το βρόχο

Διαβάστε περισσότερα

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

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Γλώσσες Περιγραφής Μοντέλα Ένα µοντέλο ενός κυκλώµατος είναι µία αναπαράσταση που παρουσιάζει χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες. Τα τυπικά µοντέλα έχουν καλά ορισµένη σύνταξη. Τα αυτόµατα

Διαβάστε περισσότερα

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας

Γουλή Ευαγγελία. 1. Εισαγωγή. 2. Παρουσίαση και Σχολιασµός των Εργασιών της Συνεδρίας 1. Εισαγωγή Σχολιασµός των εργασιών της 16 ης παράλληλης συνεδρίας µε θέµα «Σχεδίαση Περιβαλλόντων για ιδασκαλία Προγραµµατισµού» που πραγµατοποιήθηκε στο πλαίσιο του 4 ου Πανελλήνιου Συνεδρίου «ιδακτική

Διαβάστε περισσότερα

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

Διαβάστε περισσότερα

Κεφάλαιο 6. Εισαγωγή στη µέθοδο πεπερασµένων όγκων επίλυση ελλειπτικών και παραβολικών διαφορικών εξισώσεων

Κεφάλαιο 6. Εισαγωγή στη µέθοδο πεπερασµένων όγκων επίλυση ελλειπτικών και παραβολικών διαφορικών εξισώσεων Κεφάλαιο 6 Εισαγωγή στη µέθοδο πεπερασµένων όγκων επίλυση ελλειπτικών παραβολικών διαφορικών εξισώσεων 6.1 Εισαγωγή Η µέθοδος των πεπερασµένων όγκων είναι µία ευρέως διαδεδοµένη υπολογιστική µέθοδος επίλυσης

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΡΕΥΣΤΟΜΗΧΑΝΙΚΗΣ ΚΑΙ ΣΤΡΟΒΙΛΟΜΗΧΑΝΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΡΕΥΣΤΟΜΗΧΑΝΙΚΗΣ ΚΑΙ ΣΤΡΟΒΙΛΟΜΗΧΑΝΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΒΙΟΜΗΧΑΝΙΑΣ ΕΡΓΑΣΤΗΡΙΟ ΡΕΥΣΤΟΜΗΧΑΝΙΚΗΣ ΚΑΙ ΣΤΡΟΒΙΛΟΜΗΧΑΝΩΝ ΦΑΣΗ Β- CASE STUDIES ΕΦΑΡΜΟΓΗΣ ΕΜΠΟΡΙΚΟΥ ΛΟΓΙΣΜΙΚΟΥ ΣΤΗΝ ΕΚΠΑΙΔΕΥΤΙΚΗ ΔΙΑΔΙΚΑΣΙΑ

Διαβάστε περισσότερα

ΕΠΙΣΤΗΜΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ: Μια ενδιαφέρουσα σταδιοδρομία

ΕΠΙΣΤΗΜΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ: Μια ενδιαφέρουσα σταδιοδρομία ΕΠΙΣΤΗΜΟΝΙΚΟΙ ΥΠΟΛΟΓΙΣΜΟΙ: Μια ενδιαφέρουσα σταδιοδρομία N. Μισυρλής (e-mail: nmis@di.uoa.gr) Τμήμα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήμιο Αθηνών Parallel Scientific Computing Laboratory (PSCL)

Διαβάστε περισσότερα

Εισαγωγή στους Υπολογιστές

Εισαγωγή στους Υπολογιστές Εισαγωγή στους Υπολογιστές Ενότητα #2: Αναπαράσταση δεδομένων Αβεβαιότητα και Ακρίβεια Καθ. Δημήτρης Ματαράς Πολυτεχνική Σχολή Τμήμα Χημικών Μηχανικών Αναπαράσταση δεδομένων (Data Representation), Αβεβαιότητα

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:08 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

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

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΜΕΤΡΑ ΑΠΟ ΟΣΗΣ & ΕΞΙΣΟΡΡΟΠΗΣΗ ΦΟΡΤΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΨΗΛΩΝ ΕΠΙ ΟΣΕΩΝ ΒΑΘΜΟΣ ΠΑΡΑΛΛΗΛΙΣΜΟΥ Η υλοποίηση

Διαβάστε περισσότερα

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

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 7 «Διαχείριση Μνήμης» Διδάσκων: Δ. Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 Κύρια Μνήμη 1. Εισαγωγή 2. Βασική διαχείριση μνήμης 3. Μνήμη και πολυπρογραμματισμός 4. Τμηματοποίηση

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΡΕΥΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΘΕΡΜΙΚΩΝ ΣΤΡΟΒΙΛΟΜΗΧΑΝΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΡΕΥΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΘΕΡΜΙΚΩΝ ΣΤΡΟΒΙΛΟΜΗΧΑΝΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΡΕΥΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΘΕΡΜΙΚΩΝ ΣΤΡΟΒΙΛΟΜΗΧΑΝΩΝ Η Μέθοδος της Διαφορικής Εξέλιξης στη Μονοκριτηριακή και Πολυκριτηριακή Αεροδυναμική Βελτιστοποίηση,

Διαβάστε περισσότερα

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής

Ελληνικό Ανοικτό Πανεπιστήµιο. Η Ανάλυση και ο Σχεδιασµός στην Ενοποιηµένη ιαδικασία. ρ. Πάνος Φιτσιλής 1 Ελληνικό Ανοικτό Πανεπιστήµιο Η και ο στην Ενοποιηµένη ιαδικασία ρ. Πάνος Φιτσιλής Περιεχόµενα Γενικές αρχές ανάλυσης και σχεδιασµού Τα βήµατα της ανάλυσης και του σχεδιασµού Συµπεράσµατα 2 3 Η ανάλυση

Διαβάστε περισσότερα

ΚΑΘΗΓΗΤΗΣ: Α.Γ. ΜΑΜΑΛΗΣ ΑΝΑΠΛΗΡΩΤΗΣ ΚΑΘΗΓΗΤΗΣ:.Ε. ΜΑΝΩΛΑΚΟΣ

ΚΑΘΗΓΗΤΗΣ: Α.Γ. ΜΑΜΑΛΗΣ ΑΝΑΠΛΗΡΩΤΗΣ ΚΑΘΗΓΗΤΗΣ:.Ε. ΜΑΝΩΛΑΚΟΣ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΤΩΝ ΚΑΤΕΡΓΑΣΙΩΝ ΚΑΘΗΓΗΤΗΣ: Α.Γ. ΜΑΜΑΛΗΣ ΑΝΑΠΛΗΡΩΤΗΣ ΚΑΘΗΓΗΤΗΣ:.Ε. ΜΑΝΩΛΑΚΟΣ ΑΡΙΘΜΗΤΙΚΗ ΠΡΟΣΟΜΟΙΩΣΗ ΤΩΝ ΑΝΑΠΤΥΣΣΟΜΕΝΩΝ ΘΕΡΜΟΚΡΑΣΙΑΚΩΝ

Διαβάστε περισσότερα

Περίληψη ιπλωµατικής Εργασίας

Περίληψη ιπλωµατικής Εργασίας Περίληψη ιπλωµατικής Εργασίας Θέµα: Εναλλακτικές Τεχνικές Εντοπισµού Θέσης Όνοµα: Κατερίνα Σπόντου Επιβλέπων: Ιωάννης Βασιλείου Συν-επιβλέπων: Σπύρος Αθανασίου 1. Αντικείµενο της διπλωµατικής Ο εντοπισµός

Διαβάστε περισσότερα

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος

ΑΛΓΟΡΙΘΜΟΙ. Τι είναι αλγόριθμος ΑΛΓΟΡΙΘΜΟΙ Στο σηµείωµα αυτό αρχικά εξηγείται η έννοια αλγόριθµος και παραθέτονται τα σπουδαιότερα κριτήρια που πρέπει να πληρεί κάθε αλγόριθµος. Στη συνέχεια, η σπουδαιότητα των αλγορίθµων συνδυάζεται

Διαβάστε περισσότερα

Μηχανική ΙI Ροή στο χώρο των φάσεων, θεώρηµα Liouville

Μηχανική ΙI Ροή στο χώρο των φάσεων, θεώρηµα Liouville Τµήµα Π. Ιωάννου & Θ. Αποστολάτου 16/5/2000 Μηχανική ΙI Ροή στο χώρο των φάσεων, θεώρηµα Liouville Στη Χαµιλτονιανή θεώρηση η κατάσταση του συστήµατος προσδιορίζεται κάθε στιγµή από ένα και µόνο σηµείο

Διαβάστε περισσότερα

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΑΡΧΕΣ ΤΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ Η/Υ ΜΕΡΛΙΑΟΥΝΤΑΣ ΣΤΕΦΑΝΟΣ, ΠΕ19 ΚΕΦΑΛΑΙΟ 3 Αλγόριθμοι 3. Αλγόριθμοι 2 3. Αλγόριθμοι 3.1 Η έννοια του αλγορίθμου 3.2 Χαρακτηριστικά αλγορίθμου 3.3 Ανάλυση αλγορίθμων

Διαβάστε περισσότερα

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών & Data Path Allocation Σύνθεση Data Path Το DataPath είναι ένα netlist που αποτελείται από τρεις τύπους µονάδων: (α) Λειτουργικές Μονάδες, (β) Μονάδες Αποθήκευσης και (γ) Μονάδες ιασύνδεσης Αριθµό Μονάδων

Διαβάστε περισσότερα

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...

ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ... ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ ΜΕΡΟΣ Ι: ΓΕΩΓΡΑΦΙΚΑ Ε ΟΜΕΝΑ ΚΑΙ ΣΥΣΤΗΜΑΤΑ ΓΕΩΓΡΑΦΙΚΩΝ ΠΛΗΡΟΦΟΡΙΩΝ...1 1. Η ΦΥΣΗ ΤΩΝ ΓΕΩΓΡΑΦΙΚΩΝ Ε ΟΜΕΝΩΝ...3 Κατηγορίες των Γεωγραφικών εδοµένων...3 Γεωγραφικές οντότητες...3 ιαστάσεις

Διαβάστε περισσότερα

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

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ

ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ ΟΜΑΔΑ Ε ΓΕΩΡΓΙΟΥ ΦΩΤΕΙΝΗ ΗΛΙΟΥΔΗ ΑΦΡΟΔΙΤΗ ΜΕΤΑΛΛΙΔΟΥ ΧΡΥΣΗ ΝΙΖΑΜΗΣ ΑΛΕΞΑΝΔΡΟΣ ΤΖΗΚΑΛΑΓΙΑΣ ΑΝΔΡΕΑΣ ΤΡΙΓΚΑΣ ΑΓΓΕΛΟΣ Η ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΤΟ ΛΥΚΕΙΟ Εισαγωγή Η μεγάλη ανάπτυξη και ο ρόλος που

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

9. Συστολικές Συστοιχίες Επεξεργαστών

9. Συστολικές Συστοιχίες Επεξεργαστών Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε

Διαβάστε περισσότερα

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΗΧΑΝΙΚΗΣ ΕΦΑΡΜΟΓΕΣ ΜΕ ΧΡΗΣΗ MATLAB ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ [ΒΕΛΤΙΩΜΕΝΗ ΚΑΙ ΕΠΑΥΞΗΜΕΝΗ]

ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΗΧΑΝΙΚΗΣ ΕΦΑΡΜΟΓΕΣ ΜΕ ΧΡΗΣΗ MATLAB ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ [ΒΕΛΤΙΩΜΕΝΗ ΚΑΙ ΕΠΑΥΞΗΜΕΝΗ] ΑΡΙΘΜΗΤΙΚΕΣ ΜΕΘΟΔΟΙ ΓΙΑ ΠΡΟΒΛΗΜΑΤΑ ΜΗΧΑΝΙΚΗΣ ΕΦΑΡΜΟΓΕΣ ΜΕ ΧΡΗΣΗ MATLAB ΔΕΥΤΕΡΗ ΕΚΔΟΣΗ [ΒΕΛΤΙΩΜΕΝΗ ΚΑΙ ΕΠΑΥΞΗΜΕΝΗ] Συγγραφείς ΝΤΑΟΥΤΙΔΗΣ ΠΡΟΔΡΟΜΟΣ Πανεπιστήμιο Minnesota, USA ΜΑΣΤΡΟΓΕΩΡΓΟΠΟΥΛΟΣ ΣΠΥΡΟΣ Αριστοτέλειο

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα

Αριθμητικές μέθοδοι σε ταλαντώσεις μηχανολογικών συστημάτων

Αριθμητικές μέθοδοι σε ταλαντώσεις μηχανολογικών συστημάτων ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Καθηγητής κ. Σ. Νατσιάβας Αριθμητικές μέθοδοι σε ταλαντώσεις μηχανολογικών συστημάτων Στοιχεία Φοιτητή Ονοματεπώνυμο: Νατσάκης Αναστάσιος Αριθμός Ειδικού Μητρώου:

Διαβάστε περισσότερα

Συστήµατα Παράλληλης Επεξεργασίας

Συστήµατα Παράλληλης Επεξεργασίας http://www.cslab.ece.ntua.gr/courses/pps Εισαγωγή Νεκτάριος Κοζύρης Γιώργος Γκούµας nkoziris@cslab.ece.ntua.gr goumas@cslab.ece.ntua.gr Περιεχόµενο µαθήµατος Ζητήµατα παράλληλων αρχιτεκτονικών Κατηγορίες

Διαβάστε περισσότερα

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης

Περιεχόμενα. Δομές δεδομένων. Τεχνικές σχεδίασης αλγορίθμων. Εισαγωγή στον προγραμματισμό. Υποπρογράμματα. Επαναληπτικά κριτήρια αξιολόγησης Περιεχόμενα Δομές δεδομένων 37. Δομές δεδομένων (θεωρητικά στοιχεία)...11 38. Εισαγωγή στους μονοδιάστατους πίνακες...16 39. Βασικές επεξεργασίες στους μονοδιάστατους πίνακες...25 40. Ασκήσεις στους μονοδιάστατους

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης

Διαβάστε περισσότερα

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος Κλήμης Νταλιάνης Λέκτορας Π.Δ.407/80 Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Αρχιτεκτονική

Διαβάστε περισσότερα

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Δομή Επανάληψης. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Δομή Επανάληψης Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD Δομή Επανάληψης Επανάληψη με αρίθμηση DO = ,

Διαβάστε περισσότερα

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΜ 361: ΠΑΡΑΛΛΗΛΛΟΙ ΥΠΟΛΟΓΙΣΜΟΙ (PARALLEL COMPUTING) ΣΕΙΡΑ ΑΣΚΗΣΕΩΝ: 1η Όνομα Καθηγητή: Χαρμανδάρης Ευάγγελος Τμήμα Εφαρμοσμένων Μαθηματικών ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: Αρχιτεκτονικές Von Neuman, Harvard. Κατηγοριοποίηση κατά Flynn. Υπολογισμός απόδοσης Συστημάτων

Διαβάστε περισσότερα

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών Κεφ. 6Β: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών. Εισαγωγή (ορισμός προβλήματος, αριθμητική ολοκλήρωση ΣΔΕ, αντικατάσταση ΣΔΕ τάξης n με n εξισώσεις ης τάξης). Μέθοδος Euler 3. Μέθοδοι

Διαβάστε περισσότερα

Α. Ερωτήσεις Ανάπτυξης

Α. Ερωτήσεις Ανάπτυξης οµηµένος Προγραµµατισµός-Κεφάλαιο 7 Σελίδα 1 α ό 10 ΕΝΟΤΗΤΑ ΙΙΙ (ΠΡΟΓΡΑΜΜΑΤΑ) ΚΕΦΑΛΑΙΟ 7: Είδη, Τεχνικές και Περιβάλλοντα Προγραµµατισµού Α. Ερωτήσεις Ανάπτυξης 1. Τι ονοµάζουµε γλώσσα προγραµµατισµού;

Διαβάστε περισσότερα

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών

Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών Κεφ. 7: Συνήθεις διαφορικές εξισώσεις (ΣΔΕ) - προβλήματα αρχικών τιμών 7. Εισαγωγή (ορισμός προβλήματος, αριθμητική ολοκλήρωση ΣΔΕ, αντικατάσταση ΣΔΕ τάξης n με n εξισώσεις ης τάξης) 7. Μέθοδος Euler 7.3

Διαβάστε περισσότερα

Ενδεικτικές Ερωτήσεις Θεωρίας

Ενδεικτικές Ερωτήσεις Θεωρίας Ενδεικτικές Ερωτήσεις Θεωρίας Κεφάλαιο 2 1. Τι καλούμε αλγόριθμο; 2. Ποια κριτήρια πρέπει οπωσδήποτε να ικανοποιεί ένας αλγόριθμος; 3. Πώς ονομάζεται μια διαδικασία που δεν περατώνεται μετά από συγκεκριμένο

Διαβάστε περισσότερα

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

Κεφάλαιο 3. Διδακτικοί Στόχοι Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

Διαβάστε περισσότερα

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ

ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ ΚΥΚΛΟΣ ΖΩΗΣ ΛΟΓΙΣΜΙΚΟΥ και ΔΙΑΓΡΑΜΜΑΤΑ ΡΟΗΣ ΔΕΔΟΜΕΝΩΝ Ο κύκλος ζωής λογισµικού (συνοπτικά) Η παραδοσιακή φάση ανάπτυξης του κύκλου ζωής λογισµικού Φάση καθορισµού απαιτήσεων (1/2) ΤΙ πρέπει να κάνει το

Διαβάστε περισσότερα

Πίνακας Περιεχομένων 7

Πίνακας Περιεχομένων 7 Πίνακας Περιεχομένων Πρόλογος...5 Πίνακας Περιεχομένων 7 1 Εξισώσεις Ροής- Υπολογιστική Μηχανική Ρευστών...15 1.1 ΥΠΟΛΟΓΙΣΤΙΚΗ ΜΗΧΑΝΙΚΗ ΡΕΥΣΤΩΝ.....15 1.1.1 Γενικά θέματα. 15 1.1.2 Υπολογιστικά δίκτυα...16

Διαβάστε περισσότερα

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

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

Διαβάστε περισσότερα

Επιµέλεια Θοδωρής Πιερράτος

Επιµέλεια Θοδωρής Πιερράτος Εισαγωγή στον προγραµµατισµό Η έννοια του προγράµµατος Ο προγραµµατισµός ασχολείται µε τη δηµιουργία του προγράµµατος, δηλαδή του συνόλου εντολών που πρέπει να δοθούν στον υπολογιστή ώστε να υλοποιηθεί

Διαβάστε περισσότερα

ΠΡΟΣΟΜΟΙΩΣΗ ΟΡΘΟΓΩΝΙΚΗΣ ΚΑΙ ΛΟΞΗΣ ΚΟΠΗΣ ΜΕ ΧΡΗΣΗ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ. Ευάγγελος Καστής. Καθ. Αριστομένης Αντωνιάδης ιπλ. Μηχ. (MSc) Χαρά Ευσταθίου

ΠΡΟΣΟΜΟΙΩΣΗ ΟΡΘΟΓΩΝΙΚΗΣ ΚΑΙ ΛΟΞΗΣ ΚΟΠΗΣ ΜΕ ΧΡΗΣΗ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ. Ευάγγελος Καστής. Καθ. Αριστομένης Αντωνιάδης ιπλ. Μηχ. (MSc) Χαρά Ευσταθίου ΠΡΟΣΟΜΟΙΩΣΗ ΟΡΘΟΓΩΝΙΚΗΣ ΚΑΙ ΛΟΞΗΣ ΚΟΠΗΣ ΜΕ ΧΡΗΣΗ ΠΕΠΕΡΑΣΜΕΝΩΝ ΣΤΟΙΧΕΙΩΝ Καθ. Αριστομένης Αντωνιάδης ιπλ. Μηχ. (MSc) Χαρά Ευσταθίου Ευάγγελος Καστής Πολυτεχνείο Κρήτης-Χανιά 016 Παρουσίαση διπλωματικής

Διαβάστε περισσότερα

Κεφάλαιο 3.1 Εξισώσεις 1 ου Βαθμού Επιμέλεια Σημειώσεων: Ντάνος Γιώργος ΚΕΦΑΛΑΙΟ 3.1 ΕΞΙΣΩΣΕΙΣ 1 ΟΥ ΒΑΘΜΟΥ 1

Κεφάλαιο 3.1 Εξισώσεις 1 ου Βαθμού Επιμέλεια Σημειώσεων: Ντάνος Γιώργος ΚΕΦΑΛΑΙΟ 3.1 ΕΞΙΣΩΣΕΙΣ 1 ΟΥ ΒΑΘΜΟΥ 1 Κεφάλαιο 3.1 Εξισώσεις 1 ου Βαθμού Επιμέλεια Σημειώσεων: Ντάνος Γιώργος ΚΕΦΑΛΑΙΟ 3.1 ΕΞΙΣΩΣΕΙΣ 1 ΟΥ ΒΑΘΜΟΥ 1 Εξίσωση πρώτου βαθμού ή πρωτοβάθμια εξίσωση με άγνωστο x ονομάζεται κάθε εξίσωση της μορφής

Διαβάστε περισσότερα

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,

Διαβάστε περισσότερα

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

Διαβάστε περισσότερα

Υπολογιστικό Πρόβληµα

Υπολογιστικό Πρόβληµα Υπολογιστικό Πρόβληµα Μετασχηµατισµός δεδοµένων εισόδου σε δεδοµένα εξόδου. Δοµή δεδοµένων εισόδου (έγκυρο στιγµιότυπο). Δοµή και ιδιότητες δεδοµένων εξόδου (απάντηση ή λύση). Τυπικά: διµελής σχέση στις

Διαβάστε περισσότερα

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ.

ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. ΤΕΙ ΠΕΙΡΑΙΑ ΤΜΗΜΑ ΗΥΣ Θέμα: ΜΕΛΕΤΗ ΣΧΕΔΙΑΣΗ ΕΦΑΡΜΟΓΗΣ ΣΕ ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ (CLOUD COMPUTING) ΜΕ ΕΜΦΑΣΗ ΣΤΗΝ ΚΑΤΑΣΚΕΥΗ ΔΕΝΤΡΩΝ. Εισηγητής: Δ. Ν. Καλλέργης, MSc. Φοιτήτρια: Κοντζοπούλου Παναγιώτα Εισαγωγή

Διαβάστε περισσότερα

Αποµακρυσµένη κλήση διαδικασιών

Αποµακρυσµένη κλήση διαδικασιών Αποµακρυσµένηκλήση διαδικασιών Τοπική κλήση διαδικασιών Αποµακρυσµένη κλήση διαδικασιών Μεταβίβαση παραµέτρων Πρωτόκολλα επικοινωνίας Αντιγραφή µηνυµάτων Προδιαγραφές διαδικασιών RPC στο σύστηµα DCE Κατανεµηµένα

Διαβάστε περισσότερα

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΤΕΧΝΙΚΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΤΕΧΝΙΚΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΠΟΛΙΤΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΤΟΜΕΑΣ ΥΔΡΑΥΛΙΚΗΣ ΚΑΙ ΤΕΧΝΙΚΗΣ ΠΕΡΙΒΑΛΛΟΝΤΟΣ ΕΥΑΓΓΕΛΙΑΣ Π. ΛΟΥΚΟΓΕΩΡΓΑΚΗ Διπλωματούχου Πολιτικού Μηχανικού ΟΛΟΚΛΗΡΩΜΕΝΟ

Διαβάστε περισσότερα

Εισαγωγή στη Σχεδίαση Λογισμικού

Εισαγωγή στη Σχεδίαση Λογισμικού Εισαγωγή στη Σχεδίαση Λογισμικού περιεχόμενα παρουσίασης Τι είναι η σχεδίαση λογισμικού Έννοιες σχεδίασης Δραστηριότητες σχεδίασης Σχεδίαση και υποδείγματα ανάπτυξης λογισμικού σχεδίαση Η σχεδίαση του

Διαβάστε περισσότερα

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

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού ( Απαντήσεις & Λύσεις Βιβλίου) 1. Σκοποί κεφαλαίου Κύκλος ανάπτυξης προγράµµατος Κατηγορίες γλωσσών προγραµµατισµού

Διαβάστε περισσότερα

Αρχιτεκτονική Λογισμικού

Αρχιτεκτονική Λογισμικού Αρχιτεκτονική Λογισμικού περιεχόμενα παρουσίασης Τι είναι η αρχιτεκτονική λογισμικού Αρχιτεκτονική και απαιτήσεις Σενάρια ποιότητας Βήματα αρχιτεκτονικής σχεδίασης Αρχιτεκτονικά πρότυπα Διαστρωματωμένη

Διαβάστε περισσότερα

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί) Εισαγωγή στον Προγραµµατισµό Αριθµητική Ανάλυση (ή Επιστηµονικοί Υπολογισµοί) ιδάσκοντες: Καθηγητής Ν. Μισυρλής, Επίκ. Καθηγητής Φ.Τζαφέρης ΕΚΠΑ 8 εκεµβρίου 2014 Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

Διαβάστε περισσότερα

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

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:03 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων

Διαβάστε περισσότερα

ΘΕΜΑΤΑ ΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ 2006 / 2007

ΘΕΜΑΤΑ ΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ 2006 / 2007 ΘΕΜΑΤΑ ΙΠΛΩΜΑΤΙΚΩΝ ΕΡΓΑΣΙΩΝ 2006 / 2007 Επιβλέπων : Επικ. Καθηγητής Σπύρος ενάζης Για περισσότερες πληροφορίες σχετικά µε τις παρακάτω διπλωµατικές εργασίες να επικοινωνήσετε µε τον Σπύρο ενάζη (sdena@ece.upatras.gr)

Διαβάστε περισσότερα

2η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 3 (Θεωρία-Αλγόριθµοι-Εφαρµογές)

2η Οµάδα Ασκήσεων. ΑΣΚΗΣΗ 3 (Θεωρία-Αλγόριθµοι-Εφαρµογές) ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟ ΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΤΟΜΕΑΣ ΘΕΩΡΗΤΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ : ΑΡΙΘΜΗΤΙΚΗ ΑΝΑΛΥΣΗ 2η Οµάδα Ασκήσεων 1442008 ΑΣΚΗΣΗ 3 (Θεωρία-Αλγόριθµοι-Εφαρµογές)

Διαβάστε περισσότερα

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης

Κεφάλαιο 7. ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης ΕΠΑΛ Σύμης Εφαρμογές πληροφορικής Ερωτήσεις επανάληψης Κεφάλαιο 7 1. Σε τι διαφέρει ο Η/Υ από τις υπόλοιπες ηλεκτρικές και ηλεκτρονικές συσκευές; Που οφείλεται η δυνατότητά του να κάνει τόσο διαφορετικές

Διαβάστε περισσότερα

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού...

5.1. Χωροταξικός Σχεδιασμός Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού Δραστηριότητες Χωροταξικού Σχεδιασμού... ΚΕΦΑΛΑΙΟ 5. ΧΩΡΟΤΑΞΙΚΟΣ ΣΧΕΔΙΑΣΜΟΣ Περιεχόμενα 5.1. Χωροταξικός Σχεδιασμός... 2 5.2. Κριτήρια αξιολόγησης Χωροταξικού Σχεδιασμού... 4 5.3. Δραστηριότητες Χωροταξικού Σχεδιασμού... 5 5.4. Τύποι Χωροταξίας...

Διαβάστε περισσότερα