Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
1
Konstruktion sehr großer Suffixbäume
Michael Höhndorf Steffen Andre
2
Übersicht Probleme mit Suffixbäumen Lösungsansätze
Verschiedene Algorithmen Hunt Top-Q TDD Vergleich
3
Problem Suffixbaum Hoher Speicherbedarf
Zeitaufwendige Konstruktion bei großen Eingabestrings, da Konstruktion im RAM nicht möglich Häufige Sprünge im Speicher Memory Bottleneck
4
Lösungsansätze Suffixbaumkonstruktionen plattenfreundlich gestalten
Hunt TDD Bufferstrategie ändern Top-Q
5
Hunt/ Atkinson/ Irving
Konstruktion per Platte Vorher nur Suffixbäume kleiner als RAM Tausch von O(n) gegen locality of access Verzichtet auf Suffixlinks O(n2) Durchschnitt: O(n*logn)
6
Top-Q (Bedathur/ Haritsa)
Benutzt Ukkonnen-Algorithmus Neue Pagingstartegie
7
TDD Von Tata/Hankins/Patel Top down disk based
Besonderheit: “locality of reference” Übertrifft alle bisherigen Ansätze Unterteilung in zwei Phasen PWOTD (Konstruktion des Suffixbaumes) Bufferstrategie
8
PWOTD Partition and Write Only Top Down Unterteilung in zwei Schritte
Partitionierung Wotdeager Komplexität: Worst Case: O(n2) Average Case O(n*logn)
9
Repräsentation String: ATTAGTACA
10
Partitionierung Alphabet: Σ Prefixlen: Tiefe der Partitionierung
Suffixe in |Σ|prefixlen Partitionen teilen Für jede Partition Suffixbaum erstellen Suffixbäume zusammenfügen Im Beispiel: T={2,3,6}
11
Wotdeager Benutzt 4 Datenstrukturen Input String Array Suffixes Array
Temp Array Tree Array
12
Algorithmus
13
Bufferstrategie Optimale Ersetzungsstrategie für die vier Datenstrukturen finden verfügbaren RAM zwischen den vier Datenstrukturen aufteilen, um den größtmöglichen Gewinn zu erreichen
14
Bufferstrategie
15
Bufferstrategie String Suffixes-Array Größe: n
Ersetzungsstrategie: LRU Schlechteste „locality of reference“ Suffixes-Array Größe: 4n
16
Bufferstrategie Temp Array Tree-Array Größe: 4n
Ersetzungsstrategie: MRU Tree-Array Größte von allen Größe: 8-12n Ersetzungsstrategie: LRU Hohe „locality of reference“
17
Buffermanagement
18
Bufferstrategie Aufteilung des Hauptspeichers
Suffixes/Temp benötigt mindestens |Σ| Seiten Tree benötigt mindestens 2 Seiten Eingabestring wird wenn möglich komplett in den Speicher übernommen Wenn noch Platz im Hauptspeicher ist wird dieser an Suffixes, Temp, Tree vergeben
19
Bufferstrategie
20
TDD vs. Ukkonen
21
TDD vs. Ukkonen TDD bei größeren Alphabeten zunehmend besser als Ukkonen Bei kleinen Alphabeten (demelano) Faktor 2.5 Bei mittleren Alphabeten (swp20) Faktor 4.5 Bei großen Alphabeten (unif40) Faktor 10 Trotz O(n2) meist besser, da locality of reference Ukkonen’s Algorithmus hat viele cache misses (Bei modernen Rechnern)
22
TDD vs. Hunt
23
TDD vs Hunt TDD in jedem Fall bedeutend besser
Bei kleinen Alphabeten (H Chr1) Faktor 5.5 Bei mittleren Alphabeten (TrEMBL) Faktor 7.4 Bei großen Alphabeten (guten) Faktor 9.9 Hunt viele Sprünge bei Konstruktion TDD berührt jeden Knoten nur einmal
24
TDD vs. TopQ Test mit 50Mbp de Human Chromosom-I
TopQ 78min TDD unetr gleichen Umständen nur 2,1min TDD um Faktor 37 schneller Test auf gesamtem Chromosom TopQ 5800min TDD 18min
25
FRAGEN???
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.