Ένα από τα πιο δύσκολα προβλήματα στα συστήματα παράλληλης επεξεργασίας είναι η ανάπτυξη παράλληλου λογισμικού το οποίο κλιμακώνει αποδοτικά. Αρκετές εφαρμογές δεν κλιμακώνουν έπειτα από έναν αριθμό επεξεργαστών επειδή το κόστος επικοινωνίας γίνεται συγκρίσιμο με την ωφέλιμη υπολογιστική εργασία. Σκοπός αυτής της διπλωματικής εργασίας είναι η υλοποίηση ενός σχήματος παράλληλης εκτέλεσης που επικαλύπτει υπολογισμούς με επικοινωνία ώστε τελικά να μειώνεται ο συνολικός χρόνος εκτέλεσης της εφαρμογής. Χρησιμοποιούμε την επικαλυπτόμενη δρομολόγηση σε τέσσερις αντιπροσωπευτικές εφαρμογές: (α)Τον αλγόριθμο Floyd-Warshall που χρησιμοποιεί συλλογική επικοινωνία, (β)τον αλγόριθμο Smith-Waterman που είναι μία τυπική εφαρμογή δυναμικού προγραμματισμού, (γ)την εξίσωση μεταφοράς τριών διαστάσεων που απαιτεί επικοινωνία των διεργασιών μόνο προς ορισμένη κατεύθυνση και (δ)την εξίσωση διάδοσης θερμότητας τριών διαστάσεων, όπου κάθε διεργασία ανταλλάζει δεδομένα με όλες τις γειτονικές της διεργασίες. Υλοποιούμε αυτήν την τεχνική με δύο τρόπους, αρχικά χρησιμοποιώντας ασύγχρονη επικοινωνία και έπειτα αναθέτοντας το υπολογιστικό κομμάτι και την επικοινωνία σε διαφορετικά νήματα. Η τελευταία υλοποίηση βασίζεται σε υβριδικό προγραμματισμό με MPI και OpenMP. Η πλατφόρμα εκτέλεσης είναι μία συστοιχία από κόμβους πολυεπεξεργαστών με μοιραζόμενη μνήμη (SMP) και τα διαθέσιμα δίκτυα διασύνδεσης είναι Gigabit Ethernet και Myrinet. Εξετάζουμε την βιωσιμότητα αυτής της τεχνικής και στα δύο δίκτυα διασύνδεσης και παρατηρούμε βελτίωση στην επίδοση έως 40% σε σχέση με τις απλές παράλληλες εφαρμογές.
One of the most difficult problems in parallel computing is to develop parallel software that has effective scalability. Several applications do not scale further than a number of processors because communication overhead becomes comparable with computational work. The goal of this diploma thesis is to implement a parallel execution scheme that overlaps computation and communication and eventually reduces the overall execution time of the application. We utilize this overlapping schedule in four representative applications: (a)The Floyd-Warshall algorithm that uses collective communication, (b)the Smith-Waterman algorithm which is a typical dynamic programming application, (c)the 3D advection equation that requires the communication between processes only towards a specific direction and (d)the 3D heat equation that has a "halo" communication pattern, i.e.\ every process exchanges data with all of its neighbors. We develop this optimization technique in two ways, initially we use non-blocking communication functions and then by assigning the computation and the communication workload to separate threads. The latter implementation is based on hybrid programming with MPI and OpenMP. Our execution platform is a cluster of SMP nodes and there are available a commodity interconnect (Gigabit Ethernet) and a high performance network (Myrinet). We investigate the viability of this optimization technique regarding both interconnection networks and we notice improvement in performance up to 40% relative to the baseline parallel applications.