Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
ΔημοσίευσεIrene Chris Τροποποιήθηκε πριν 9 χρόνια
1
AlphaSort: A Cache-Sensitive Parallel External Sort Chris Nyberg, Tom Barclay, Zarka Cvetanovic, Jim Gray and David Lomet
2
Χαρακτηριστικά AlphaSort O Alphasort αλγόριθμος χρησιμοποιεί Clustered data structures File striping Quicksort Shared memory multiprocessors
3
Benchmark (1) Είσοδος: αρχείο από 10 6 100-bytes records Πεδίο κλειδιού 10 bytes Είσοδος σε τυχαία σειρά Είσοδος δεν συμπιέζεται Έξοδος: ταξινομημένη η είσoδος με αύξουσα σειρά
4
Benchmark (2) 1.Έναρξη προγράμματος 2.Άνοιγμα αρχείου εισόδου και δημιουργία αρχείου εξόδου 3.Διάβασμα αρχείου εισόδου 4.Ταξινόμηση αρχείου 5.Εργαφή αρχείου εξόδου 6.Κλείσιμο αρχείων 7.Τερματισμός προγράμματος
5
Σύγκριση αποδόσεων (1)
6
Σύγκριση αποδόσεων (2)
7
Πλεονεκτήματα AlphaSort Προσπάθεια μείωσης των cache-misses. Mε την μείωση των καθυστερήσεων λόγω cache- misses πετύχαμε 4:1 βελτίωση της ταχύτητας, ενώ αν είχαμε εξαλείψει τελείως τα cache-misses θα είχαμε πετύχει επιπλέον 3:1 επιτάχυνση.
8
Μείωση cache-misses Επιλογή αλγορίθμου ταξινόμησης Quicksort Ταξινόμηση με χρήση πίνακα pointer ή key-prefix Οι εκτελέσεις που πραγματοποιούνται με τον αλγόριθμο Quicksort συνχωνεύονται με την χρήση replacement-selection tree
9
Eπιλογή Quicksort αλγορίθμου Ο αλγόριθμός Quicksort επιλέκτηκε εξαιτίας της πολύ καλής cache συμπεριφοράς του
10
Σύγκριση 4 τύπων Quicksort αλγορίθμου(1) Ταξινόμηση με χρήση Pointer Key/Pointer Key-Prefix/Pointer Record
11
Σύγκριση 4 τύπων Quicksort αλγορίθμου(2)
12
Σύμπεράσματα αποτελεσμάτων Για μεγάλα records η χρήση ταξινόμησης με Key/Pointer, Key-Prefix/Pointer είναι προτιμότερη Για μικρά records (<16 bytes) είναι βέλτιστη η χρήση ταξινόμησης με record Ο AlphaSort χρησιμοποιεί Key-Prefix Quicksort
13
Το σύστημα των multiprocessors με μοιραζόμενη μνήμη (1) Συστήματα Dec AXP μπορούν να έχουν πάνω απο 6 processors σε μια κατανεμημένη μνήμη. Ο Αlphasort δημιουργεί μια διεργασία για κάθε processor. H πρώτη διεργασία λέγετε root και οι άλλες workers
14
Το σύστημα των multiprocessors με μοιραζόμενης μνήμη (2) Η διεργασία root δημιουργεί ένα χώρο μοιραζόμενων διευθύνσεων, ανοίγει το input αρχείο, δημιουργεί το output αρχείο, εκτελεί ΙΟ διαδικασίες, αρχικοποιεί τις workers και κατευθύνει τις δραστηριότητες τους Οι διεργασίες workers εκτελούν την ταξινόμηση
15
Disk bottleneck προβλήμα Ανεξάρτητα πόσο γρήγορος είναι ο processor χρειαζόμαστε σίγουρα 1min για ΙΟ δραστηριότητες αφού έχουμε ταχύτητα 4.5MB/s για ανάγνωση και 3.5MB/s για εγραφή. Συνεπώς για 100MB record θα χρειαστούμε 25seconds για ανάγνωση και 35seconds για εγραφή.
16
Επίλυση του disk bottleneck προβλήματος Μοιράζουμε τα δεδομένα σε περισσότερους από ένα δίσκους (data striping) με την χρήση ενός Genroco disk array controller. Χωρίζοντας τα δεδομένα σε 8 δίσκους πετύχαμε ταχύτητα 27MB/s για ανάγνωση και 22MB/s για εγραφή, ενώ το overhead είναι ελάχιστο.
17
Οverhead data striping
18
Ελαχιστοποίηση των cache misses σε γενικότερα προγράμματα Ο compiler θα μπορούσε να συστοιχίζει μαζί τα συχνότερα χρησιμοποιούμενα βασικά blocks. Η συστοίχηση αυτή θα γίνεται λαμβάνοντας υπόψην run-time στατιστικά Δόμηση των δεδομένων στην μορφή line-list που φαίνεται παρακάτω
19
Νέα προτεινόμενα benchmark MinuteSort PennySort
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.