κατασκευής δέντρου επιθεμάτων σε Hadoop MapReduce Αλέξανδρος Κωνσταντινάκης - Κάρμης Εργαστήριο Βάσεων Δεδομένων - Εθνικό Μετσόβιο Πολυτεχνείο 12 Ιουλίου 2010
Βιολογικό Υλικό Εισαγωγή Βιολογικό Υλικό Δέντρα επιθεμάτων Τεχνικές κατασκευής Αλγόριθμος του Ukkonen Αλγόριθμος Trellis Hadoop MapReduce
Δέντρα επιθεμάτων Εισαγωγή Βιολογικό Υλικό Δέντρα επιθεμάτων Τεχνικές κατασκευής Αλγόριθμος του Ukkonen Αλγόριθμος Trellis Hadoop MapReduce Η συμβολοσειρά BANANA, τα επιθέματα της σε αντιστοίχιση με τις θέσεις που εμφανίζονται και το αντίστοιχο δέντρο επιθεμάτων
Τεχνικές κατασκευής Εισαγωγή Βιολογικό Υλικό Δέντρα επιθεμάτων Τεχνικές κατασκευής Αλγόριθμος του Ukkonen Αλγόριθμος Trellis Hadoop MapReduce
Αλγόριθμος του Ukkonen Εισαγωγή Βιολογικό Υλικό Δέντρα επιθεμάτων Τεχνικές κατασκευής Αλγόριθμος του Ukkonen Αλγόριθμος Trellis Hadoop MapReduce n φάσεις, μία για κάθε χαρακτήρα της εισόδου j επεκτάσεις, μία για κάθε επίθεμα του δέντρου βασικός αλγόριθμος: O(n 3 ) χρόνος, O(n 2 ) χώρος έξυπνες τεχνικές δίνουν O(n) χρόνο και χώρο
Αλγόριθμος Trellis Εισαγωγή Βιολογικό Υλικό Δέντρα επιθεμάτων Τεχνικές κατασκευής Αλγόριθμος του Ukkonen Αλγόριθμος Trellis Hadoop MapReduce p συχνότητα < t? τελική λίστα p p για έλεγχο AAAA Ναι AAAA AAAC Όχι AAAC{A,C,G,T} AAAG... AAAT...... AAAAA AAAAC AAAAG AAAAT...
Αλγόριθμος Trellis Εισαγωγή Βιολογικό Υλικό Δέντρα επιθεμάτων Τεχνικές κατασκευής Αλγόριθμος του Ukkonen Αλγόριθμος Trellis Hadoop MapReduce Το t διασφαλίζει ότι ένα δέντρο επιθεμάτων με t φύλλα χωράει σίγουρα στη μνήμη.
Hadoop MapReduce Εισαγωγή Βιολογικό Υλικό Δέντρα επιθεμάτων Τεχνικές κατασκευής Αλγόριθμος του Ukkonen Αλγόριθμος Trellis Hadoop MapReduce Το MapReduce είναι Turing Complete. Map :: (key1, value1) list(key2, value2) Reduce :: (key2, list(value2)) list(value3)
Hadoop MapReduce Εισαγωγή Βιολογικό Υλικό Δέντρα επιθεμάτων Τεχνικές κατασκευής Αλγόριθμος του Ukkonen Αλγόριθμος Trellis αρχεία εισόδου split 1 split 2 split 3 split 4 Hadoop MapReduce mapper 1 mapper 2 mapper 3 mapper 4 map(κλειδί1,τιμή1) map(κλειδί1,τιμή1) map(κλειδί2,τιμή2) map(κλειδί2,τιμή2)...... write to disk map(κλειδί1,τιμή1) map(κλειδί1,τιμή1) map(κλειδί2,τιμή2) map(κλειδί2,τιμή2)...... write to disk remote read remote read reducer 1 reducer 2 reduce(κλειδί1,[τιμή1,τιμή2,...]) reduce(κλειδί2,[τιμή1,τιμή2,...]) reduce(κλειδί3,[τιμή1,τιμή2,...]) reduce(κλειδί4,[τιμή1,τιμή2,...]) αρχείο εξόδου 1 αρχείο εξόδου 2
Αρχική Ιδέα Αρχική Ιδέα Κατασκευή προθεματικών υποδέντρων Συγχώνευση υποδέντρων σε δέντρα split 1 split 2... split m mapper 1 mapper 2 mapper m p1 p2 pj p1 p2 pj p1 p2 pj Η φάση map του προγράμματος, η είσοδος χωρίζεται σε κομμάτια και από το κάθε κομμάτι παράγονται υποδέντρα, ένα για κάθε πρόθεμα.
Αρχική Ιδέα Αρχική Ιδέα Κατασκευή προθεματικών υποδέντρων Συγχώνευση υποδέντρων σε δέντρα p1 p1 p1 p2 p2 p2 pj pj pj reducer 1 reducer 2 reducer j p1 p2 pj Η φάση reduce του προγράμματος, τα υποδέντρα με το ίδιο πρόθεμα ενώνονται σε προθεματικά δέντρα.
Απλός αλγόριθμος Αρχική Ιδέα Κατασκευή προθεματικών υποδέντρων Συγχώνευση υποδέντρων σε δέντρα
Aλγόριθμος Ukkonen Αρχική Ιδέα Κατασκευή προθεματικών υποδέντρων Συγχώνευση υποδέντρων σε δέντρα
Συγχώνευση υποδέντρων σε δέντρα Αρχική Ιδέα Κατασκευή προθεματικών υποδέντρων Συγχώνευση υποδέντρων σε δέντρα MAIN TMP AACGT AACGT GA TAA... GA TAG... A... A... T... Τρεις περιπτώσεις για τη συνάρτηση συγχώνευσης μεταξύ κύριου και προσωρινού δέντρου. Η φάση συγχώνευσης απαιτεί όλη την ακολουθία εισόδου φορτωμένη στη μνήμη!
Υπολογισμός Προθεμάτων Αρχική Ιδέα Κατασκευή προθεματικών υποδέντρων Συγχώνευση υποδέντρων σε δέντρα Εξάρτηση δεδομένων
Σύστημα μετρήσεων Σύστημα μετρήσεων Απόδοση για μικρές εισόδους Απόδοση για μεγάλες εισόδους Απόδοση Trellis Απόδοση για πλήθος κόμβων Αύξηση απόδοσης λόγω παράλληλης επεξεργασίας Μείωση απόδοσης λόγω αρχικής μεταφοράς δεδομένων και ενδιάμεσης φάσης Shuffle # splits είσοδος map απαιτήσεις μνήμης tmap # splits ενδιάμεσα δεδομένα # ενδιάμεσων εγγραφών t reduce = t total =?
Απόδοση για μικρές εισόδους Υπόβαθρο ολικός χρόνος - απλός αλγόριθμος 2500 Σύστημα μετρήσεων 2000 Απόδοση για μικρές εισόδους Απόδοση για μεγάλες εισόδους Απόδοση Trellis χρόνος (s) 1500 1000 1 Task/Node 2 Tasks/Node 4 Tasks/Node 8 Tasks/Node Απόδοση για πλήθος n Tasks κόμβων 500 0 128 256 512 είσοδος (MB) ολικός χρόνος - αλγόριθμος Ukkonen 1800 1600 1400 1200 χρόνος (s) 1000 800 n/2 Tasks n Tasks 2n Tasks 600 400 200 0 128 256 512 είσοδος (MB)
Σύστημα μετρήσεων Απόδοση για μικρές εισόδους Απόδοση για μεγάλες εισόδους Απόδοση Trellis Απόδοση για πλήθος κόμβων χρόνος (s) 60000 50000 40000 30000 20000 Απόδοση για μεγάλες εισόδους συνολικός χρόνος απλός ukkonen 10000 0 0 1024 2048 3072 4096 5120 6144 7168 8192 είσοδος (MB) χρόνος map 50000 40000 χρόνος (s) 30000 20000 απλός ukkonen 10000 0 0 1024 2048 3072 4096 5120 6144 7168 8192 είσοδος (MB)
Απόδοση Trellis Σύστημα μετρήσεων Απόδοση για μικρές εισόδους Απόδοση για μεγάλες εισόδους Απόδοση Trellis Απόδοση για πλήθος κόμβων
Απόδοση για πλήθος κόμβων Σύστημα μετρήσεων Απόδοση για μικρές εισόδους Απόδοση για μεγάλες εισόδους Απόδοση Trellis Απόδοση για πλήθος κόμβων χρόνος (s) 8000 7000 6000 5000 4000 3000 2000 1000 0 6000 απλός αλγόριθμος 3 6 9 12 πλήθος κόμβων αλγόριθμος Ukkonen 128MB 256MB 512MB 1024MB 5000 χρόνος (s) 4000 3000 2000 128MB 256MB 512MB 1024MB 1000 0 3 6 9 12 πλήθος κόμβων
Η διαδικασία του χωρισμού των δέντρων επιθεμάτων σε προθεματικά δέντρα ακυρώνει τους συνδέσμους επιθέματος. Το Trellis τους ανακτά σε ένα επιπλέον στάδιο, προαιρετικά. Για να ανακτηθούν οι σύνδεσμοι επιθέματος πρέπει τοπικά να υπάρχουν όλα τα άλλα προθεματικά δέντρα.
Ερωτήσεις;