Σε έναν μεγάλο αριθμό φυσικών και μαθηματικών προβλημάτων, χρειάζεται να γίνεται μοντελοποίηση με μερικές διαφορικές εξισώσεις προκειμένου να καθιστάται δυνατή η επίλυση. Τα προβλήματα αυτά πιθανόν να αφορούν φυσικά φαινόμενα πολύ διαφορετικά μεταξύ τους αλλά μπορούν όλα να λυθούν με μερικές διαφορικές εξισώσεις. Στην εργασία αυτή ασχολούμαστε με τη μελέτη και την υλοποίηση αλγορίθμων που επιλύουν τέτοια προβλήματα. Το πρόβλημα που εξετάζουμε σε αυτή την εργασία αφορά την επίλυση γραμμικών ελλειπτικών μερικών διαφορικών εξισώσεων (εξίσωση του Poisson και εξίσωση του Laplace) και συγκεκριμένα είναι το πρόβλημα Dirichlet σε δύο και σε τρεις διαστάσεις.
Μελετάμε αρχικά τον αλγόριθμο επίλυσης που βασίζεται στη μέθοδο Jacobi, μια γραμμική επαναληπτική μέθοδο επίλυσης. Ωστόσο, ο αλγόριθμος που μας ενδιαφέρει κυρίως είναι αυτός που προκύπτει χρησιμοποιώντας πολυπλεγματικές τεχνικές. Τέτοιες τεχνικές χρησιμοποιούνται ευρύτατα σε εφαρμογές ελλειπτικών μερικών διαφορικών εξισώσεων. Συνεπώς, τα συμπεράσματα που θα εξάγουμε μπορούν με ασφάλεια να γενικευθούν για μια μεγάλη ομάδα εφαρμογών επίλυσης μερικών διαφορικών εξισώσεων. Οι πολυπλεγματικές τεχνικές χρησιμεύουν στην αποδοτική επίλυση μιας πληθώρας γραμμικών επαναληπτικών προβλημάτων και συνδυαζόμενες με διάφορες τεχνικές διακριτοποίησης, αναδεικνύουν μια από τις ταχύτερες μεθόδους επίλυσης φυσικών και μαθηματικών προβλημάτων.
Η υλοποίηση του αλγορίθμου γίνεται σε γλώσσα C και με χρήση των εργαλείων που προσφέρουν δύο πολύ διαδεδομένες διεπαφές προγραμματισμού εφαρμογών, το OpenMP και το MPI. Προσπαθούμε με αυτό τον τρόπο να εκμεταλλευτούμε τα περιθώρια παραλληλοποίησης του αλγορίθμου. Μας απασχολεί ιδιαίτερα η εκτέλεσή του σε υπολογιστικό σύστημα παράλληλης αρχιτεκτονικής, είτε κοινής είτε κατανεμημένης μνήμης. Το υπολογιστικό αυτό σύστημα είναι στην ουσία μια συστοιχία υπολογιστικών κόμβων, για την οποία μπορούμε να επιλέξουμε δίκτυο διασύνδεσης είτε το Ethernet είτε το Myrinet.
In a large number of physical and mathematical problems, modeling with use of partial differential equations becomes a necessity for their solution finding procedure. These problems may vary considerably in respect to the phenomena they deal with. However, all of them can be solved using partial differential equations. In this thesis we study and implement algorithms that solve such problems. The problem under examination concerns the solution of linear elliptic partial differential equations (Poisson’s equation and Laplace’s equation). More specifically, it is the Dirichlet problem in two and three dimensions.
We initially consider the algorithm based on the Jacobi method, a linear iterative solution method. However, our primary concern lies in the algorithm resulting from the use of multigrid methods. Such methods are being used widely in applications involving elliptic partial differential equations. Therefore, our conclusions can be safely generalized to concern a broad group of applications solving partial differential equations. Multigrid methods are used to efficiently solve a plethora of linear iterative problems. Combined with various disretization techniques, they generate one of the fastest solving methods for physical and mathematical problems.
We build the algorithm using the C programming language and additional tools offered by two widespread application programming interfaces, OpenMP and MPI. Thus, we attempt to exploit the parallelization potentialities of the algorithm. We mainly care for its implementation on a parallel computing system of either distributed memory or shared memory architecture. This computing system is merely an array of computing elements, for which we can select the interconnection network to be either Ethernet or Myrinet.