Αντρέας Κουκκουλλής Επιτροπή: Καθ. Απόστολος Δόλλας (Επιβλέπων) Καθ. Διονύσιος Πνευματικάτος
Πολυτεχνείο Κρήτης Τμήμα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Διπλωματική Εργασία Μελέτη, σχεδίαση και υλοποίηση αλγορίθμου κατασκευής φυλογενετικών δέντρων σε πλατφόρμα βασισμένη σε αναδιατασσόμενη λογική. Αντρέας Κουκκουλλής Επιτροπή: Καθ. Απόστολος Δόλλας (Επιβλέπων)
Αντρέας Κουκκουλλής Επιτροπή: Καθ. Απόστολος Δόλλας (Επιβλέπων) Καθ. Διονύσιος Πνευματικάτος
E N D
Presentation Transcript
Πολυτεχνείο ΚρήτηςΤμήμα Ηλεκτρονικών Μηχανικών και Μηχανικών ΥπολογιστώνΔιπλωματική ΕργασίαΜελέτη, σχεδίαση και υλοποίηση αλγορίθμου κατασκευής φυλογενετικών δέντρων σε πλατφόρμα βασισμένη σε αναδιατασσόμενη λογική Αντρέας Κουκκουλλής Επιτροπή: Καθ. Απόστολος Δόλλας (Επιβλέπων) Καθ. Διονύσιος Πνευματικάτος Αν. Καθ. Ιωάννης Παπαευσταθίου
Περιεχόμενα • Εισαγωγή στην εξέλιξητων ειδών • RAxML • Impulse C και Convey • Υλοποίηση • Αποτελέσματα • Συμπεράσματα
Κίνητρο • Ο υπολογισμός της μέγιστης πιθανοφάνειας είναι χρονοβόρος(>90% του συνολικού χρόνου εκτέλεσης). • Υλοποίηση σε πλατφόρμα αναδιατασσόμενης λογικής για να επιτύχουμε επιτάχυνση του υπολογισμού με την χρήση του εργαλείου Impulse C.
Συνεισφορά εργασίας • Μελέτη RAxML και αλγοριθμική χρονική ανάλυση της Software υλοποίησης • Μελέτη και δοκιμή του εργαλείου Impulse C • Υλοποίηση και σχεδίαση της Μεθόδου Μέγιστης Πιθανοφάνειας με το Impulse C • Σύνδεση και εκτέλεση της υλοποίησης στην πλατφόρμα Convey
Περιεχόμενα • Εισαγωγή στην εξέλιξη των ειδών • RAxML • Impulse C και Convey • Υλοποίηση • Αποτελέσματα • Συμπεράσματα
Εξελικτική Βιολογία • Η διαδικασία με την οποία οι οργανισμοί έχουν εξελιχθεί εδώ και 4.5 δισ. χρόνια • Το δέντρο της ζωής
Υπολογιστική Φυλογενετική • Εφαρμογή αλγορίθμων για φυλογενετικές αναλύσεις • Σύνθεση Φυλογενετικού δέντρου που παρουσιάζει την εξελικτική σχέση των ειδών
Τι είναι τα φυλογενετικά δέντρα • Διάγραμμα που απεικονίζει τις γραμμές τις εξέλιξης των ειδών, οργανισμών ή γονιδίων από ένα κοινό πρόγονο.
Τύποι φυλογενετικών δέντρων • Οι αριθμοί των πιθανών δέντρων υπολογίζονται από τους τύπους • Μόνο ένα δέντρο παρουσιάζει την πραγματική εξελικτική πορεία
Μέθοδοι κατασκευής δέντρων • Παρουσία ή απουσία χαρακτηριστικών • Μέγιστη πιθανοφάνεια (Maximum likelihood) • maximum parsimony • Bayesian analysis • Κατηγορίες μητρών απόστασης • UPGMA • Fitch-Margoliash • neighbor joining
Σχετικές εργασίες HW • N. Alachiotis: "Analysis, Design, and Implementation of the Phylogenetic Likelihood Function on Reconfigurable Logic", Technical University of Crete (2008) • N. Alachiotis, E. Sotiriades, A. Dollas, A. Stamatakis: "A Reconfigurable Architecture for the Phylogenetic Likelihood Function". FPL 2009, Prague, Czech Republic, September 2009 • N. Alachiotis: "Algorithms and Computer Architectures for Evolutionary Bioinformatics", Ph.D. thesis, TechnischeUniversitätMünchen, Germany, November 2012
Σχετικές εργασίες SW • Exelixis lab • RAxML light • SSE3 version • AVX version • MPI version • Multithread version
Περιεχόμενα • Εισαγωγή στην εξέλιξη των ειδών • RAxML • Impulse C και Convey • Υλοποίηση • Αποτελέσματα • Συμπεράσματα
Το πρόγραμμα RAxML • Random Accelerated Maximum Likelihood • Φυλογενετικός κώδικας • Μεγάλης κλίμακας φυλογενετικές αναλύσεις • Μέθοδος Μέγιστης Πιθανοφάνειας.
Το πρόγραμμα RAxML • Αρχείο εισόδου με taxa • Προσπάθεια παραγωγής βέλτιστης τοπολογίας.
Το πρόγραμμα RAxML • Βασικά μέρη του αλγορίθμου.
Το πρόγραμμα RAxML • Αποτελέσματα εκτέλεσης • (Seal,(Whale,((Mouse,Rat),(Human,(Chicken,(Frog,(Carp,Loach)))))),Cow);
Profiling • gprofκαι V-Τune • Ανάλυση πολλώνλειτουργιών • Σταθερό dataset εισόδου • 10 διαφορετικά πειράματα-εκτελέσεις
Profiling Χρόνος sec Λειτουργίες
Profiling • Στις περισσότερες χρήσεις/αλγόριθμους τα αποτελέσματα ήταν τα ίδια
Συνάρτηση ενδιαφέροντος • Όπως έχουμε δει στο profiling η συνάρτηση που καταναλώνει το μεγαλύτερο ποσοστό του χρόνου είναι η newviewGTRGAMMA() • Υπολογίζει το βαθμός πιθανοφάνειας του δέντρου • Ο(n) – Ανάλογο του alignment pattern
Profiling % χρόνου Λειτουργίες
Profiling Χρόνος sec Λειτουργίες
Περιεχόμενα • Εισαγωγή στην εξέλιξη των ειδών • RAxML • Impulse C και Convey • Υλοποίηση • Αποτελέσματα • Συμπεράσματα
Impulse C και Convey • Το εργαλείο παράγει αυτόματα το HW σε VHDL • Παράγει τo SWinterface • Παράγει όλα τα απαραίτητα αρχεία για την σύνδεση SW και HW
Περιεχόμενα • Εισαγωγή στην εξέλιξη • RAxML • Impulse C και Convey • Υλοποίηση • Αποτελέσματα • Συμπεράσματα
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας CPU Convey CPU
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Η συνάρτηση αποτελείται από τρία cases. Σε κάθε κλήση εκτελείτε μόνο το ένα.
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Δέχεται pointers σαν ορίσματα • Μεταφορά στο HW μέσω της μνήμης
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • 2 Διαδικασίες • Μνήμη • 2 stream εισόδου/ 1 stream εξόδου
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Δημιουργήθηκε η SW συνάρτηση, για να στέλνει τα δεδομένα στο HW και να λαμβάνει τα αποτελέσματα. ProducerConsumer
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Ξαναγράφτηκε το κομμάτι που θέλουμε να υλοποιήσουμε σε HW με την γλώσσα Impulse C. ProducerConsumer
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Η μνήμη μεταφέρει τα δεδομένα στο HW και δέχεται τα αποτελέσματα πίσω • Shared μνήμη ProducerConsumer
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Επικοινωνία μεταξύ διαδικασιώνμέσω streams ProducerConsumer
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Εγγραφή μνήμης από SW • Ανάγνωση μνήμης από HW • Υπολογισμός Πιθανοφάνειας • Εγγραφή μνήμης από HW • Ανάγνωση μνήμης από SW Write mem/SW Read mem/HW Execute/HW Write mem/HW Read mem/SW
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Πρώτη υλοποίηση-Επιβεβαίωση Ορθής λειτουργίας • Για συγκεκριμένο αρχείο εισόδου • Ορθά αποτελέσματα Simulation, παραγωγή HDL κώδικα και απαραίτητων αρχείων για την εκτέλεση στο Convey. • Εκτέλεση στο Convey με σωστά αποτελέσματα.
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Σύνδεση με το RAxML • Αλλαγή Makefile • Link αρχείων Impulse C • Το SW interface δεν χρειάζεται να αλλάξει αν αλλάξει η υλοποίηση, εκτός αν αλλάξει ο τρόπος εγγραφής και ανάγνωσης της μνήμης.
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Δεύτερη υλοποίηση-Αποτύπωση ολόκληρου του RAxML • Προσθήκη pipeline και loop unroll • Χρήση 100% μνήμης • Παραμετροποίηση για να δέχεται διάφορα αρχεία εισόδου
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Αλλαγή στον τρόπο που διαβάζονται τα δεδομένα από την μνήμη
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Δεύτερη υλοποίηση • Λάθος αποτελέσματα στην εκτέλεση στο Convey • Μείωση απόδοσης λόγω pipeline και loop unrolling • Λάθος διαχείριση μνήμης • Κακό mapping
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Δεύτερη υλοποίηση – Βελτιώσεις • Μείωση της μνήμης • Περιορισμός του pipeline και unroll • Προσθήκη επιπλέων registers για μείωση των προβλημάτων συγχρονισμού
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Με την σχεδίαση αυτή έχει λυθεί το πρόβλημα χρονισμού που παρουσιάστηκε στην αρχή, αλλά το μέγεθος του αρχείου εισόδου περιορίζεται λόγο του περιορισμού της διαθέσιμης μνήμης (BRAM).
Υλοποίηση συνάρτησης Μέγιστης πιθανοφάνειας • Αντί να κάνουμε μια κλήση στο HW με όλα τα δεδομένα, κάνουμε δύο κλήσεις με τα μισά δεδομένα στην κάθε μια. • Αλλαγή μόνο στο SW, δεν αλλάζει η υλοποίηση. • Περισσότερες κλήσεις HW
Περιεχόμενα • Εισαγωγή στην εξέλιξη των ειδών • RAxML • Impulse C και Convey • Υλοποίηση • Αποτελέσματα • Συμπεράσματα
Αποτελέσματα • Πόροιστο Convey • Clock’s frequency rate 150 MHz
Αποτελέσματα • Ο υπολογισμός του χρόνου που απαιτείται για την εκτέλεση της συνάρτησης έγινε συνυπολογίζοντας τον χρόνο του I/O • Σύγκριση με την SW Εκτέλεση σε Core 2 Duo στα 2 GHz με 4 GB RAM
Αποτελέσματα Speed down Αλγόριθμος
Αποτελέσματα • Μεγάλος αριθμός δεδομένων εισόδου-εξόδου • Το Impulse C απαιτεί πολλές κλήσεις στον συνεπεξεργάστη (streams, memory ..) • Δεν υπάρχει παραλληλισμός !!