AlphaSort: A Cache-Sensitive Parallel External Sort Chris Nyberg, Tom Barclay, Zarka Cvetanovic, Jim Gray and David Lomet.

Slides:



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

Αφαιρετικοί Τυποι Δεδομένων
Παράδειγμα 1:Ταξινόμηση Φυσαλίδας
Παράδειγμα 1:Σειριακή αναζήτηση
Εισαγωγή στους Αλγόριθμους Ταξινόμησης
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Αλεξιάδης Γεώργιος ΕΠΠΑΙΚ Σαπών
Ανακτηση Πληροφοριασ σε νεφη Υπολογιστων
Εισαγωγή στην επιστήμη των υπολογιστών
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
Επιμέλεια Π. Τσάκωνας. 1. Ποια από τα ακόλουθα αποσπάσματα αλγόριθμων πραγματοποιούν σωστά την ταξινόμηση του πίνακα Α; ΓΙΑ i ΑΠΟ 2 ΜΕΧΡΙ Ν ΓΙΑ j ΑΠΟ.
Αλγόριθμοι Ταξινόμησης
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
Επιλογή Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
ΗΥ150 – Προγραμματισμός Ξενοφών Ζαμπούλης ΗΥ-150 Προγραμματισμός Ταξινόμηση και Αναζήτηση.
Θέματα Βάσεων Δεδομένων Αποθήκευση XML δεδομένων σε Σχεσιακή Βάση Δεδομένων Θέματα Βάσεων Δεδομένων Αποθήκευση XML δεδομένων σε Σχεσιακή Βάση Δεδομένων.
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Βάσεις Δεδομένων Μάθημα 4.
Διαίρει-και-Βασίλευε
Τεχνικές Μεταγωγής Παράγραφος 1.5.
ΤΕΛΕΣΤΕΣ II ΜΑΘΗΜΑ 5.
Σημειώσεις : Χρήστος Μουρατίδης
Ασκήσεις.
Ανάλυση αλγορίθμων Παράμετροι απόδοσης ενός αλγόριθμου: Χρόνος εκτέλεσης Απαιτούμενοι πόροι, π.χ. μνήμη, επικοινωνία (π.χ. σε κατανεμημένα συστήματα) Προσπάθεια.
Αλγόριθμοι συνέχεια 2.2.4, 2.2.5,
Δομές Δεδομένων.
Ενεργή επιλογή αλγορίθμου, Active Algorithm Selection, Feilong Chen and Rong Jin Εύα Σιταρίδη.
Σχεδίαση Αλγορίθμων. Διεργασίες (1/2) Μία διεργασία αλληλεπιδρά με το περιβάλλον της δεχόμενη είσοδο και παράγοντας έξοδο.
Δυναμικη Δεσμευση Μνημης Συνδεδεμενες Λιστες (dynamic memory allocation, linked lists) Πως υλοποιουμαι προγραμματα που δεν γνωριζουμε πριν την εκτελεση.
ΕΣ 08: Επεξεργαστές Ψηφιακών Σημάτων © 2006 Nicolas Tsapatsoulis Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου.
Αλγόριθμοι Ταξινόμησης
Διδακτική της Πληροφορικής ΗΥ302 Εργασία :Παρουσίαση σχολικού βιβλίου Γ’ Λυκείου Τεχνολογικής Κατεύθυνσης «Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον»
Μοντέλα - Αλγόριθμοι – Ταξινόμηση Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Λεξικό, Union – Find Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο.
Quicksort Διδάσκοντες: Σ. Ζάχος, Δ. Φωτάκης Επιμέλεια διαφανειών: Δ. Φωτάκης Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εθνικό Μετσόβιο Πολυτεχνείο.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Εισαγωγή στην Επεξεργασία Ερωτήσεων.
ΕΠΛ 231 – Δομές Δεδομένων και Αλγόριθμοι
ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ §3.7 ΤΑΞΙΝΟΜΗΣΗ
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
Ταξινόμηση - Sorting.
ΗΥ150 – ΠρογραμματισμόςΞ. Ζαμπούλης ΗΥ-150 Προγραμματισμός Αρχεία.
Ενότητα 2.1 Αλγόριθμοι Ταξινόμησης O(n 2 ) & O(nlogn) Σχεδίαση & Ανάλυση Αλγορίθμων.
Φυσική Αποθήκευση Αρχείων (1/3) Εισαγωγή στην Πληροφορκή 1 Τα αρχεία αποθηκεύονται συνήθως στο σκληρό δίσκο, επομένως η διαχείριση του χώρου του δίσκου.
1 Είδη μέσων αποθήκευσης Πρωτεύοντα μέσα αποθήκευσης κεντρική μνήμη και όλες οι υπόλοιπες μνήμες (π.χ καταχωρητές, cache memory) Δευτερεύοντα μέσα αποθήκευσης.
Α.Ε.Π.Π. ΟΠΤΙΚΟΠΟΙΗΜΕΝΗ ΠΑΡΟΥΣΙΑΣΗ ΤΗΣ ΤΑΞΙΝΟΜΗΣΗΣ ΠΙΝΑΚΑ ΜΕ ΤΗ ΜΕΘΟΔΟ ΤΗΣ ΦΥΣΣΑΛΙΔΑΣ (Bubble Sort) ΙΟΡΔΑΝΗΣ ΣΑΒΒΟΥΛΙΔΗΣ
ΔΥΑΔΙΚΗ ΑΝΑΖΗΤΗΣΗ & ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΣΥΓΧΩΝΕΥΣΗ. Δυαδική αναζήτηση (Binary search) ΔΕΔΟΜΕΝΟ: ένα μεγάλο αρχείο που περιέχει τιμές z [0,1,…,n-1] ταξινομημένες.
Αλγόριθμοι Ταξινόμησης – Μέρος 4 Μανόλης Κουμπαράκης Δομές Δεδομένων και Τεχνικές Προγραμματισμού 1.
Ασκήσεις WEKA Δέντρα αποφάσεων.
Αλγόριθμοι Ταξινόμησης – Μέρος 4
ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ
Δενδρικές Μέθοδοι Προσπέλασης
στην Επιστήμη των Υπολογιστών Κωδικός Διαφανειών: MKT110
9η Διάλεξη Ταξινόμηση Ε. Μαρκάκης
Διδάσκων: Δρ. Τσίντζα Παναγιώτα
DREMEL: Interactive Analysis of Web-Scale Datasets
Μανασσάκης Βασίλης Καθηγητής Πληροφορικής
ΔΙΑΓΩΝΙΣΜΟΣ ΓΙΑ ΤΗ ΔΙΑΦΥΛΙΚΗ ΙΣΟΤΗΤΑ
Σειριακή ή Γραμμική Αναζήτηση 1.Μοναδικό Κλειδί (key)
Η τακτοποίηση των κόμβων μίας δομής με μία ιδιαίτερη σειρά είναι μία πολύ σημαντική λειτουργία που ονομάζεται ταξινόμηση (sorting) ή διάταξη (ordering).
Φοιτητής: Τσακίρης Αλέξανδρος Επιβλέπων: Ευάγγελος Ούτσιος
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
Πτυχιακή εργασία του Παύλου Παντικάκη (2468)
οι 3 Δομές Επανάληψης ή αλλιώς οι τρεις σωματοφύλακες…
Γ6.9 Δημιουργία και Τροποποίηση Ερωτημάτων
Γ6.11 Ταξινόμηση Δεδομένων
Δομές Δεδομένων (Data Structures)
Μεταγράφημα παρουσίασης:

AlphaSort: A Cache-Sensitive Parallel External Sort Chris Nyberg, Tom Barclay, Zarka Cvetanovic, Jim Gray and David Lomet

Χαρακτηριστικά AlphaSort O Alphasort αλγόριθμος χρησιμοποιεί Clustered data structures File striping Quicksort Shared memory multiprocessors

Benchmark (1) Είσοδος: αρχείο από bytes records Πεδίο κλειδιού 10 bytes Είσοδος σε τυχαία σειρά Είσοδος δεν συμπιέζεται Έξοδος: ταξινομημένη η είσoδος με αύξουσα σειρά

Benchmark (2) 1.Έναρξη προγράμματος 2.Άνοιγμα αρχείου εισόδου και δημιουργία αρχείου εξόδου 3.Διάβασμα αρχείου εισόδου 4.Ταξινόμηση αρχείου 5.Εργαφή αρχείου εξόδου 6.Κλείσιμο αρχείων 7.Τερματισμός προγράμματος

Σύγκριση αποδόσεων (1)

Σύγκριση αποδόσεων (2)

Πλεονεκτήματα AlphaSort Προσπάθεια μείωσης των cache-misses. Mε την μείωση των καθυστερήσεων λόγω cache- misses πετύχαμε 4:1 βελτίωση της ταχύτητας, ενώ αν είχαμε εξαλείψει τελείως τα cache-misses θα είχαμε πετύχει επιπλέον 3:1 επιτάχυνση.

Μείωση cache-misses Επιλογή αλγορίθμου ταξινόμησης Quicksort Ταξινόμηση με χρήση πίνακα pointer ή key-prefix Οι εκτελέσεις που πραγματοποιούνται με τον αλγόριθμο Quicksort συνχωνεύονται με την χρήση replacement-selection tree

Eπιλογή Quicksort αλγορίθμου Ο αλγόριθμός Quicksort επιλέκτηκε εξαιτίας της πολύ καλής cache συμπεριφοράς του

Σύγκριση 4 τύπων Quicksort αλγορίθμου(1) Ταξινόμηση με χρήση Pointer Key/Pointer Key-Prefix/Pointer Record

Σύγκριση 4 τύπων Quicksort αλγορίθμου(2)

Σύμπεράσματα αποτελεσμάτων Για μεγάλα records η χρήση ταξινόμησης με Key/Pointer, Key-Prefix/Pointer είναι προτιμότερη Για μικρά records (<16 bytes) είναι βέλτιστη η χρήση ταξινόμησης με record Ο AlphaSort χρησιμοποιεί Key-Prefix Quicksort

Το σύστημα των multiprocessors με μοιραζόμενη μνήμη (1) Συστήματα Dec AXP μπορούν να έχουν πάνω απο 6 processors σε μια κατανεμημένη μνήμη. Ο Αlphasort δημιουργεί μια διεργασία για κάθε processor. H πρώτη διεργασία λέγετε root και οι άλλες workers

Το σύστημα των multiprocessors με μοιραζόμενης μνήμη (2) Η διεργασία root δημιουργεί ένα χώρο μοιραζόμενων διευθύνσεων, ανοίγει το input αρχείο, δημιουργεί το output αρχείο, εκτελεί ΙΟ διαδικασίες, αρχικοποιεί τις workers και κατευθύνει τις δραστηριότητες τους Οι διεργασίες workers εκτελούν την ταξινόμηση

Disk bottleneck προβλήμα Ανεξάρτητα πόσο γρήγορος είναι ο processor χρειαζόμαστε σίγουρα 1min για ΙΟ δραστηριότητες αφού έχουμε ταχύτητα 4.5MB/s για ανάγνωση και 3.5MB/s για εγραφή. Συνεπώς για 100MB record θα χρειαστούμε 25seconds για ανάγνωση και 35seconds για εγραφή.

Επίλυση του disk bottleneck προβλήματος Μοιράζουμε τα δεδομένα σε περισσότερους από ένα δίσκους (data striping) με την χρήση ενός Genroco disk array controller. Χωρίζοντας τα δεδομένα σε 8 δίσκους πετύχαμε ταχύτητα 27MB/s για ανάγνωση και 22MB/s για εγραφή, ενώ το overhead είναι ελάχιστο.

Οverhead data striping

Ελαχιστοποίηση των cache misses σε γενικότερα προγράμματα Ο compiler θα μπορούσε να συστοιχίζει μαζί τα συχνότερα χρησιμοποιούμενα βασικά blocks. Η συστοίχηση αυτή θα γίνεται λαμβάνοντας υπόψην run-time στατιστικά Δόμηση των δεδομένων στην μορφή line-list που φαίνεται παρακάτω

Νέα προτεινόμενα benchmark MinuteSort PennySort