1 / 38

Προηγμενη ευρετηριαση δεδομενων

Προηγμενη ευρετηριαση δεδομενων. Ταξινόμηση – Αναζήτηση. Μοντέλα Δευτερεύουσας Μνήμης. Η Ανάγκη για Μοντέλα. Ένα μοντέλο μας επιτρέπει: Ευκολία ανάλυσης-σχεδίασης χωρίς ενοχλητικές λεπτομέρειες Εμπεριέχει τα κρίσιμα χαρακτηριστικά του πραγματικού συστήματος

Download Presentation

Προηγμενη ευρετηριαση δεδομενων

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Προηγμενηευρετηριασηδεδομενων Ταξινόμηση – Αναζήτηση

  2. Μοντέλα Δευτερεύουσας Μνήμης

  3. Η Ανάγκη για Μοντέλα • Ένα μοντέλο μας επιτρέπει: • Ευκολία ανάλυσης-σχεδίασης χωρίς ενοχλητικές λεπτομέρειες • Εμπεριέχει τα κρίσιμα χαρακτηριστικά του πραγματικού συστήματος • Ένα μοντέλο είναι πάντα λάθος – το θέμα είναι πόσο λάθος είναι

  4. Δίσκος I/O Μνήμη B CPU M Απλό Μοντέλο Δευτερεύουσας Μνήμης Aggarwal and Vitter 1988 • Μέτρηση πλήθους μεταφορών μπλοκ μεταξύ των 2 επιπέδων μνήμης (κόστος) • Μοντελοποιεί το κύριο πρόβλημα • Πολύ πετυχημένο (απλότητα) Περιορισμοί • Οι παράμετροι Bκαι Mπρέπει να είναι γνωστοί • Δεν αντιμετωπίζει πολλαπλά επίπεδα μνημών • Δεν αντιμετωπίζει δυναμική μεταβολή του M

  5. Το Μοντέλο Παράλληλων Δίσκων(PDM – Parallel Disk Model) Το πλήθος των δίσκωνμπορεί να είναι ίσο, μικρότερο ή μεγαλύτερο σε σχέση με το πλήθος των επεξεργαστών.

  6. Παράμετροι του PDM Οι ποσότητες εκφράζονται σε σχέση με το πλήθος των στοιχείων • Ν → μέγεθος του προβλήματος • Μ → μέγεθος εσωτερικής μνήμης • Β → μέγεθος μπλοκ δίσκου • D → πλήθος δίσκων • P → πλήθος επεξεργαστών Ισχύει: Μ<Ν 1≤DB ≤M/2

  7. Τύποι Προβλημάτων • Μαζικές ερωτήσεις: • Οι αιτήσεις για επεξεργασία μας δίνονται όλες μαζί. • Τις υπολογίζουμε όλες και έπειτα δίνουμε την απάντηση για κάθε μία από αυτές • Άμεσες Ερωτήσεις: • Οι αιτήσεις έρχονται σε σειρά. • Απαντάμε κάθε ερώτηση και έπειτα μας έρχεται η επόμενη για επεξεργασία.

  8. Κάποιες Παράμετροι Ακόμα • Q → πλήθος ερωτήσεων (για μαζικές ερωτήσεις) • Ζ → μέγεθος απάντησης Πολλές φορές θα χρησιμοποιούμε τον εξής συμβολισμό:

  9. Τι Μετράμε; Οι κύριες μετρικές απόδοσης στο PDM είναι: • Το πλήθος των μεταφορών (Ι/Ος) που εκτελούνται • Ο χώρος που χρησιμοποιείται • Ο χρόνος υπολογισμού των επεξεργαστών Ελπίζω να σας έχω πείσει ότι το (3) είναι αμελητέο (συνήθως) σε σχέση με τις υπόλοιπες δύο μετρικές.

  10. Κάποιες Στοιχειώδης Πράξεις

  11. B A N Ι/Ο Αποδοτική Διαπέραση Στοιχείων sum = 0 for i = 1 to N do sum = sum + A[i] Πόσα I/Oς; O(N/B) ή O(n) I/Oς

  12. Cache Memory Model • N: μέγεθος προβλήματος • Β: μέγεθος cache line • M: Μέγεθος cache • α: συσχετισιμότηταcache • Μοντέλο κόστους: • Πλήθος από cache αποτυχίες • Πλήθος εντολών

  13. Internal Memory Model • Όπως στο CMM συν: • Β΄: το πλήθος των δεδομένων σε μία σελίδα μνήμης • Τ: το πλήθος των μεταφράσεων στην TLB • Μοντέλο Κόστους όπως στο CMM συν: • TLB αποτυχίες

  14. Τοπικότητα σε PDM . . .

  15. Λωρίδες σε PDM • Πώς να προγραμματίζεις για έναν δίσκο και αυτόματα το πρόγραμμα να μπορεί να εκμεταλλευτεί τον παραλληλισμό των πολλών σε PDM; Απλή ιδέα (λωριδοποίηση δίσκων): • Το μέγεθος του λογικού μπλοκ δεν είναι B αλλά DB. • Μεταφέρουμε στην μνήμη μία λωρίδα και όχι ένα μπλοκ.

  16. Λωρίδες σε PDM • Θέλουμε τα δεδομένα να είναι αποθηκευμένα και στους D δίσκους. Αυτό το κάνουμε αποθηκεύοντάς τα με την μορφή λωρίδας: • Επομένως μία πράξη μπορεί να γίνει σε Ο(n/D) Ι/Ος.

  17. Λωριδοποίηση Δίσκων • Από τα βασικά προβλήματα: 3 στα 4 έχουν βέλτιστες λύσεις εφαρμόζοντας αυτή την τεχνική: • Διαπέραση (scanning) • Αναζήτηση (search) • Έξοδος (output) • Το πρόβλημα της ταξινόμησης δεν λύνεται βέλτιστα με αυτή την τεχνική.

  18. B A N Διαπέραση Στοιχείων – D δίσκοι sum = 0 for i = 1 to N do sum = sum + A[i] Πόσα I/Oς; O(N/DB) ή O(n/D) I/Oς

  19. Η Ταξινόμηση – Dδίσκοι • Βέλτιστη πολυπλοκότητα για ταξινόμηση: • Με λωριδοποίηση δίσκων από την περίπτωση D=1: • Στην πράξη είναι εξαιρετικά αποδοτικό

  20. Ταξινόμηση

  21. Ταξινόμηση (D=1) • <M/Bταξινομημένες λίστες συγχωνεύονται σεO(N/B) I/Oς M/Bμπλοκ στην κύρια μνήμη • Μη ταξινομημένη λίστα μπορεί να διαχωρισθείχρησιμοποιώντας <M/Bστοιχεία σεO(N/B) I/Oς

  22. Απλή Ιδέα: Ταξινόμηση 2-δρόμων • Πέρασμα 1:Διάβασε ένα μπλοκ, ταξινόμηση και έπειτα αποθήκευση. • Πέρασμα 2, 3, …, κτλ: • Διάβασε 2 προηγούμενα περάσματα, ταξινόμηση, αποθήκευση. ΕΙΣΟΔΟΣ 1 ΕΞΟΔΟΣ ΕΙΣΟΔΟΣ 2 Δίσκος Δίσκος Κύρια Μνήμη

  23. Παράδειγμα 6,2 2 Αρχείο Εισόδου 3,4 9,4 8,7 5,6 3,1 ΠΕΡΑΣΜΑ 0 • Σε κάθε πέρασμα διαβάζουμε και γράφουμε στον δίσκο κάθε διάστημα. • nμπλοκ στο αρχείο⇒πλήθος περασμάτων; • Συνολικό κόστος; • Ιδέα:Διαίρει και Βασίλευε 1,3 2 Ταξ. 1 μπλοκ 3,4 2,6 4,9 7,8 5,6 ΠΕΡΑΣΜΑ 1 4,7 1,3 2,3 Ταξ. 2 μπλοκ 8,9 5,6 2 4,6 ΠΕΡΑΣΜΑ 2 2,3 4,4 1,2 Ταξ. 4 μπλοκ 6,7 3,5 6 8,9 ΠΕΡΑΣΜΑ 3 1,2 2,3 3,4 Ταξ. 8 μπλοκ 4,5 6,6 7,8 9

  24. 2 2 3 3 5 5 6 6 9 9 11 13 15 19 21 25 27 1 4 7 10 14 29 33 41 49 51 52 57 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Συγχωνευτής 4-δρόμων 8 12 16 18 22 24 31 34 35 38 42 46 εγγραφή 17 20 23 26 28 30 32 37 39 43 45 50 ανάγνωση Ταξινόμηση Συγχώνευσης (Mergesort)Συγχωνευτήςk-δρόμων Η συγχώνευση kακολουθιών μεNστοιχεία απαιτεί O(N/B) I/Oς (δεδομένου ότι k ≤ M/B – 1)

  25. ... M M N Αταξινόμητη Είσοδος Διαχωρισμός σε διαστήματα Διάστημα 1 Διάστημα 2 Διάστημα N/M Ταξινόμησε κάθε διάστημα Ταξινομημένο Συγχώνευση 1 Λειτουργία Αλγόριθμου • Η MergeSortαπαιτεί O(N/B·logM/B(N/B)) I/Oς • Στην πράξη τα Ι/Ος είναι: 4-6 x διαπέραση εισόδου Ταξινομημένο Ταξινομημένο Ταξινομημένο Ταξινομημένο Συγχώνευση 2 Ταξινομημένη Έξοδος

  26. Ταξινόμηση Συγχώνευσης - Απόδοση • Κτίσε N/Mταξινομημένες λίστες μεγέθους Μ • Επαναληπτικά συγχώνευσε λίστες  φάσεις με I/Oςη κάθε μία I/Oς

  27. Γενική Τεχνική – Double Buffering • Για να μειώσουμε το χρόνο αναμονής για την ολοκλήρωση Ι/Ο, μπορούμε να το φέρουμε σε ένα `σκιώδες μπλοκ’. ΕΙΣΟΔΟΣ1 ΕΙΣΟΔΟΣ 1΄ ΕΙΣΟΔΟΣ 2 ΕΞΟΔΟΣ ΕΙΣΟΔΟΣ 2΄ ΕΞΟΔΟΣ΄ B Μέγεθος μπλοκ Δίσκος ΕΙΣΟΔΟΣ k Δίσκος ΕΙΣΟΔΟΣ k΄

  28. Ταξινόμηση Διαχωρισμού(Γρήγορη Ταξινόμηση πολλών δρόμων) • Υπολόγισε Θ(M/B) στοιχεία διαχωρισμού • Διαχώρισε την αταξινόμητη λίστα σε Θ(M/B) αταξινόμητες λίστες ίδιου μεγέθους • Αναδρομικά διαχώρισε τις λίστες μέχρι να χωρέσουν στην μνήμη • φάσεις • I/Oςαν τα στοιχεία διαχωρισμού εντοπίζονται σε O(N/B) I/Oς

  29. Παράδειγμα με 1 στοιχείο διαχωρισμού 3,4 6,2 9,4 8,7 5,6 3,1 2 • Σε κάθε πέρασμα διαχωρίζουμε με βάση 1 στοιχείο. • nμπλοκ στο αρχείο⇒πλήθος περασμάτων; • Συνολικό κόστος; • Ιδέα:Διαίρει και Βασίλευε (αντίστροφα από συγχώνευση) 5 3,4 2,4 3,1 2 5,6 9,8 7,6 3 7 2,1 2 3,4 4,3 5,6 6 7,9 8 . . .

  30. Πιθανοτική Επιλογή Στοιχείων Διαχωρισμού (Εύκολη) Επιλογή S=Θ(min{m,n/m}) στοιχείων διαχωρισμού. Απλές μέθοδοι: • Επέλεξε τα πρώτα Sστοιχεία από τη λίστα που ταξινομούμε (σε αντιστοιχία με quicksort) και ευχόμαστε να δουλέψει • Τυχαία δειγματοληψία: • Επιλέγουμε τυχαία SlogS στοιχεία από τη λίστα • Τα ταξινομούμε και έπειτα επιλέγουμε κάθε logS-οστό στοιχείο για διαχωρισμό

  31. Τυχαία Δειγματοληψία • Χρειαζόμαστε Ο(SlogS+Sort(SlogS)) Ι/Ος. Το S μπορεί να είναι το πολύ n½: • Κάθε καινούργια λίστα θα έχει μέσο μέγεθος Ο(Ν/S): • Πιθανότητα κάθε στοιχείου να πέσει σε μία υπολίστα 1/S • Άρα μέσο μέγεθος είναι O(N/S) SlogS N . . . S

  32. Αναδιάταξη Ταξινόμησε Ν στοιχεία με βάση μία αντιμετάθεση των {1,2,3,…,Ν} Permutation– Hans Loffel Γιατί δεν έχουμε Ν/Β;

  33. Κάτω Φράγμα για Ταξινόμηση

  34. Κάτω Φράγμα Ταξινόμησης • Υπόθεση: Τα στοιχεία που ταξινομούμε είναι αδιαίρετα (indivisibility assumption) • Όλοι οι αλγόριθμοι ταξινόμησης δευτερεύουσας μνήμης στο μοντέλο PDM (για D=1) θα πρέπει να κάνουν τουλάχιστον O(nlogmn) I/Oς.

  35. Ν στοιχεία δίνουν Ν! αναδιατάξεις. Στόχος μας είναι να δούμε πως μειώνεται το πλήθος των αναδιατάξεων έπειτα από κάθε πράξη, μέχρι να γίνει 1. Κάποια Βασικά… • Μοντέλο Μνήμης: PDM, D=1 • Μοντέλο συγκρίσεων: τα στοιχεία μπορούν να συγκριθούν μόνο στην κύρια μνήμη. Μπορούμε να τα μεταφέρουμε, να τα αντιγράψουμε και να τα διαγράψουμε – τίποτα άλλο. • Υποθέτουμε ότι M2B. • Τα μπλοκ στην αρχή είναι τοποθετημένα όλα μαζί σε μία περιοχή του δίσκου. • Η σειρά των στοιχείων στην εσωτερική μνήμη δίνεται δωρεάν. • Δοθείσης μία εκτέλεσης ενός αλγορίθμου ταξινόμησης ορίζουμε το St = πλήθος δυνατών αναδιατάξεων έπειτα από t I/Oς. (S0=Ν!)

  36. Πράξεις και Μείωση St • Εγγραφή μπλοκ στο δίσκο: Δεν επηρεάζει • Όσες αναδιατάξεις είχαμε πριν την εγγραφή έχουμε και μετά • Ανάγνωση για πρώτη φορά μπλοκ: • Ανάγνωση μπλοκ (όχι για πρώτη φορά):

  37. Μείωση Αναδιατάξεων • Αν X είναι η μείωση κατά την πράξη Ι/Ο t+1,τότε: St+1St/Χ • Υπάρχουν το πολύ Ν/Β αναγνώσεις μπλοκ που γίνονται για πρώτη φορά. • Αφού S0=Ν! και St+1St/Χ προκύπτει ότι για τις Ν/Β αναγνώσεις (και για να φτάσουμε σε μία αντιμετάθεση) :

  38. Τέλοσ

More Related