600 likes | 837 Views
Πολυτεχνείο Κρήτης Τμήμα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Διπλωματική Εργασία Μελέτη, σχεδίαση και υλοποίηση αλγορίθμου κατασκευής φυλογενετικών δέντρων σε πλατφόρμα βασισμένη σε αναδιατασσόμενη λογική. Αντρέας Κουκκουλλής Επιτροπή: Καθ. Απόστολος Δόλλας (Επιβλέπων)
E N D
Πολυτεχνείο ΚρήτηςΤμήμα Ηλεκτρονικών Μηχανικών και Μηχανικών ΥπολογιστώνΔιπλωματική ΕργασίαΜελέτη, σχεδίαση και υλοποίηση αλγορίθμου κατασκευής φυλογενετικών δέντρων σε πλατφόρμα βασισμένη σε αναδιατασσόμενη λογική Αντρέας Κουκκουλλής Επιτροπή: Καθ. Απόστολος Δόλλας (Επιβλέπων) Καθ. Διονύσιος Πνευματικάτος Αν. Καθ. Ιωάννης Παπαευσταθίου
Περιεχόμενα • Εισαγωγή στην εξέλιξητων ειδών • 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 ..) • Δεν υπάρχει παραλληλισμός !!