Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

ΠΡΟΗΓΜΕΝΗ ΕΥΡΕΤΗΡΙΑΣΗ ΔΕΔΟΜΕΝΩΝ Ταξινόμηση – Αναζήτηση.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "ΠΡΟΗΓΜΕΝΗ ΕΥΡΕΤΗΡΙΑΣΗ ΔΕΔΟΜΕΝΩΝ Ταξινόμηση – Αναζήτηση."— Μεταγράφημα παρουσίασης:

1 ΠΡΟΗΓΜΕΝΗ ΕΥΡΕΤΗΡΙΑΣΗ ΔΕΔΟΜΕΝΩΝ Ταξινόμηση – Αναζήτηση

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

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

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

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

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

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

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

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

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

11 11 Ι / Ο Αποδοτική Διαπέραση Στοιχείων sum = 0 for i = 1 to N do sum = sum + A[i] sum = 0 for i = 1 to N do sum = sum + A[i] N B A Πόσα 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 δίσκους. Αυτό το κάνουμε αποθηκεύοντάς τα με την μορφή λωρίδας : D0D0 D1D1 D2D2 D3D3 D4D4 Ρίγα 0 0123456789 Ρίγα 1 10111213141516171819 Ρίγα 2 20212223242526272829 Ρίγα 3 30313233343536373839 Επομένως μία πράξη μπορεί να γίνει σε Ο (n/D) Ι / Ος.

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

18 18 Διαπέραση Στοιχείων – D δίσκοι sum = 0 for i = 1 to N do sum = sum + A[i] sum = 0 for i = 1 to N do sum = sum + A[i] N B A Πόσα 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 Παράδειγμα  Σε κάθε πέρασμα διαβάζουμε και γράφουμε στον δίσκο κάθε διάστημα.  n μπλοκ στο αρχείο ⇒ πλήθος περασμάτων;  Συνολικό κόστος;  Ιδέα: Διαίρει και Βασίλευε Αρχείο Εισόδου 3,4 6,2 9,48,75,63,1 2 Ταξ. 1 μπλοκ ΠΕΡΑΣΜΑ 0 3,45,62,64,97,8 1,32 Ταξ. 2 μπλοκ ΠΕΡΑΣΜΑ 1 2,3 4,6 4,7 8,9 1,3 5,62 Ταξ. 4 μπλοκ ΠΕΡΑΣΜΑ 2 2,3 4,4 6,7 8,9 1,2 3,5 6 Ταξ. 8 μπλοκ ΠΕΡΑΣΜΑ 3 9 1,2 2,3 3,4 4,5 6,6 7,8

24 Ταξινόμηση Συγχώνευσης (Mergesort) Συγχωνευτής k- δρόμων Η συγχώνευση k ακολουθιών με N στοιχεία απαιτεί O(N/B) I/Oς (δεδομένου ότι k ≤ M/B – 1)

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

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

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

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

29 Παράδειγμα με 1 στοιχείο διαχωρισμού  Σε κάθε πέρασμα διαχωρίζουμε με βάση 1 στοιχείο.  n μπλοκ στο αρχείο ⇒ πλήθος περασμάτων;  Συνολικό κόστος;  Ιδέα: Διαίρει και Βασίλευε (αντίστροφα από συγχώνευση) 3,46,29,48,75,63,12 5 3,42,43,125,69,87,6 37 2,123,44,35,667,98......

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

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

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

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

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

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

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

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

38 ΤΈΛΟΣ


Κατέβασμα ppt "ΠΡΟΗΓΜΕΝΗ ΕΥΡΕΤΗΡΙΑΣΗ ΔΕΔΟΜΕΝΩΝ Ταξινόμηση – Αναζήτηση."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google