EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA Διδάσκοντες:Μακρής Χρήστος Βοηθητικό υλικό: Αντωνέλης Παναγιώτης

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Advertisements

Indexing.
Δομές Δεδομένων και Αλγόριθμοι
1 ΥΠΟΛΟΓΙΣΤΙΚΉ ΓΕΩΜΕΤΡΊΑ. 2 Πρόβλημα:  Δυναμική διατήρηση N διαστημάτων με διαφορετικά ανά δύο σημεία αρχής και τέλους (σύνορα) έτσι ώστε να απαντάμε.
Λειτουργικό Σύστημα 2ο μέρος.
Τεχνολογία Δικτύων Επικοινωνιών
Κατανομή με ευρετήριο.
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
Εισαγωγή στους Η/Υ Πίνακες.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
ΠΡΟΗΓΜΕΝΗ ΕΥΡΕΤΗΡΙΑΣΗ ΔΕΔΟΜΕΝΩΝ Ταξινόμηση – Αναζήτηση.
Κατακερματισμός Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Δυναμικός Κατακερματισμός.
Δομές Αναζήτησης TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: AA A A A εισαγωγή αναζήτησηεπιλογή διατεταγμένος πίνακας.
 Αυδίκου Χριστίνα  Γιουμούκης Παναγιώτης  Κιντσάκης Θάνος  Πάπιστας Γιάννης.
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Κοντινότεροι Κοινοί Πρόγονοι α βγ θ δεζ η π ν ι κλμ ρσ τ κκπ(λ,ι)=α, κκπ(τ,σ)=ν, κκπ(λ,π)=η κκπ(π,σ)=γ, κκπ(ξ,ο)=κ ξο κκπ(ι,ξ)=β, κκπ(τ,θ)=θ, κκπ(ο,μ)=α.
Διαίρει-και-Βασίλευε
Ευρετήρια. 2 Πρωτεύον ευρετήριο (primary index): ορισμένο στο κλειδί διάταξης του αρχείου Δευτερεύον ευρετήριο (secondary index): ορισμένο σε πεδία διαφορετικά.
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων. Πίνακας Συμβόλων (Symbol Table) (Ι)  Είναι μια δομή στην οποία αποθηκεύονται τα ονόματα ενός προγράμματος και.
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
ΘΠ06 - Μεταγλωττιστές Πίνακας Συμβόλων Φροντιστήριο - 30/04/2009.
Δομές Δεδομένων.
Ενεργή επιλογή αλγορίθμου, Active Algorithm Selection, Feilong Chen and Rong Jin Εύα Σιταρίδη.
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Μοντέλα - Αλγόριθμοι – Ταξινόμηση Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
Αναζήτηση – Δέντρα (2 ο Μέρος) Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός – Hashing (1 ο Μέρος)
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
A Scalable Content-Addressable Network Μυρτώ Ντέτσικα Παναγιώτα Νικολαΐδου Ελένη Γεώργα Λαμπρινή Κώνστα Βαγγέλης Λάππας Γρηγόρης Τζώρτζης Γιώργος Καρπάθιος.
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ §3.7 ΤΑΞΙΝΟΜΗΣΗ
Θεωρία Βασικών Δομών Δεδομένων Διδάσκοντες:Μακρής Χρήστος, Τσακαλίδης Αθανάσιος
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Επεξεργασία Ερωτήσεων.
ΚΕΦΑΛΑΙΟ Τι είναι αλγόριθμος
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Επεξεργασία Ερωτήσεων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Οργάνωση Αρχείων.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Ευρετήρια.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Επεξεργασία Ερωτήσεων.
Διάλεξη 14: Εισαγωγή στη ροή ρευστών
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Ροές Δεδομένων (3 ο Μέρος)
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πίνακας Συμβόλων Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου.
Δομές δεδομένων και Αλγόριθμοι Κεφάλαιο 3. Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον Δεδομένα Δεδομένα (data) Δεδομένα (data) –αφαιρετική αναπαράσταση.
1 Είδη μέσων αποθήκευσης Πρωτεύοντα μέσα αποθήκευσης κεντρική μνήμη και όλες οι υπόλοιπες μνήμες (π.χ καταχωρητές, cache memory) Δευτερεύοντα μέσα αποθήκευσης.
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
Ευρετήρια Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ
Δυναμικός Κατακερματισμός
Κατηγορίες και Προδιαγραφές Λογισμικού Η/Υ (Software)
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
Βάσεις Δεδομένων ΙΙ 7η διάλεξη
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
19η Διάλεξη Εξωτερική Αναζήτηση και Β-δέντρα Ε. Μαρκάκης
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Διαχρονικές Δομές Δεδομένων
Δυναμικός Κατακερματισμός
Δομές Δεδομένων (Data Structures)
Μεταγράφημα παρουσίασης:

EXTERNAL MEMORY ALGORITHMS AND DATA STRUCTURES: DEALING WITH MASSIVE DATA Διδάσκοντες:Μακρής Χρήστος Βοηθητικό υλικό: Αντωνέλης Παναγιώτης Διδασκαλία:Πέμπτη: 17:00-19:00 Π200

ΕΙΣΑΓΩΓΗ Μεγάλες εφαρμογές με μεγάλο όγκο δεδομένων Δεν χωράνε στην κύρια μνήμη (RAM) Αλγόριθμοι για επεξεργασία δεδομένων στην εξωτερική μνήμη (ΕΜ) Δομές δεδομένων, επιστημονικός υπολογισμός, διαχείριση βάσεων δεδομένων, ανάκτηση πληροφορίας, υπολογιστική πολυπλοκότητα κτλ.

ΕΙΣΑΓΩΓΗ Είδη προβλημάτων – Batch προβλήματα Δεν γίνεται προεπεξεργασία στα δεδομένα Επεξεργασία σε ένα ή περισσότερα περάσματα στην κύρια μνήμη – Online προβλήματα Ερωτήσεις πάνω στα δεδομένα Διαχωρισμός σε μικρές ομάδες Σε κάθε ερώτηση, μόνο κάποιες ομάδες χρειάζεται να επεξεργασθούν

PDM ΜΟΝΤΕΛΟ Για τον έλεγχο της αξιοπιστίας και της απόδοσης των ΕΜ αλγορίθμων χρειάζεται ένα αντίστοιχο μοντέλο Η ανάγνωση / εγγραφή σε μαγνητικούς δίσκους απαιτεί μια σειρά ενεργειών όπως εύρεση του track, περιστροφή του δίσκου κτλ. Επιπλέον, τα δεδομένα δεν μεταφέρονται ένα-ένα αλλά σε blocks με μέγεθος που ποικίλει, αλλά συνήθως είναι γύρω στα 8Κb. Το PDM μοντέλο θα πρέπει να εξομοιώνει όλες αυτές τις συνθήκες και παραμέτρους

PDM MONTEΛΟ Παράμετροι: – Ν – Ν. μέγεθος των δεδομένων (σε αντικείμενα) – Μ – Μ. μέγεθος της κύριας μνήμης (σε αντικείμενα) – Β – Β. μέγεθος του block μεταφοράς (σε αντικείμενα) – D. – D. αριθμός των ανεξάρτητων δίσκων – P. – P. αριθμός CPU’s Ισχύει: Μ < Ν και 1 ≤ DB ≤ M/2. Σε online προβλήματα έχουμε άλλες δύο παραμέτρους: – Q. – Q. αριθμός ερωτήσεων – Ζ. – Ζ. μέγεθος της απάντησης σε μια ερώτηση (σε αντικείμενα)

PDM ΜΟΝΤΕΛΟ Συνήθως είναι βολικό να αναφερόμαστε σε κάποιες από αυτές τις παραμέτρους σε μονάδες δεδομένων block, οπότε έχουμε – n = N/B – m = M/B – q = Q/B – z = Z/B Αν θεωρήσουμε ότι τα δεδομένα είναι ομοιόμορφα κατανεμημένα σε λωρίδες (stripes) στους δίσκους, τότε Ν δεδομένα μπορούν να αναγνωσθούν ή να εγγραφούν σε Ο(n/D) I/Os που είναι βέλτιστο Τρόποι μέτρησης της απόδοσης – Αριθμός Ι/Οs – Χώρος του δίσκου που χρησιμοποιείται – Χρόνος υπολογισμού που απαιτείται

ΒΑΣΙΚΕΣ I/O ΛΕΙΤΟΥΡΓΙΕΣ Βασικές πράξεις – Scan – Scan N αντικειμένων – Ταξινόμηση – Ταξινόμηση ενός αρχείο Ν αντικειμένων – Αναζήτηση – Αναζήτηση online ανάμεσα σε Ν αντικείμενα – Έξοδος – Έξοδος των Ζ απαντήσεων μιας ερώτησης με συγκεκριμένη κατανοητή μορφή

ΟΡΙΑ

ΕΚΜΕΤΑΛΛΕΥΣΗ ΤΗΣ ΤΟΠΙΚΟΤΗΤΑΣ Το κλειδί για την ανάπτυξη αποδοτικών ΕΜ αλγορίθμων είναι ο σχεδιασμός τους με τέτοιο τρόπο ώστε να προσπελαύνουν τα δεδομένα με μεγάλο βαθμό τοπικότητας Το βέλτιστο είναι και τα B αντικείμενα ενός block που προσπελαύνονται σε ένα Ι/Ο να είναι χρήσιμα και απαραίτητα στον αγλόριθμο

ΤΟΠΙΚΟΤΗΤΑ - ΑΠΛΟΣ ΔΙΣΚΟΣ Ας θεωρήσουμε το πρόβλημα της αναζήτησης. Στην κύρια μνήμη απαιτεί Ο(NlogN) CPU χρόνο Αν δεν υπήρχε η τοπικότητα, στους ΕΜ θα απαιτούσε Ο(ΝlogN) I/Os, αλλά με την εκμετάλλευση της τοπικότητα επιδιώκουμε να πετύχουμε Ο(nlog m n) Ι/Οs. Για τα online προβλήματα θέλουμε Ο(log B N+z)

DISK STRIPPING Στην περίπτωση ενός δίσκου, ο σχεδιασμός ενός βέλτιστου ΕΜ αλγορίθμου είναι σχετικά εύκολος, σε πολλαπλούς δίσκους όμως η λύση είναι σχετικά δύσκολη Χρήση disk stripping

DISK STRIPPING Οι D δίσκοι λειτουργούν ως ένας ενιαίος λογικός δίσκος με μέγεθος block DB Ένας αλγόριθμος σχεδιασμένος για απλό δίσκο με block DB μπορεί να μετατραπεί γρήγορα σε αλγόριθμο για D δίσκους με block B με χρήση disk stripping Η παραπάνω διαδικασία δίνει βέλτιστους αλγόριθμους για όλα τα κύρια προβλήματα που αναφέρθηκαν εκτός από την ταξινόμηση Αν όμως απαιτήσουμε από τους δίσκους να δρουν ανεξάρτητα, ο αλγόριθμος καταντά πολύπλοκος και μερικές φορές δεν αξίζει το κόστος αυτό είναι μεγαλύτερο

ΕΞΩΤΕΡΙΚΗ ΤΑΞΙΝΟΜΗΣΗ Τα προβλήματα της ταξινόμησης είναι από τα σημαντικότερα στον τομέα των ΕΜ προβλημάτων Όριο: Οι αλγόριθμοι χωρίζονται σε δύο κατηγορίες: – distribution – merge

DISTRIBUTION ΑΛΓΟΡΙΘΜΟΙ Επαναληπτική διαδικασία Σε κάθε βήμα ορίζουμε S-1 σημεία διαχωρισμού και με βάση τα σημεία αυτά χωρίζουμε τα αντικείμενα σε S κάδους Ταξινομούμε επαναληπτικά τους κάδους και στη συνέχεια τους ενώνουμε για να πάρουμε την τελική ταξινομημένη λίστα Πρέπει τα σημεία διαχωρισμού να είναι τέτοια ώστε οι κάδοι να έχουν σχετικά ίδιο μέγεθος Τότε, σε κάθε βήμα το μέγεθος κάθε κάδου μειώνεται κατά ένα παράγοντα Θ(S) και άρα υπάρχουν Ο(log s n) επίπεδα αναδρομής Πρέπει σε κάθε επίπεδο να δημιουργούμε τους κάδους σε Ο(n/D). Άρα αν έχουμε D>1, πρέπει τα δεδομένα να είναι ομοιόμορφα κατανεμημένα στους D δίσκους.

DISTRIBUTION ΑΛΓΟΡΙΘΜΟΙ Τεχνική partial stripping. – Οι δίσκοι χωρίζονται σε ομάδες των C δίσκων – Σε κάθε ομάδα δίσκων χρησιμοποιούμε disk stripping Αλγόριθμοι – Vitter & Shriver. Δύο τεχνικές: μία για μεγάλο N και μία για μικρό N. Η πρώτη γράφει με τυχαία σειρά τα blocks. H δεύτερη χρησιμοποιεί diagonal stripe – Nodine & Vitter. Κρατάει στατιστικά στοιχεία για το πώς έχουν κατανεμηθεί οι κάδοι στους δίσκους. Με χρήση τεχνικών εγγυάται ότι τα μεγέθη των κάδων δεν θα διαφέρουν κατά πολύ Πλεονέκτημα disk stripping. Δυνατότητα parity check.

MERGING ΑΛΓΟΡΙΘΜΟΙ Διαβάζουμε τα δεδομένα ανά memoryload. Κάθε memoryload το ταξινομούμε σε μια λίστα και την εγγράφουμε σε disk stripping. Άρα μετά το πρώτο πέρασμα έχουμε Ν/Μ λίστες. Φάση συγχώνευσης. Συγχωνεύονται ομάδες από R λίστες. Ο αριθμός των περασμάτων είναι Ο(log m n). Πρέπει κάθε φάση συγχώνευσης να γίνεται σε Ο(n/D). Αν D > 1, είναι δύσκολο γιατί τα όλα τα blocks πρέπει να βρίσκονται σε διαφορετικούς δίσκους. Οι Nodine & Vitter πρότειναν έναν βέλτιστο αλγόριθμο που δημιουργεί περίπου ταξινομημένες λίστες και στη συνέχει εφαρμόζεται ένα επιπλέον πέρασμα για διόρθωση τυχόν λαθών/

MERGING ΑΛΓΟΡΙΘΜΟΙ SRM αλγόριθμος. Κάθε λίστα γράφεται σε stripes αλλά με τυχαίο σημείο έναρξης κάθε φορά. Τυχόν blocks που δεν χρειάζονται εξαλείφονται. Στις περισσότερες περιπτώσεις είναι βέλτιστος

ΔΙΑΧΕΙΡΙΣΗ ΔΙΠΛΟΤΥΠΩΝ Σε περίπτωση που από τα N αντικείμενα, μόνο Κ < Ν έχουν διαφορετική τιμή, τότε έχουν προταθεί αποδοτικότεροι αλγόριθμοι Ο Arge πρότεινε έναν αλγόριθμο που απαιτεί Όταν τα αντικείμενα έχουν διαφορετική δευτερεύουσα πληροφορία έχουμε το πρόβλημα του bundle sorting. Αλγόριθμους σχετικούς πρότειναν οι Abello και Matias με απόδοση

ΑΝΤΙΜΕΤΑΘΕΣΗ & ΜΕΤΑΤΟΠΙΣΗ Η αντιμετάθεση αποτελεί μια ειδική περίπτωση ταξινόμησης όπου τα Ν αντικείμενα είναι στο εύρος 1..Ν Όριο Αντιμετάθεση πίνακα:

ΠΛΕΓΜΑΤΑ ΚΑΙ ΠΙΝΑΚΕΣ Οι πυκνοί πίνακες αποθηκεύονται στην κύρια μνήμη συνήθως σε row-major ή σε column-major διάταξη Η αντιμετάθεση ενός πίνακα αφορά στην μετατροπή από την μία αναπαράσταση στην άλλη Για τις περισσότερες λειτουργίες, οι αναπαραστάσεις αυτές είναι αποδοτικές. Για κάποιες άλλες όμως, όπως πολ/μο πινάκων ή διάσπαση LU είναι καλύτερη αναπαράσταση η διάσπαση των πινάκων σε τετραγωνικούς πίνακες διάστασης

ΠΛΕΓΜΑΤΑ ΚΑΙ ΠΙΝΑΚΕΣ Πολ/μος : Αν ο πίνακας είναι αραιός, έχει δηλαδή πολλά μηδενικά στοιχεία, τότε μπορεί να αποθηκευτεί και σε αραιή μορφή. Σε τέτοια περίπτωση για την αντιμετάθεση των πινάκων απαιτούνται: Θ(Sort(N z )) I/Os

BATCH ΠΡΟΒΛΗΜΑΤΑ ΣΤΗΝ ΥΠΟΛΟΓΙΣΤΙΚΗ ΓΕΩΜΕΤΡΙΑ Προβλήματα που περιέχουν μεγάλες ποσότητες γεωμετρικών δεδομένων είναι τα συστήματα GIS, γραφικά, συστήματα εικονικής πραγματικότητας και spatial βάσεις δεδομένων Τα batch γεωμετρικά προβλήματα, μπορούν συνήθως να αναχθούν σε κάποια βασικά γεωμετρικά προβλήματα και να επιλυθούν αναλόγως σε

BATCH ΠΡΟΒΛΗΜΑΤΑ ΣΤΗΝ ΥΠΟΛΟΓΙΣΤΙΚΗ ΓΕΩΜΕΤΡΙΑ Οι Goodrich et al ανέπτυξαν ΕΜ αλγορίθμους για γεωμετρικά προβλήματα χρησιμοποιώντας τα παρακάτω ΕΜ παραδείγματα για batch προβλήματα – Distribution sweeping – Persistent B-trees – Batched filtering – External fractional cascading – External marriage-before-conquest – Batched incremental construction Σημαντικοί αλγόριθμοι – SSSJ (scalable sweeping-based spatial join) – QPBSM – MPBSM

BATCH ΠΡΟΒΛΗΜΑΤΑ ΣΕ ΓΡΑΦΗΜΑΤΑ

Ερευνητές που ασχολήθηκαν με το συγκεκριμένο τομέα – Ullman & Yiannakakis (μεταβατική κλειστότητα) – Chiang et Al (ταξινόμηση & αντιμετάθεση) Ο Chiang πρότεινε τη σχεδίαση EM αλγορίθμων εξομοιώνοντας ακολουθιακά τη χρήση ενός παράλληλου αλγορίθμου για το ίδιο πρόβλημα

HASHING ΓΙΑ ONLINE ΑΝΑΖΗΤΗΣΗ ΣΕ DICTIONARIES Online δομές δεδομένων που υποστηρίζουν dictionary λειτουργίες όπως εισαγωγή, διαγραφή και αναζήτηση Δύο τύποι ΕΜ dictionaries: hashing και tree- based Πλεονέκτημα hashing: ο αναμενόμενος αριθμός συγκρίσεων ανά λειτουργία είναι σταθερός και ανεξάρτητος του N

HASHING Hash συνάρτηση hash : {όλα τα δυνατά κλειδιά} → {0, 1, 2, …, Κ-1} Οι αλγόριθμοι διαφοροποιούνται για το πώς επιλύουν τις συγκρούσεις Στόχος: ανά αναζήτηση, Ο(1) ανά εισαγωγή και διαγραφή Δυναμικές δομές hashing

ΔΥΝΑΜΙΚΟ HASHING Δύο κατηγορίες – Directory – Direcotryless Directory – Πίνακας μεγέθους 2 d από κελιά – Τα αντικείμενα αποθηκεύονται σε κελιά ανάλογα με τα d τελευταία bits της hash διεύθυνσής τους – Κάθε κελί έχει ένα δείκτη προς το block που αποθηκεύονται τα αντικείμενα – 2 Ι/Οs ανά αναζήτηση – Διάσπαση και συνένωση κελιών. Κάθε κελί έχει ένα τοπικό βάθος b. Μπορεί να μοιράζεται το ίδιο block με άλλα κελιά – Blocks κατά 67% γεμάτα

ΔΥΝΑΜΙΚΟ HASHING Directoryless – Δεν υπάρχει directory – 1 Ι/Ο ανά αναζήτηση – Χρησιμοποιούνται λίστες υπερχείλισης – Τα blocks διασπώνται με προαποφασισμένη σειρά

ΔΥΝΑΜΙΚΟ HASHING

ΔΕΝΔΡΙΚΕΣ ΔΟΜΕΣ Τα αντικείμενα σε ένα δέντρο είναι ταξινομημένα Επιτρέπεται range αναζήτηση Συνηθισμένες δομές – B-trees και παραλλαγές – Ισοζυγισμένα Β-trees – Buffer trees

B-TREES Ένα block ανά κόμβο με Θ(Β) δείκτες ή αντικείμενα Multiway b-tree. – Βαθμός κάθε κόμβου Θ(Β) – Ύψος: – Αναζήτηση σε γραμμικό χρόνο – Εισαγωγή/ διαγραφή σε – Ερώτηση Παραλλαγές – Β + - tree. Αποθήκευση δεδομένων μόνο στα φύλλα – B* - tree. Μοίρασμα δεδομένων με γειτονικό κόμβο

SPATIAL ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Αποθήκευση και ερώτηση δεδομένων χώρου Δύο είδη χωρικών δομών – Data-driven Βασίζονται στο διαχωρισμό των ίδιων των αντικειμένων Π.χ R-trees, kd-trees – Space-driven Διαχωρισμός του χώρου των αντικειμένων Π.χ quad δέντρα, αρχεία grid Γνωστές δομές – Cross tree D-διάστατη έκδοση του Β-tree Data-driven διαχωρισμός στα πάνω επίπεδα, space-driven κάτω Ερωτήσεις σε Εισαγωγές – διαγραφές σε

SPATIAL ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ R-tree – Εσωτερικοί κόμβοι έχουν βαθμό Θ(Β) – Φύλλα : Θ(Β) αντικείμενα – Τα δεδομένα γειτονικών κόμβων επιτρέπεται να επικαλύπτονται

ΔΥΝΑΜΙΚΕΣ & ΚΙΝΗΤΙΚΕΣ ΔΟΜΕΣ Ολοένα και περισσότερος αριθμός προβλημάτων με δεδομένα/αντικείμενα που αλλάζουν ή κινούνται Αυτοκίνητα, κινητά τηλέφωνα, αεροπλάνα κτλ. Δύο τεχνικές – Υπάρχουσες δομές δεδομένων και συνεχή ενημέρωση – Αποθήκευση τροχιάς και ταχύτητας κάθε αντικειμένου Ενημέρωση μόνο όταν αλλάζει κάποιο από τα παραπάνω Κάθε στιγμή ξέρουμε τη θέση του αντικειμένου Περισσότερες διαστάσεις - Πολυπλοκότητα

ΕΠΕΞΕΡΓΑΣΙΑ STRING Πολλές μέθοδοι – Ανεστραμμένα αρχεία (όπως το ευρετήριο στο τέλος των βιβλίων) – String B-trees Strings στα φύλλα Εσωτερικοί κόμβοι: κλειδιά αναζήτησης – SB-tree

ΕΠΕΞΕΡΓΑΣΙΑ STRINGS Suffix tree – Δέντρο προθεμάτων – Γρήγορη αναζήτηση σε γραμμικό χρόνο με το μέγεθος του string αναζήτησης Suffix array – Περιλαμβάνει μόνο τα φύλλα του suffix tree σε συμμετρική σειρά πρόσβασης

ΔΥΝΑΜΙΚΗ ΚΑΤΑΝΟΜΗ ΜΝΗΜΗΣ Το μέγεθος της εσωτερικής μνήμης που κατανέμεται σε ένα πρόγραμμα μπορεί να ποικίλλει κατά τη διάρκεια της εκτέλεσης λόγω άλλων απαιτήσεων του συστήματος τη στιγμή εκείνη. Οι ΕΜ αλγόριθμοι θα πρέπει να μπορούν να προσαρμόζονται δυναμικά στους πόρους που είναι διαθέσιμοι ώστε να έχουν καλή απόδοση. Όλοι οι αλγόριθμοι που παρουσιάστηκαν υποθέτουν σταθερό μέγεθος μνήμης.

ΔΥΝΑΜΙΚΗ ΚΑΤΑΝΟΜΗ ΜΝΗΜΗΣ Οι Barve και Vitter ασχολούνται με το σχεδιασμό και την ανάλυση ΕΜ αλγορίθμων οι οποίοι προσαρμόζονται σε διαφορετικά μεγέθη μνήμης. Στο μοντέλο τους, σε έναν αλγόριθμο P κατανέμεται η εσωτερική μνήμη σε φάσεις. Κατά τη διάρκεια της i- th φάσης, στον P κατανέμεται mi blocks εσωτερικής μνήμης και η μνήμη αυτή παραμένει κατανεμημένη στον P μέχρι ο P ολοκληρώσει 2mi I/O λειτουργίες, όπου ξεκινά και η επόμενη φάση. Η διαδικασία συνεχίζεται μέχρι ο P να τελειώσει.