Βέλτιστος Σχεδιασμός Κατασκευών Σε Ετερογενή Υπολογιστικά Συστήματα CPU & GPU - Μπακαλάκος, Σεραφείμ (Εθνικό Μετσόβιο Πολυτεχνείο. Σχολή Πολιτικών Μηχανικών. Τομέας Δομοστατικής. Εργαστήριο Στατικής και Αντισεισμικών Ερευνών, 2015)
Η διπλωματική αυτή εργασία ασχολείται με το βέλτιστο σχεδιασμό κατασκευών χρησιμοποιώντας τη μέθοδο των πεπερασμένων στοιχείων (FEM). Εξετάζονται κυρίως μεταευριστικοί αλγόριθμοι σε προβλήματα βελτιστοποίησης μεγέθους διατομών. Η ανάλυση των φορέων με τη FEM δεν εκτελειται με τον παραδοσιακό τρόπο στη CPU (Central Processing Unit), αλλά σε ετερογενή υπολογιστικά συστήματα που χρησιμοποιούν τη CPU σε συνεργασία με τη GPU (Graphics Processing Unit). Οι GPU έχουν γενικά πολύ μεγαλύτερη υπολογιστική ισχύ, που μπορεί να μειώσει δραστικά το χρόνο εκτέλεσης των πιο απαιτητικών διεργασιών της FEM, όπως είναι η επίλυση γραμμικών συστημάτων μεγάλης τάξης. Όλοι οι σύγχρονοι υπολογιστές είναι εφοδιασμένοι με GPU που παραδοσιακά χρησιμοποιούνται μόνο για την απόδοση γραφικών στην οθόνη. Με την ανάθεση των πλέον χρονοβόρων υπολογισμών στην GPU και τη χρήση της CPU για τη ροή ελέγχου του προγράμματος και άλλες πιο περίπλοκες αλλά όχι χρονοβόρες διεργασίες, αξιοποιούνται όλοι οι υπολογιστικοί πόροι του υπολογιστή και μειώνεται σημαντικά ο συνολικός χρόνος εκτέλεσης. Κατά τη διαδικασία της βελτιστοποίησης πραγματοποιείται μεγάλο πλήθος αναλύσεων FEM, οπότε είναι αναγκαίο να βρεθούν όσο το δυνατόν γρηγορότεροι τρόποι ανάλυσης. Κατά τη διάρκεια της εργασίας, για τις αναλύσεις πεπερασμένων στοιχείων χρησιμοποιήθηκε το λογισμικό Solverize, που αναπτύσσεται από το Εργαστήριο Στατικής και Αντισεισμικών Κατασκευών του τμήματος Πολιτικών Μηχανικών, ΕΜΠ. Σε αυτό προστέθηκε η δυνατότητα εκτέλεσης βελτιστοποίησης, χρησιμοποιοώντας τους μεταευριστικούς αλγορίθμους: Βελτιστοποίηση Σμήνους Σωματιδίων, Διαφορική Εξέλιξη και Στρατηγικές Εξέλιξης. Επιπλέον προστέθηκε και κώδικας σε CUDA C που επίλυει συστήματα γραμμικών εξισώσεων στη GPU. Στο πρώτο κεφάλαιο γίνεται εισαγωγή του αναγνώστη στο κλάδο της βελτιστοποίησης. Ομαδοποιούνται σε μερικές βασικές κατηγορίες τα προβλήματα και οι μέθοδοι βελτιστοποίησης. Περεταίρω ενδιαφέρον δίνεται στο βέλτιστο σχεδιασμό κατασκευών. Στο δευτερο κεφάλαιο αναλύονται οι αλγόριθμοι Βελτιστοποίηση Σμήνους Σωματιδίων, Διαφορική Εξέλιξη και Στρατηγικές Εξέλιξης. Παρουσιάζονται οι βασικές εκδοχές τους και ο τρόπος εφαρμογής σε προβλήματα βέλτιστου σχεδιασμού κατασκευών. Στο τρίτο κεφάλαιο ελέγχεται η συμπεριφορά των παραπάνω αλγορίθμων σε μερικά από τα συνηθέστερα προβλήματα αξιολόγησης (benchmarks). Στο τέταρτο κεφάλαιο δίνεται μια συνοπτική εισαγωγή στον προγραμματισμό για GPU και τον παράλληλο προγραμματισμό γενικότερα. Εξηγούνται οι βασικές διαφορές με τον παραδοσιακό σειριακό προγραμματισμό Στο πέμπτο κεφάλαιο παρουσιάζονται εποπτικά τα λογισμικά που συνδυάζονται για το βέλτιστο σχεδιασμό κατασκευών και εφαρμόζονται σε ένα αριθμητικό πράδειγμα. Επίσης δοκιμάζονται παράλληλα μοτίβα, για την καλύτερη εκμετάλλευση των CPU και GPU.