Νικόλαος Ταμπουρατζής, "Ένας καινοτόμος προσομοιωτής για ετερογενή παράλληλα και κατανεμημένα συστήματα", Διδακτορική Διατριβή, Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, Πολυτεχνείο Κρήτης, Χανιά, Ελλάς, 2018
https://doi.org/10.26233/heallink.tuc.77407
Σε μια εποχή πολύπλοκων δικτυωμένων ετερογενών συστημάτων, η προσομοίωση ανεξάρτητων τμημάτων, εξαρτημάτων ή χαρακτηριστικών ενός συστήματος υπό-σχεδιασμό δεν είναι μια βιώσιμη, ακριβής ή αποτελεσματική επιλογή. Εξετάζοντας κάθε τμήμα ενός συστήματος με απομονωμένο τρόπο και λόγω των πολυάριθμων και εξαιρετικά πολύπλοκων αλληλεπιδράσεων μεταξύ των διαφόρων τμημάτων, οι δυνατότητες βελτιστοποίησης του συστήματος είναι πολύ περιορισμένες. Ένα από τα κύρια προβλήματα που αντιμετωπίζουν οι σχεδιαστές των Υψηλών Παράλληλων Συστημάτων (HPS) και των Cyber Physical Systems (CPS) είναι η έλλειψη εργαλείων προσομοίωσης και μοντέλων για τον σχεδιασμό και την ανάλυση τους. Αυτό συμβαίνει κυρίως επειδή η πλειοψηφία των υφιστάμενων εργαλείων προσομοίωσης μπορεί να χειριστεί αποτελεσματικά μόνο τμήματα ενός συστήματος (π.χ. μόνο την επεξεργασία ή μόνο το δίκτυο). Επιπλέον, οι περισσότεροι από τους υφιστάμενους προσομοιωτές χρειάζονται αρκετούς πόρους επεξεργασίας, ενώ ταχύτερες προσεγγίσεις δεν μπορούν να παρέχουν την απαιτούμενη ακρίβεια.Επιπλέον, η αυξανόμενη χρήση επιταχυντών υλικού (hardware accelerators) σε ενσωματωμένα συστήματα (π.χ. κινητά τηλέφωνα) και σε συστήματα υψηλής τεχνολογίας (π.χ. συστήματα HPC / Cloud) ενεργοποιεί μια επείγουσα ζήτηση εργαλείων προσομοίωσης που μπορούν να προσομοιώσουν με ολοκληρωμένο τρόπο όλα τα τμήματα (δηλαδή επεξεργαστές, μνήμες, δίκτυα, επιταχυντές υλικού) ενός συστήματος υπο-σχεδιασμό (SuD). Με τη χρήση τέτοιων συστημάτων, ο σχεδιασμός του λογισμικού μπορεί να προχωρήσει παράλληλα με την ανάπτυξη υλικού, γεγονός που θα έχει ως αποτέλεσμα τη μείωση του τόσο σημαντικού χρόνου παραγωγής/διάθεσης στην την αγορά. Το κύριο πρόβλημα, ωστόσο, είναι ότι τέτοια συστήματα δεν υπάρχουν, καθώς οι περισσότεροι προσομοιωτές που χρησιμοποιούνται για τη μοντελοποίηση των εφαρμογών των χρηστών (δηλαδή πλήρους συστήματος CPU / Mem / Peripheral) στερούνται οποιασδήποτε υποστήριξης για επιταχυντές υλικού προσαρμοσμένες στις ανάγκες τους.Στην παρούσα διατριβή παρουσιάζουμε το περιβάλλον (framework) προσομοίωσης COSSIM που είναι ο πρώτος γνωστός προσομοιωτής ανοικτού κώδικα υψηλής απόδοσης που μπορεί να χειριστεί ολιστικά ένα σύστημα-συστημάτων συμπεριλαμβανομένων των επεξεργαστών, περιφερειακών και δικτύων. Μια τέτοια προσέγγιση είναι πολύ ελκυστική τόσο για τους σχεδιαστές HPC όσο και για CPS και τους προγραμματιστές εφαρμογών. Στο πλαίσιο του COSSIM, αναπτύσσεται ένα νέο σύστημα αλληλοεπικοινωνίας και συγχρονισμού το οποίο είναι πλήρως συμβατό με το πρότυπο IEEE HLA. Επιπλέον, η ολοκληρωμένη προσέγγιση μας αυξάνεται περαιτέρω με την υποστήριξη ακριβής εκτίμησης κατανάλωσης ενέργειας που μπορεί να αξιοποιηθεί σε όλα τα στοιχεία του συστήματος και να εκτελέσει ανάλυση του συνολικού συστήματος υπό σχεδιασμό κάτι που ήταν ανέφικτο μέχρι τώρα.Επιπλέον, παρουσιάζουμε το ACSIM framework που είναι ο πρώτος γνωστός προσομοιωτής ανοικτού κώδικα και υψηλής απόδοσης που μπορεί να χειριστεί ολιστικά ένα σύστημα συστημάτων, συμπεριλαμβανομένων των επεξεργαστών, των περιφερειακών, των δικτύων και των επιταχυντών. Το ACSIM είναι μια επέκταση του COSSIM και ενσωματώνει, με καινοτόμο και αποδοτικό τρόπο, ένα προσομοιωτή συστήματος (processing simulator), δικτύου (network simulator) και ένα προσομοιωτή για επιταχυντές υλικού (SystemC accelerators), με διαφάνεια προς το τελικό χρήστη. Τέλος, αναπτύχθηκε ένα εξελιγμένο γραφικό περιβάλλον (GUI) για εύκολη ρύθμιση της προσομοίωσης, εκτέλεση και απεικόνιση των αποτελεσμάτων.Το COSSIM και το ACSIM έχουν αξιολογηθεί εκτελώντας ένα μεγάλο αριθμό πραγματικών εφαρμογών. Τα τελικά αποτελέσματα επιβεβαιώνουν ότι η πρωτεινόμενη προσέγγιση έχει ακρίβεια μέχρι 99% (σε σύγκριση με τα πραγματικά συστήματα που μετρήθηκαν), ενώ ο συνολικός χρόνος προσομοίωσης μπορεί να επιταχυνθεί σχεδόν γραμμικά με τον αριθμό επεξεργαστών που χρησιμοποιούνται από τον προσομοιωτή. Τέλος, η παρουσιαζόμενη διασύνδεση μεταξύ των επεξεργαστών επεξεργασίας (Processing) και του συστήματος SystemC (ACSIM) είναι τάξεις μεγέθους αποδοτικότερη από τις υπάρχουσες λύσεις, ενώ το προτεινόμενο framework μπορεί να προσομοιώνει αποτελεσματικά έως και αρκετές εκατοντάδες κόμβων επεξεργασίας με επιταχυντές υλικού διασυνδεδεμένους μεταξύ τους, με πλήρη κατανεμημένο τρόπο.