Τα τελευταία χρόνια, το τοπίο στα σύγχρονα συστήματα παράλληλης επεξεργασίας έχει αλλάξει σε μεγάλο βαθμό. Η βελτίωση των υπολογιστικών επιδόσεων έχει επέλθει από τη σημαντική αύξηση των επεξεργαστικών πυρήνων και όχι από την αύξηση της συχνότητας λειτουργίας, όπως συνέβαινε σχεδόν τις δύο τελευταίες δεκαετίες.
Συνεπώς, στις μέρες μας οι πολυπύρηνοι επεξεργαστές (multicore) φιλοξενούν μέχρι και 12 ή 15 πυρήνες ανά επεξεργαστή. Επιπλέον, αρχιτεκτονικές επιταχυντών (manycore) σαν τις κάρτες γραφικών, οι οποίες ενσωματώνουν πολλούς απλούστερους επεξεργαστικούς πυρήνες, προσφέρουν πολύ υψηλές υπολογιστικές δυνατότητες και σημαντικές ευκαιρίες για εφαρμογές παράλληλου προγραμματισμού. Όμως, η δυσκολία στον προγραμματισμό τους και τα διαφορετικά προγραμματιστικά μοντέλα που ακολουθούν, αποτελούν μεγάλη πρόκληση για τους προγραμματιστές.
Σκοπός της παρούσας διπλωματικής εργασίας είναι η υλοποίηση και η βελτιστοποίηση των αλγορίθμων Floyd Warshall και LU Decomposition σε συστήματα πολυπύρηνων επεξεργαστών, σε κάρτες γραφικών της εταιρίας Nvidia και στη νέα manycore αρχιτεκτονική της εταιρίας Intel (Many Integrated Core). Στόχος είναι τόσο η αντιμετώπιση των προκλήσεων που παρουσιάζονται, όσο και η σύγκριση και η αξιολόγηση των παραπάνω διαφορετικών αρχιτεκτονικών.
In recent years, the landscape of modern parallel processing systems has changed greatly. Advancement in computer performance has been coming through hardware parallelism instead of from the clock-rate increases that we enjoyed for roughly 20 years.
As a result, multicore processors have taken us from one core per processor up to 12 or 15 cores per processor today. Moreover, manycore architectures like GPU accelerators, which incorporate many simpler processor cores, offer very high computational capabilities and significant opportunities for parallel programming. However, the difficulties in programming such devices and their unfamiliar programming models present a major challenge for developers.
The purpose of the current diploma thesis is the implementation and optimization of Floyd Warshall and LU Decomposition algorithms on multicore architectures, Nvidia GPUs and Intel's new manycore architecture (Many Integrated Core). The goal is to address the challenges presented and to compare and evaluate all these different architectures.