Μία από τις μεγαλύτερες προκλήσεις στα σύγχρονα συστήματα παράλληλης επεξεργασίας είναι η ανάπτυξη παράλληλου λογισμικού που κλιμακώνει αποδοτικά. Αρκετές εφαρμογές δεν κλιμακώνουν έπειτα από έναν αριθμό επεξεργαστών, εξαιτίας του αυξημένου κόστους επικοινωνίας, που κυριαρχεί στο συνολικό χρόνο εκτέλεσης. Ο στόχος της παρούσας διπλωματικής εργασίας είναι η μελέτη της επίδοσης της παράλληλης εξίσωσης διάδοσης θερμότητας στον τρισδιάστατο χώρο, ως αντιπροσωπευτικού προβλήματος στην κατηγορία των προβλημάτων επίλυσης μερικών διαφορικών εξισώσεων, σε μια συστοιχία υπολογιστών διασυνδεδεμένη με Gbit Ethernet. Aρχικά, ερευνούμε την επίδοση των απλών παράλληλων υλοποιήσεων του προβλήματος με τη χρήση των OpenMP, MPI και του υβριδικού τους μοντέλου, επισημαίνοντας τους παράγοντες που περιορίζουν την κλιμάκωση. Ακολούθως, υλοποιούμε και ελέγχουμε την επίδοση τριων τεχνικών βελτιστοποιήσης που έχουν προταθεί στη βιβλιογραφία: i) tiling στους βρόχους του υπολογιστικού πυρήνα, ii) συμπίεση των μηνυμάτων του MPI και iii) επικάλυψη των υπολογισμών και της επικοινωνίας, τόσο με τη χρήση ασύγχρονων συναρτήσεων επικοινωνίας όσο και με την ανάθεση της επικοινωνίας και των υπολογισμών σε διαφορετικά νήματα, με τη βοήθεια του OpenMP. Συνοψίζοντας, προτείνουμε τη συνδυαστική χρήση της συμπίεσης μηνυμάτων και της επικάλυψης της επικοινωνίας και των υπολογισμών με υβριδικό μοντέλο MPI/OpenMP και παρατηρούμε βελτίωση της επίδοσης έως και 28%, συγκριτικά με τις απλές παράλληλες υλοποιήσεις.
One of the most challenging problems in modern parallel processing systems is the development of parallel software that scales efficiently. Several applications do not scale further than a number of processors, due to communication overhead, which dominates the total execution time. The goal of this diploma is to study the performance of the parallel 3D heat equation, which represents the class of PDE solvers, on a cluster with commodity Gbit Ethernet and propose a set of optimization techniques for the reduction of the overall execution time of the application. Initially, we investigate the efficiency of baseline parallel implementations of the problem with OpenMP, MPI and their hybrid model, highlighting performance limiting factors. Subsequently, we implement and test the performance of three optimization techniques proposed in the literature: i) loop tiling of the computational kernel ii) compression of MPI messages and iii) overlapping of computation and communication, both by using non-blocking communication functions and by assigning computation and communication to separate threads, with the aid of OpenMP. To conclude, we propose the combined use of message compression and computation/communication overlapping with a hybrid MPI/OpenMP model, and we notice improvement in performance up to 28%, compared to the baseline parallel implementations.