Έχουμε πλέον εισέλθει στην εποχή όπου ο όγκος των δεδομένων προς επεξεργασία είναι ασύλληπτα
μεγάλος και τα συστήματα/εφαρμογές που καλούνται να χρησιμοποιήσουν τόσο όγκο πληροφορίας
αδυνατούν, όταν στηρίζονται στις παραδοσιακές μεθόδους. Γι’ αυτό το λόγο, έχουν δημιουργηθεί
πολυπήρηνα συστήματα, σύγχρονες αρχιτεκτονικές υπολογιστών και μέθοδοι παράλληλης επεξεργα-
σίας με στόχο να λύσουν το παραπάνω πρόβλημα με αποδοτικό και γρήγορο τρόπο. Ωστόσο, τα νέα
υπολογιστικά συστήματα και οι τρόποι επεξεργασίας διαθέτουν ένα μεγάλο βαθμό πολυπλοκότητας
στη λειτουργία τους, τον οποίο και μεταφέρουν στην προσαρμογή των εφαρμογών και προγραμμά-
των που χειρίζονται μεγάλους όγκους δεδομένων. Ταυτόχρονα, έχουν δημιουργηθεί όρια απόδοσης
και κατανάλωσης ενέργειας τα οποία είναι απαραίτητο να τηρούνται για την εξοικονόμηση πόρων
και ενέργειας. Μέχρι στιγμής, αυτά τα δύο κομβικά σημεία καλείται να εκτελέσει ο ίδιος ο προγραμ-
ματιστής. Πρέπει να αναλύσει το κάθε πρόγραμμα ανεξάρτητα και να εξετάσει τον τρόπο εκτέλεσής
του μέχρι να βρει την κατάλληλη μορφή που θα τηρεί τους περιορισμούς που έχουν τεθεί. Προφα-
νώς, αυτό το έργο αποτελεί πολύ δύσκολη δουλειά και συνήθως η προσαρμογή προγραμμάτων από
ανθρώπους δεν εξαντλεί όλα τα περιθώρια βελτίωσης. Συνεπώς, καθίσταται απαραίτητη η δημιουρ-
γία ενός εργαλείου που θα αυτοματοποιεί αυτό το έργο και θα παρέχει αποδοτικότερες μορφές των
προγραμμάτων σε μικρό χρονικό διάστημα.
Η παρούσα διπλωματική εργασία παρουσιάζει τον
Autotuner
, ένα άμεσο και κλιμακωτό εργαλείο που
αναπτύχθηκε ειδικά για την πλατφόρμα Intel Xeon Phi coprocessor και προτείνει, για κάθε εφαρμογή
που δέχεται, περιβάλλοντα διαμόρφωσης για την αποδοτικότερη εκτέλεσή τους στην πλατφόρμα.
Αντικαθιστά έτσι την χειρονακτική δουλεία που έπρεπε να κάνει ο προγραμματιστής καθώς καλού-
νταν να εξερευνήσει 2,880 διαφορετικά περιβάλλοντα εκτέλεσης. Αντί να αναλύει κάθε εφαρμογή
πάνω σ’ όλα τα περιβάλλοντα εκτέλεσης, χρησιμοποιεί πληροφορίες που το εργαλείο έχει αποθηκεύ-
σει από προηγούμενες εφαρμογές. Η λειτουργία του βασίζεται σε μια collaborative filtering μέθοδο
έτσι ώστε γρήγορα και με ακρίβεια να κατηγοροποιεί μια εφαρμογή σε σύνολα περιβάλλοντων εκτέ-
λεσης βρίσκοντας ομοιότητες με προηγούμενες εφαρμογές που έχουν βελτιστοποιηθεί.
Ο
Autotuner
ελέγθηκε πάνω σε ένα σύνολο απαιτητικών και διαφορετικών εφαρμογών από δύο σύγ-
χρονες σουίτες και οι μετρήσεις ήταν πολύ ενθαρρυντικές. Συγκεριμένα, σε λιγότερο από 8 λεπτά για
κάθε εφαρμογή o
Autotuner
πρότεινε ένα περιβάλλον διαμόρφωσης που η απόδοσή του ξεπερνούσε
το 90% της καλύτερης εκτέλεσης.
(EL)
We have already entered the era where the size of the data that need processing is extremely large and
the applications that use them face difficulties if they follow the traditional ways. For that reason, new
approaches have been developed, multi- and many- core systems, modern computing architectures and
parallel processing models that aim to provide a solution for that problem efficiently and in a timely
manner. However, these new computing systems kai processing methods are characterized by a lot
inner complexity and that complexity is transfered also to programs’ and applications’ tuning which
analyze big data. Concurrently, there have beed set performance and power limitations that need to
comply with. Until now, these two major tasks are tackled by the application developer himself. He has
to analyze every application independently and examine the its execution in order to find the version
that will fulfill the restraints that have been set. Obviously, this is an onerous task and usually hand
tuning does not fully exploit the margins for improvement. Hence, it is crusial the developement of a
tool that will automate program tuning and will provide efficient tuned programs in a small period of
time.
This diploma thesis presents, the
Autotuner
, an online and scalable tool that was developed specifi-
cally for the Inte Xeon Phi coprocessor and suggests for every incoming application, a performance
effective and energy-saving tuning configuration. It substitutes the hard work the application devel-
oper had to do, as he had to explore 2,880 different tuning configurations. Instead of analyzing every
application against every tuning configuration, it uses previously cached information from already
checked applications. The
Autotuner
is based on a collaborative filtering technique that quickly and
with accuracy classifies an application with respect to sets of tuning configurations by identifying
similarities to previously optimized applications.
The
Autotuner
was tested against a set of demanding and diverse applications from two modern bench-
mark suites and the evaluation looked very promising. Particularly, in less than 8 minutes for every
appplication the
Autotuner
suggested a tuning environment in which the application achieved more
than 90% of the best tuning configuration.
(EN)