Σχεδίαση και υλοποίηση συστήματος διαμοιρασμού επιταχυντών γραφικών σε εικονικά περιβάλλοντα - Παπαζαφειρόπουλος, Κωνσταντίνος (Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών. Τομέας Τεχνολογίας Πληροφορικής και Υπολογιστών, 2015)
Το cloud computing, είτε αυτό αφορά σε κατανεμημένα - γεωγραφικά - περιβάλλοντα (grid computing) είτε αφορά υπολογιστικά κέντρα με συστοιχίες (clusters) υπολογιστών, βρίσκεται αναπόφευκτα στο επίκεντρο του ενδιαφέροντος στις μέρες μας. Για οποιαδήποτε εφαρμογή απαιτεί αυξημένη υπολογιστική ισχύ η αποτελεσματικότητα των παραπάνω τεχνολογιών αποκτά ιδιαίτερη σημασία (HPC). Η αποτελεσματική παραλληλοποίηση επαναλαμβανόμενων διαδικασιών που προσφέρει η χρήση GPUs - αντί για CPUs - (GPGPU) σε υπολογιστικά clusters ή/και grid για την επιτάχυνση υπολογιστικά απαιτητικών εργασιών την καθιστούν μια όλο και ευρύτερα υιοθετούμενη λύση. Μάλιστα, ο συνδυασμός των επιδόσεων του GPGPU με τα πλεονεκτήματα που προσφέρουν τα εικονικά περιβάλλοντα (κλιμακωσιμότητα, ελαστικότητα, ασ-φάλεια, live migration) μπορεί να παρέχει όχι μόνο υψηλές επιδόσεις αλλά και ευελιξία. Ταυτόχρονα όμως, εισάγει και προβλήματα που έχουν εμποδίσει μέχρι στιγμής την καθολική χρήση τέτοιου τύπου λύσεων, παρόλο που λαμβάνουν έντονης ερευνητικής προσοχής. Τα σημαντικότερα είναι η επιβάρυνση στις επιδόσεις που προσθέτει το virtualization αλλά και η αποδοτικότητα ενός τέτοιου συνδυασμού: δεν αρκεί δηλαδή μια τέτοια λύση να προσφέρει μόνο υψηλές επιδόσεις, αλλά πρέπει να είναι και οικονομική (πχ. δυνατότητα χρήσης GPU σε κάποια μόνο μηχανήματα μιας συστοιχίας υπολογιστών). Σκοπός αυτής της εργασίας είναι η μελέτης της δομής και τρόπων για την αποδοτική χρήση τέτοιων συνδυαστικών συστημάτων που αξιοποιούν gpgpu και virtualization. Συγκεκριμένα, εστιάζουμε στη δυνατότητα υπολογιστών χωρίς GPU να εκτελούν αποτελεσματικά εφαρμογές CUDA σε απομακρυσμένους (εικονικούς και μη) υπολογιστές με GPU, δηλαδή στην ταυτόχρονη (αποδοτική) χρήση μιας host gpu από πολλαπλούς (απομακρυσμένους) clients. Σε αυτό το πλαίσιο, παρουσιάζουμε μια υλοποίηση (GPUsockets) \say{διάφανη}/χωρίς απαιτούμενες μετατροπές από τη μεριά του χρήστη, βασισμένη στο μοντέλο διαχωρισμένου οδηγού, που αξιοποιεί το CUDA driver API, ώστε να είναι εύχρηστη και επεκτάσιμη. Εξετάζουμε την αποδοτικότητά της σε περιβάλλον Xen και, στο βαθμό που τα αποτελέσματα είναι ικανοποιητικά, προτείνουμε βελτιώσεις (πχ. αξιοποιώντας εναλλακτικές λύσεις ενδοεπικοινωνίας των VMs όπως το V4V/V4VSockets) και πιθανές μελλοντικές επεκτάσεις.