Μοντέλα - Αλγόριθμοι – Ταξινόμηση Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Προηγμενη ευρετηριαση δεδομενων
Advertisements

Δομές Δεδομένων και Αλγόριθμοι
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
ΨΗΦΙΑΚΗ ΜΝΗΜΗ (RAM – ROM).
Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Πολυεπεξεργαστές.
ΥΛΙΚΟ ΥΠΟΛΟΓΙΣΤΗ.
Το υλικο του Υπολογιστη
H διαδικασία ανάπτυξης λογισμικού. Tι θα γνωρίσουμε •Τις φάσεις ανάπτυξης του λογισμικού. •Γιατί χρειάζεται να γίνει ανάλυση του προβλήματος. •Τι θα πρέπει.
ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ ΤΜΗΜΑΤΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Ζητήματα Σελιδοποίησης
ΠΡΟΗΓΜΕΝΗ ΕΥΡΕΤΗΡΙΑΣΗ ΔΕΔΟΜΕΝΩΝ Ταξινόμηση – Αναζήτηση.
ΜΑΘ-3122/106 Προγραμματισμός
Ομάδα: Άρης Κατσιφαράκης Αντώνης Καστρινάκης
7. Διαχείριση κύριας μνήμης
Εισαγωγικές Έννοιες Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
ΗΥ 150 – ΠρογραμματισμόςΞενοφών Ζαμ π ούλης ΗΥ-150 Προγραμματισμός Αλγόριθμοι και Προγράμματα.
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 1 Εισαγωγή
ΔΕΞΙΟΤΗΤΕΣ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 ΠΕΡΙΓΡΑΦΗ ΤΩΝ ΜΝΗΜΩΝ ΕΝΟΣ Η/Υ ΤΜΗΜΑ: Τ6 ΟΝΟΜΑΤΑ: ΣΕΛΑΛΜΑΖΙΔΗΣ ΤΑΣΟΣ ΦΙΛΙΑΣ ΑΝΤΩΝΗΣ ΦΙΛΙΑΣ ΑΝΤΩΝΗΣ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Αναφερόμαστε στους σημερινούς υπολογιστές με τον όρο «», δηλαδή ένα σύνολο συσκευών και προγραμμάτων. Αναφερόμαστε στους σημερινούς υπολογιστές με τον.
Ενεργή επιλογή αλγορίθμου, Active Algorithm Selection, Feilong Chen and Rong Jin Εύα Σιταρίδη.
2-1 Ανάλυση Αλγορίθμων Αλγόριθμος Πεπερασμένο σύνολο εντολών που, όταν εκτελεστούν, επιτυγχάνουν κάποιο επιθυμητό αποτέλεσμα –Δεδομένα εισόδου και εξόδου.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τρίτη, 31 Μαρτίου 2015Τμ. Πληροφορικής,
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου.
ΜΑΘΗΜΑ: ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ ΔΙΔΑΣΚΟΝΤΕΣ: Π. ΚΑΤΣΑΡΟΣ Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τετάρτη, 1 Απριλίου 2015Τμ. Πληροφορικής,
Για τη διεκπεραίωση ενός προβλήματος πρέπει να ακολουθηθεί η εξής διαδικασία:  να γραφεί ο αλγόριθμος να συνταχθεί το πρόγραμμα σε γλώσσα υψηλού επιπέδου.
Κατανόηση (δεδομένα – ζητούμενα) Ανάλυση σε απλούστερα προβλήματα Επίλυση με οργανωμένα, απολύτως καθορισμένα, πεπερασμένα βήματα ΑΛΓΟΡΙΘΜΟΣ.
Αναζήτηση – Δέντρα (2 ο Μέρος) Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ. ΥΠΟΛΟΓΙΣΤΗΣ Μηχανή που μπορεί να φέρει σε πέρας πνευματικές εργασίες ρουτίνας με μεγάλη ταχύτητα.
1 ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems Εισαγωγή Β. Μάγκλαρης Β. Μάγκλαρης Σ. Παπαβασιλείου Σ. Παπαβασιλείου
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Κατακερματισμός – Hashing (1 ο Μέρος)
ΠΑΡΟΥΣΙΑΣΗ ΤΟΥ COLLATE PROJECT COLLATE:Collaboratory for Annotaton,Indexing and Retrieval of Digitized Historical Archive Material(συνεργασία για σχολιασμό,
Διπλωματική Εργασία Πειραματική Αξιολόγηση της Μοναδιαίας Οκνηρής Συνέπειας Τόξου (Singleton Lazy Arc Consistency) Ιωαννίδης Γιώργος (ΑΕΜ: 491)
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
1 Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τέταρτο Οι κίνδυνοι της.
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
Γλωσσάρι πληροφορικής Γιώργος καραγίαννης Σταύρος καλογερόπουλος.
Χρονική Πολυπλοκότητα
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Ροές Δεδομένων (3 ο Μέρος)
Αρχιτεκτονική-ΙI Ενότητα 4 : Μνήμες Ιωάννης Έλληνας Τμήμα Η/ΥΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα.
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
Επιλογη υλικου Η/Υ Cpu /επεξεργαστης RAM/μνημη GPU/καρτα γραφικων Οθονη HDD/Σκληρος δισκος.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
ΕΝΟΤΗΤΑ 1 – Κεφάλαιο 2: Το εσωτερικό του Υπολογιστή Το εσωτερικό της Κεντρικής Μονάδας.
Παρουσίαση πτυχιακής εργασίας Σαλιάρη Αικατερίνη Επιβλέπων καθηγητής: Αθανάσιος Νικολαΐδης.
Ψηφιακή επεξεργασία εικόνας Άγγελος Μπάκας Δεκέμβριος 2008.
Θέμα Πτυχιακής Εργασίας
ΣΤΑΤΙΣΤΙΚΑ ΜΕΤΡΑ ΔΙΑΣΠΟΡΑΣ - ΑΣΥΜΜΕΤΡΙΑΣ - ΚΥΡΤΩΣΕΩΣ
ΙΑΣΩΝ ΓΕΡΜΑΝΗΣ ΔΗΜΗΤΡΗΣ ΧΡΗΣΤΟΥ
Αποτελέσματα Έργου Έρευνας, Ανάπτυξης και Επίδειξης στα πλαίσια του ΣΥΝΕΡΓΑΣΙΑ11 ΕΣΠΑ Dynamic Cargo Routing on-the-Go Δυναμική Δρομολόγηση.
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
στην Επιστήμη των Υπολογιστών Κωδικός Διαφανειών: MKT110
Συστήματα CAD Πανεπιστήμιο Θεσσαλίας Σχολή Θετικών Επιστημών
Tο υλικό του Ηλεκτρονικού Υπολογιστή
ΜΝΗΜΗ ΥΠΟΛΟΓΙΣΤΗ Ο υπολογιστής κατασκευάστηκε από τον άνθρωπο για να τον “διευκολύνει” σε κάποιες δύσκολες και επίπονες σωματικές μα πιο πολύ νοητικές.
ΤΕΙ Ηρακλείου Τμήμα Εφαρμοσμένης Πληροφορικής και Πολυμέσων
ENOTHTA 2. ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΕΦΑΛΑΙΟ 2
Με τι ασχολείται η πληροφορική; Η πληροφορική μελετά με επιστημονικό τρόπο: 1.Τον αποτελεσματικό τρόπο επεξεργασίας των πληροφοριών με τη βοήθεια του υπολογιστή.
Επιμέρους Στοιχεία Αξιολόγησης Εκπαιδευτικού Λογισμικού
ΥΠΟΛΟΓΙΣΜΟΣ ΚΑΘΑΡΟΥ ΚΕΡΔΟΥΣ ΑΠΌ ΤΗΝ ΑΓΡΟΤΙΚΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑ
ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ ΓΙΑ ΣΥΣΤΗΜΑΤΑ ΜΕΤΑΔΟΣΗΣ ΠΛΗΡΟΦΟΡΙΑΣ
‘Δομημένος Εξελικτικός Αλγόριθμος’ Επιβλέπων: Κυριάκος Χ. Γιαννάκογλου
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Μεταγράφημα παρουσίασης:

Μοντέλα - Αλγόριθμοι – Ταξινόμηση Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)

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

I/O Αποδοτικοί Αλγόριθμοι  Οι εσωτερικές τεχνικές caching και prefetching των Η / Υ είναι γενικού - σκοπού και δεν εκμεταλλεύονται πλήρως την τοπικότητα ( δεδομένων και εντολών ).  Ορισμένοι υπολογισμοί μπορεί να μην συμφωνούν με τις τεχνικές αυτές και να απαιτούν μεγάλο I/O κόστος.  Ειδικά όταν πρόκειται να διαχειριστούμε μεγάλα σύνολα δεδομένων ( πολύ μεγαλύτερα της μνήμης ) οι τεχνικές γενικού - σκοπού δεν αποδίδουν.  Οι αλγόριθμοι που σχεδιάζονται ώστε να κάνουν το I/O κόστος όσο το δυνατόν μικρότερο αποδίδουν καλύτερα (external memory algorithms, I/O algorithms).  Οι αλγόριθμοι αυτοί είναι βασισμένοι σε απλοποιημένα μοντέλα που ρίχνουν το βάρος στο I/O κόστος.

I/O Αποδοτικοί Αλγόριθμοι  Διότι : η μεγαλύτερη βελτιστοποίηση της απόδοσης ενός αλγορίθμου προέρχεται από την ελαχιστοποίηση του κόστους της επικοινωνίας I/O μεταξύ της εσωτερικής μνήμης και της εξωτερικής ( δίσκος / δίσκοι ).  Αυτό το I/O κόστος είναι και το πιο ακριβό σε σύγκριση με τις εσωτερικές μετακινήσεις (CPU  L1-cache  L2-cache  RAM).

Η Ανάγκη για Μοντέλα  Ένα μοντέλο μας επιτρέπει :  Ευκολία ανάλυσης - σχεδίασης αλγορίθμων χωρίς ενοχλητικές λεπτομέρειες.  Εμπεριέχει τα κρίσιμα χαρακτηριστικά του πραγματικού συστήματος ώστε εκεί να δώσουμε βάρος καθώς σχεδιάζουμε τον αλγόριθμο. Όμως :  Ένα μοντέλο είναι πάντα λάθος !  Το θέμα είναι πόσο λάθος είναι.

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

 D → πλήθος δίσκων  P → πλήθος επεξεργαστών Το πλήθος των δίσκων μπορεί να είναι ίσο, μικρότερο ή μεγαλύτερο σε σχέση με το πλήθος των επεξεργαστών. Αν D<P τότε κάθε δίσκος διαμοιράζεται σε P/D επεξεργαστές, ενώ αν P  D κάθε επεξεργαστής είναι υπεύθυνος για D/P δίσκους περίπου. Το Μοντέλο Παράλληλων Δίσκων (PDM – Parallel Disk Model) P … Vitter and Shriver 1994

Το Μοντέλο PDM – Ειδικές Περιπτώσεις P=1 P=DP=D

Άλλες Βασικές Παράμετροι του PDM Βασικές παράμετροι που εκφράζονται σε πλήθος αντικειμένων (# of data items):  Ν → μέγεθος του προβλήματος  Μ → μέγεθος εσωτερικής μνήμης  Β → μέγεθος μπλοκ δίσκου Περιορισμοί:  Τα Ν αντικείμενα είναι σταθερού μεγέθους  Ισχύει M < Ν και 1  DB  M/2  To M μοιράζεται στα CPU ισοδύναμα: M/P

Άλλες Βασικές Παράμετροι του PDM  Η σχέση M < Ν εκφράζει ότι δεν χωράει όλο το πλήθος των αντικειμένων στην κύρια μνήμη (αν χωράει τότε δεν υπάρχει λόγος για σχεδιασμό I/O αποδοτικού αλγορίθμου).  Η σχέση 1  DB  M/2 εκφράζει ότι από τον κάθε δίσκο πρέπει να χωράνε τουλάχιστον δύο μπλοκ στην κύρια μνήμη. Αν δεν συμβαίνει αυτό τότε ακόμα και οι πιο απλοί αλγόριθμοι δεν μπορούν να υλοποιηθούν (π.χ. ταξινόμηση).

Τύποι Ερωτημάτων  Μαζικά Ερωτήματα (batched queries):  Τα ερωτήματα για επεξεργασία δίνονται όλα ταυτόχρονα.  Τα επεξεργαζόμαστε όλα μαζί και απαντάμε στο κάθε ερώτημα.  Άμεσα Ερωτήματα (on-line queries):  Τα ερωτήματα έρχονται ένα - ένα σε σειρά.  Επεξεργαζόμαστε και απαντάμε το κάθε ένα χωριστά με τη σειρά που έρχονται.

Άλλες Παράμετροι του PDM  Q → πλήθος ερωτημάτων (για μαζικά ερωτήματα)  Ζ → μέγεθος απάντησης (σε πλήθος αντικειμένων) Πολλές φορές βοηθάει να χρησιμοποιούμε ως μονάδα μέτρησης τα μπλοκ δίσκου (I/O κόστος) και όχι το πλήθος αντικειμένων. Τότε συμβολίζουμε:

Μετρικές Απόδοσης του PDM Οι κυριότερες μετρικές απόδοσης στο PDM είναι : 1. Το πλήθος των μεταφορών ( Ι / Ος ) που εκτελούνται ( κόστος I/O σε # μπλοκ ) 2. Ο χώρος που χρησιμοποιείται 3. Ο χρόνος υπολογισμού των επεξεργαστών Το (3) πρακτικά είναι αμελητέο ( συνήθως ) σε σχέση με τις άλλες δύο μετρικές. Υλοποιήσεις του PDM: Συστήματα RAID κλπ.

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

Παράδειγμα Λωρίδων σε PDM  Τα δεδομένα είναι αποθηκευμένα και στους D δίσκους απλωμένα με την μορφή λωρίδας : D0D0 D1D1 D2D2 D3D3 D4D4 Ρίγα Ρίγα Ρίγα Ρίγα  Τότε η εγγραφή ( ή η ανάγνωση ) όλων των δεδομένων στους D δίσκους απαιτεί Ο (N/DB)= Ο (n/D) Ι / Ος που είναι και το βέλτιστο δυνατό.

Οι Στοιχειώδεις Διαδικασίες Το πόσο αποδοτικός είναι ένας αλγόριθμος εκφράζεται από τα ανώτερα όρια κόστους I/O των εξής στοιχειωδών διαδικασιών που περιέχει:  Scanning (Σάρωση-Διαπέραση) πλήθους N αντικειμένων (περιλαμβάνει την σειριακή ανάγνωση ή εγγραφή των αντικειμένων).  Sorting (Ταξινόμηση) πλήθους N αντικειμένων σε καθορισμένη διατεταγμένη μορφή.  Searching (Αναζήτηση) ενός αντικειμένου μέσα από N ταξινομημένα αντικείμενα.

Οι Στοιχειώδεις Διαδικασίες  Output (Έξοδος) πλήθους Z αντικειμένων που αποτελούν απάντηση σε ένα συγκεκριμένο ερώτημα. Κάθε γνωστός αλγόριθμος αναλύεται σε ένα σύνολο στοιχειωδών διαδικασιών. Ανάλογα με το πόσες και σε ποιες από αυτές αναλύεται, προκύπτει και το συνολικό του I/O κόστος.

I/O Κόστος Στοιχειωδών Διαδικασιών

Παρατηρήστε ότι:  Στα όρια εμφανίζεται η μέση πολυπλοκότητα Θ.  Κάτω από προϋποθέσεις τα όρια αυτά γίνονται Ο. (I/O αποδοτικοί αλγόριθμοι).  Στην περίπτωση των D δίσκων (PDM) έχουμε σε όλες τις περιπτώσεις στη θέση του B το DB, με εξαίρεση του κόστους της ταξινόμησης.

Σημαντικότητα των Ορίων  Για να εκτιμήσουμε τα βασικά όρια του πίνακα των στοιχειωδών πράξεων ας δούμε τι γίνεται όταν ένας αλγόριθμος δεν εκμεταλλεύεται την τοπικότητα:  Για λόγους απλότητας ας θεωρήσουμε ότι D=1.  Πολλοί γνωστοί αλγόριθμοι όπως π.χ. sorting, FFT, triangulation, convex-hull, έχουν απόδοση O(Nlog 2 N) όταν εκτελούνται με όλα τα αντικείμενα μόνο στην κύρια μνήμη.

Σημαντικότητα των Ορίων  Αν όμως εκτελέσουμε έναν από αυτούς σε δεδομένα που δεν χωρούν στην κύρια μνήμη, αφήνοντας την virtual memory να αναλάβει τη διαχείριση των memory pages, τότε το ελάχιστο κόστος γίνεται Ω(Nlog 2 n).

Αποδοτική Διαπέραση (scan) - 1 δίσκος 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 Ο δίσκος είναι χωρισμένος σε ίσα μπλοκ μεγέθους Β, οπότε η σειριακή ανάγνωση ή εγγραφή N αντικειμένων απαιτεί O(N/B) ή O(n) I/Oς.

Αποδοτική Διαπέραση (scan) - 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 DBDB A Οι δίσκοι είναι χωρισμένοι σε ίσα μπλοκ μεγέθους Β και λωριδοποιημένοι (ισοδύναμο με έναν δίσκο με μπλοκ μεγέθους DB), οπότε η σειριακή ανάγνωση ή εγγραφή N αντικειμένων απαιτεί O(N/DB) ή O(n/D) I/Oς.

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

Απόδοση της Λωριδοποίησης Δίσκων  Πολυπλοκότητα για ταξινόμηση με έναν δίσκο:  H Πολυπλοκότητα για ταξινόμηση με D δίσκους και λωριδοποίηση είναι (όπου B  DB):  Όμως η βέλτιστη είναι: <

Παράδειγμα  Έστω ότι έχουμε N=10 12, M=10 9, B=10 4.  Τότε n= 10 8 και m=10 5. Ας πάρουμε αρχικά D=2.  Η απόδοση με λωριδοποίηση είναι :  Η βέλτιστη απόδοση είναι :  Ας μεταβάλουμε τώρα το πλήθος των δίσκων :

Παράδειγμα DOptimalStriping , , , N=10 12, M=10 9, B=10 4 Θ Πλήθος δίσκων D

Απόδοση της Λωριδοποίησης Δίσκων  Για μικρό πλήθος δίσκων το χάσιμο που έχουμε από την λωριδοποίηση δεν είναι πολύ σημαντικό.  Αν όμως έχουμε μικρότερη διαθέσιμη μνήμη η μεγάλο πλήθος δίσκων η διαφορά μεγαλώνει σημαντικά.  Συνεπώς χρειαζόμαστε I/O αποδοτικούς αλγορίθμους που πετυχαίνουν το βέλτιστο όριο.  Ο μόνος τρόπος για να γίνει αυτό είναι να απομονώσουμε τους δίσκους ώστε να λειτουργούν ανεξάρτητα ο ένας από τον άλλο.  Η ανεξαρτησία αυτή μπορεί να γίνει είτε για την ανάγνωση είτε για την εγγραφή των δεδομένων.

Γιατί επιμένουμε με την ταξινόμηση ;  Η ταξινόμηση στη δευτερεύουσα μνήμη (external sorting) είναι ένα κεντρικό πρόβλημα στο πεδίο των I/O αποδοτικών αλγορίθμων.  Πολλά προβλήματα που λύνονται στην κεντρική μνήμη σε γραμμικό χρόνο, στην δευτερεύουσα μνήμη απαιτούν τον ίδιο χρόνο που απαιτεί στο μοντέλο PDM η διαδικασία της ταξινόμησης.  Π.χ. finding connected components, triangulation, convex hull, FFT, permuting, list ranking, expression tree evaluation, κλπ.

Αποδοτική Ταξινόμηση

Μέθοδοι Αποδοτικής Ταξινόμησης  Η μέση και η χειρότερη πολυπλοκότητα στο I/O κόστος της ταξινόμησης N αντικειμένων χρησιμοποιώντας D δίσκους είναι:  Δύο βασικοί αλγόριθμοι την επιτυγχάνουν, οι οποίοι χρησιμοποιούν τους δίσκους ανεξάρτητα:  Ταξινόμηση Διαχωρισμού (Distribution Sort)  Ταξινόμηση Συγχώνευσης (Merge Sort)

Ταξινόμηση Διαχωρισμού  Αναδρομικός αλγόριθμος (διαίρει και βασίλευε)  Επιλέγονται S-1 στοιχεία διαχωρισμού με τα οποία χωρίζονται τα αντικείμενα σε S υποσύνολα δεδομένων, έτσι ώστε:  Τα αντικείμενα κάθε υποσυνόλου (bucket) να είναι όλα μικρότερα από τα αντικείμενα του επόμενου bucket.  Ταξινομούνται αναδρομικά όλα τα ανεξάρτητα buckets.  Στο τέλος, συγχωνεύονται όλα τα ταξινομημένα buckets σε μία πλήρη ταξινομημένη λίστα.

Ταξινόμηση Διαχωρισμού  Προϋπόθεση για να δουλέψει αποδοτικά ο αλγόριθμος αυτός είναι ο διαχωρισμός να γίνεται σε περίπου ίσου μεγέθους buckets.  Τότε σε κάθε αναδρομή ο σχετικός παράγοντας διαμέρισης είναι Θ(S), οπότε θα υπάρχουν O(log S n) επίπεδα αναδρομής.  Μετά από κάθε επίπεδο αναδρομής διατρέχουμε όλα τα αντικείμενα (scan σε O(n)), ώστε να επιλέξουμε τα νέα στοιχεία διαχωρισμού.  Συνολικό Κόστος: O(nlog S n)

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

Ταξινόμηση Διαχωρισμού στον δίσκο  Όλα τα δεδομένα είναι στον δίσκο.  Για να χωρέσουν τα buckets στην κύρια μνήμη πρέπει να επιλέξουμε S  Θ(M/B)= Θ(m) στοιχεία διαχωρισμού.  Σύνολο Αναδρομών :  Συνολικό Κόστος I/O: Βέλτιστο (D=1)

Ταξινόμηση Διαχωρισμού στον δίσκο  Καθώς σαρώνονται τα δεδομένα σε κάθε επίπεδο, τα buckets στέλνονται στην κύρια μνήμη ένα - ένα για επεξεργασία  Εκεί όμως ομαδοποιούνται σε buffers (μεγέθους ενός μπλοκ Β )  Κάθε φορά που γεμίζει ένας buffer ( μετά από ταξινόμηση ) γράφεται με ένα I/O στον δίσκο πάλι :

Ταξινόμηση Διαχωρισμού (D δίσκοι )  Με λωριδοποίηση έχουμε κόστος :  Δεν είναι όμως το βέλτιστο ( για μικρό D είναι επαρκές ).  Για να έχουμε το βέλτιστο : πρέπει να διαμορφώνονται τα buckets σε κάθε επίπεδο αναδρομής με κόστος O(n/D) I/O ς.  Για να γίνει αυτό πρέπει να διαβάζονται και να γράφονται μαζικά Θ (D) μπλοκ, αλλά και να διασκορπιστούν ομοιόμορφα στους δίσκους ώστε να μην επιβαρύνονται κάποιοι περισσότερο.  Πιο πολύπλοκοι αλγόριθμοι, π. χ. Partial Striping.

Επιλογή Στοιχείων Διαχωρισμού (S)  Το μέγιστο πλήθος στοιχείων διαχωρισμού είναι max S=Θ(M/B)= Θ(m).  Στο τελευταίο όμως επίπεδο αναδρομής δεν έχει νόημα να έχουμε λιγότερα από Θ(M) αντικείμενα.  Άρα μπορούμε να περιορίσουμε το S σε O(N/M)=O(n/m).  Τελικά μας συμφέρει να επιλέξουμε: S=Θ(min{m,n/m}).  Είναι όμως δύσκολο να επιλέξουμε ντετερμινιστικά Θ(min{m,n/m}) στοιχεία διαχωρισμού, ώστε τα buckets να έχουν το ίδιο περίπου μέγεθος.

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

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

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

Παράδειγμα Merge Sort (2- δρόμων )  Σε κάθε πέρασμα διαβάζουμε και γράφουμε στον δίσκο κάθε ομάδα μπλοκ.  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

Ταξινόμηση Συγχώνευσης (R δρόμων ) εγγραφή ανάγνωση Συγχωνευτής 4-δρόμων  Γενίκευση της συγχώνευσης δύο δρόμων:  Η συγχώνευση R ακολουθιών με N στοιχεία απαιτεί O(N/B) I/Oς (δεδομένου ότι R ≤ M/B – 1).  Συνολικό κόστος: O(nlog m n) επειδή έχουμε R=Θ(m).

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

Ανάλυση της Απόδοσης  Κτίζονται N/M ταξινομημένες λίστες μεγέθους Μ  Επαναληπτικά συγχωνεύονται οι λίστες  φάσεις με I/Oς η κάθε μία  συνολικό κόστος:

Single Buffering στην Merge Sort  Συμφέρει η είσοδος να γίνεται από έναν ή περισσότερους δίσκους και η έξοδος σε άλλον δίσκο.

Γενική Τεχνική – Double Buffering  Για να μειώσουμε το χρόνο αναμονής για την ολοκλήρωση των Ι/Ο χρησιμοποιούμε διπλούς buffers.  Καθώς γεμίζει ο 1 ος εμείς χρησιμοποιούμε τον έτοιμο (2 ο ). ΕΞΟΔΟΣ ΕΞΟΔΟΣ΄ Δίσκος ΕΙΣΟΔΟΣ1 ΕΙΣΟΔΟΣ R ΕΙΣΟΔΟΣ 2 ΕΙΣΟΔΟΣ 1΄ ΕΙΣΟΔΟΣ 2΄ ΕΙΣΟΔΟΣ R΄ Μέγεθος μπλοκ B  Προφανώς θα πρέπει να ισχύει: R<m/2-1.

Μεταθέσεις  Η μετάθεση είναι μία ειδική περίπτωση ταξινόμησης Ν στοιχείων με βάση μία αναδιάταξή τους.  Η μέση και χειρότερη πολυπλοκότητα κόστους I/O για να μεταθέσουμε N στοιχεία χρησιμοποιώντας D δίσκους είναι:  Στην περίπτωση που έχουμε Βlogm=ο(logn), είναι πιο γρήγορο να μετακινούμε τα στοιχεία ένα-ένα χωρίς μπλοκ, οπότε έχουμε:

Μοντέλα Εσωτερικής Μνήμης

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

Internal Memory Model  Όπως στο Cache Memory Model (CMM) συν :  Β΄ : το πλήθος των δεδομένων σε μία σελίδα μνήμης (Memory Page)  Τ : το πλήθος των μεταφράσεων στον TLB (Translation Look-aside Buffer)  Μοντέλο Κόστους όπως στο CMM συν :  TLB αποτυχίες

ΤΕΛΟΣ