Εύρεςη Διαμέςου ςε κατανεμημένα δεδομένα με ΜΡΙ

Σχετικά έγγραφα
Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Η γλώςςα προγραμματιςμού C

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α)

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

Δομζσ Δεδομζνων Πίνακεσ

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Δομζσ Δεδομζνων. Αναηιτθςθ και Ταξινόμθςθ Διάλεξθ 3

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

(Α3 1 ) Σασ δίνεται το παρακάτω αλγορικμικό τμιμα

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

Θεςιακά ςυςτιματα αρίκμθςθσ

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Αναφορά Εργαςίασ Nim Game

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

17. Πολυδιάςτατοι πίνακεσ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΦΥΕ 14 ΑΚΑΔ. ΕΤΟΣ Η ΕΡΓΑΣΙΑ. Ημερομηνία παράδοςησ: 12 Νοεμβρίου (Όλεσ οι αςκιςεισ βακμολογοφνται ιςοτίμωσ με 10 μονάδεσ θ κάκε μία)

Modellus 4.01 Συ ντομοσ Οδηγο σ

Ε. ε περίπτωςθ που θ διαφορά των δφο ηαριϊν είναι 3 τότε ο παίκτθσ ξαναρίχνει μόνο ζνα ηάρι.

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

ςυςτιματα γραμμικϊν εξιςϊςεων

Εργαςτιριο Βάςεων Δεδομζνων

Διαδικαζία Διατείριζης Εκηύπωζης Ιζοζσγίοσ Γενικού - Αναλσηικών Καθολικών. (v )

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Αςφάλεια και Προςταςία Δεδομζνων

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

Απάντηση ΘΕΜΑ1 ΘΕΜΑ2. t=t 1 +T/2. t=t 1 +3T/4. t=t 1 +T ΔΙΑΓΩΝΙΣΜΑ ΣΕ ΤΑΛΑΝΤΩΣΕΙΣ-ΚΥΜΑΤΑ 1) (Β), 2. (Γ), 3. (Γ), 4. (Γ), 5. (Δ).

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Ποσοτικές Μέθοδοι Δρ. Χάϊδω Δριτσάκη

Ιδιότθτεσ πεδίων Γενικζσ.

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

Εφδοξοσ+ Συνδεκείτε ςτθν Εφαρμογι Φοιτθτϊν και μεταβείτε ςτθ ςελίδα «Ανταλλαγι Βιβλίων (Εφδοξοσ+)».

16. Πίνακεσ και Συναρτήςεισ

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

Πωσ δθμιουργώ φακζλουσ;

Προχωρθμζνα Θζματα Συςτθμάτων Ελζγχου

Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

ΔΟΜΗ ΑΠΛΗΣ ΕΠΙΛΟΓΗΣ Αςκήςεισ με ψευδογλώςςα/ διάγραμμα ροήσ. Αντώνης Μαϊργιώτης

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

Ζρευνα ικανοποίθςθσ τουριςτϊν

ΜΑΘΗΜΑΤΙΚΑ ΕΠΙΠΕΔΟ (Β - Γ Λυκείου)

Ενδεικτικζσ Λφςεισ Θεμάτων

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

8 τριγωνομετρία. βαςικζσ ζννοιεσ. γ ςφω. εφω και γ. κεφάλαιο

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ

Δ ιαγώνιςμα ς το μάθημα Ανάπτυξη Εφαρμογών ςε Προγ ραμματιςτικό Περιβάλ λον

ΕΡΓΑΣΗΡΙΟ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

Πανελλαδικε σ Εξετα ςεισ Γ Τα ξησ Ημερη ςιου και Δ Τα ξησ Εςπερινου Γενικου Λυκει ου

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Πανεπιςτιμιο Κφπρου ΟΙΚ 223: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων:

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

Δζντρα. Δομζσ Δεδομζνων

Εργαστηριακή άσκηση στο μάθημα του Αυτομάτου Ελέγχου (ΜΜ803)

Οδθγόσ για τθν αξιοποίθςθ τθσ διαςφνδεςθσ του myschool με το Εκνικό Δθμοτολόγιο

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

3 θ διάλεξθ Επανάλθψθ, Επιςκόπθςθ των βαςικϊν γνϊςεων τθσ Ψθφιακισ Σχεδίαςθσ

Λαμβάνοντασ υπόψη ότι κατά την πρόςθεςη δφο δυαδικϊν ψηφίων ιςχφει: Κρατοφμενο

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

(3Μονάδεσ) Δεδομζνα //Α// Για i από 1 μζχρι 10 k (100+i)mod 101 B[k] A[i] Τζλοσ_επανάλθψθσ Αποτελζςματα //Β,k//

ΠΑΝΕΠΙΣΘΜΙΟ ΔΤΣΙΚΘ ΜΑΚΕΔΟΝΙΑ ΣΜΘΜΑ ΜΘΧΑΝΙΚΩΝ ΠΛΘΡΟΦΟΡΙΚΘ ΚΑΙ ΣΘΛΕΠΙΚΟΙΝΩΝΙΩΝ. Λειτουργικά υςτιματα, 4 ο Εξάμθνο Ψθφιακι χεδίαςθ ΙΙ, 4 ο Εξάμθνο

Κάνουμε κλικ ςτθν επιλογι του οριηόντιου μενοφ «Get Skype»για να κατεβάςουμε ςτον υπολογιςτι μασ το πρόγραμμα του Skype.

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

ΓΕΦΤΡΟΠΟΙΪΑ: ΜΟΝΙΜΑ ΚΑΙ ΚΙΝΗΣΑ ΦΟΡΣΙΑ. ΔΙΟΝΥΣΙΟΣ Ε. ΜΠΙΣΚΙΝΗΣ Τμήμα Πολιτικών Μηχανικών Τ.Ε. Τ.Ε.Ι. Δυτικής Ελλάδας

Διάδοση θερμότητας σε μία διάσταση

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 9 θ & 10 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Β

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL)

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

GNSS Solutions guide. 1. Create new Project

Διαχείριςη Εκπαιδευτικού Υλικού (ΠΑΚΕ) Πληροφοριακό Σύςτημα (MIS)

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε)

Βάρειπ Δεδξμέμωμ. Επγαστήπιο ΙΙ. Τμήμα Πλεπουοπικήρ ΑΠΘ

ΕΠΑΝΕΚΔΟΗ ΣΙΜΟΛΟΓΙΩΝ ΙΑΝΟΤΑΡΙΟΤ (version )

Ιςίδωροσ Ροδομαγουλάκθσ Αλγόρικμοι Δικτφων και Πολυπλοκότθτα K-median

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΗ. του ΙΑΣΡΟΦΑΡΜΑΚΕΤΣΙΚΟΤ ΦΑΚΕΛΟΤ ΑΘΕΝΩΝ Για τον ΟΙΚΟ ΝΑΤΣΟΤ ΕΡΓΑΣΗΡΙΑΚΟΙ ΓΙΑΣΡΟΙ. iknowhow Πληροφορική A.E

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ

Transcript:

ΣΜΗΜΑ ΗΛΕΚΣΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Τ ΑΠΘ ΣΟΜΕΑ ΗΛΕΚΣΡΟΝΙΚΗ ΚΑΙ Η/Τ Εύρεςη Διαμέςου ςε κατανεμημένα δεδομένα με ΜΡΙ Παράλλθλα και Διανεμθμζνα υςτιματα 2θ Εργαςία Μόςχογλου τυλιανόσ(697) - Καηά Κυριακι(6933) 211-212

Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 Περιεχόμενα 1. Ειςαγωγι.. 2 2. Η υλοποίθςι μασ 2 2.1. Ορίςματα 2.2. Λειτουργία ΜΡΙ - Διαχωριςμόσ διεργαςιϊν ςε Master και Slaves 2.3. Δθμιουργία και διαμοιραςμόσ δεδομζνων 2.4. Αρχικοποίθςθ k 2.5. Επιλογι pivot και διαχωριςμόσ των δεδομζνων με βάςθ το pivot 2.6. Κακοριςμόσ επόμενου βιματοσ 2.7. υνκικεσ τερματιςμοφ 2.. Επιλογι pivot: θ ςυνάρτθςθ fpivot( ) 2.9. Διαχωριςμόσ των δεδομζνων: θ ςυνάρτθςθ locatepivot( ) 3. Ανάλυςθ πολυπλοκότθτασ του αλγορίκμου 6 3.1. τθν περίπτωςθ που δεν εκτελείται τοπικι ταξινόμθςθ 3.2. τθν περίπτωςθ που εκτελείται τοπικι ταξινόμθςθ 4. Ζλεγχοσ ορκισ λειτουργίασ.. 7 5. Επίδοςθ του αλγορίκμου.. 7 5.1. Μζτρθςθ χρόνου εκτζλεςθσ 5.2. Πειράματα που εκτελζςτθκαν ςε ςυςτιματα με επεξεργαςτι DUAL CORE 2.53 GHZ 5.3. Πειράματα που εκτελζςτθκαν ςτο Διάδθ 5.4. χολιαςμόσ αποτελεςμάτων 6. Αντί επιλόγου 13 1

Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 Ειςαγωγή Θζμα τθσ παροφςασ εργαςίασ είναι θ εφρεςθ τθσ διαμζςου ς' ζνα ςφνολο ςθμείων που είναι κατανεμθμζνα ςε διαφορετικζσ διεργαςίεσ. Η παράλλθλθ εκτζλεςθ των διεργαςιϊν, θ επικοινωνία και ο ςυγχρονιςμόσ τουσ γίνεται με τθ χριςθ του ςυςτιματοσ MPI (Message Passing Interface). Σο πρόγραμμα που αναπτφξαμε επιχειρεί να προςομοιϊςει και να προςφζρει μια προτεινόμενθ λφςθ ςτθν εφρεςθ τθσ διαμζςου για μεγάλο αρικμό ςθμείων που είναι κατανεμθμζνα ςε διαφορετικοφσ υπολογιςτζσ και όχι ςε διαφορετικζσ διεργαςίεσ. Σο πρόβλθμα αυτό απαντάται ςτθν πραγματικότθτα αρκετά ςυχνά όταν απαιτείται θ ςτατιςτικι ανάλυςθ μεγάλου όγκου διαμοιραςμζνων δεδομζνων. Η υλοποίηςή μασ Αλγόρικμοσ εφρεςθσ διαμζςου για ςθμεία κατανεμθμζνα ςε διαφορετικζσ διεργαςίεσ Ο αλγόρικμοσ που χρθςιμοποιιςαμε για τθν επίλυςθ του προβλιματοσ αποτελεί μια παραλλθλοποιθμζνθ εκδοχι του Selection Algorithm, ο οποίοσ επιτυγχάνει τθν εφρεςθ του k-ιοςτοφ ςτοιχείου από ζνα ςφνολο δεδομζνων. Παρακάτω παρουςιάηεται αναλυτικά θ λειτουργία του αλγορίκμου με τθ χριςθ MPI και δίνονται οι απαραίτθτεσ επεξθγιςεισ για τισ ςυναρτιςεισ που υλοποιιςαμε. Ορίςματα Σο πρόγραμμα δζχεται ωσ ορίςματα τον αρικμό των ςτοιχείων και τον αρικμό των διεργαςιών. Λειτουργία ΜΡΙ Διαχωριςμόσ διεργαςιών ςε Master και Slaves Σο MPI απαιτεί να τρζχει το ίδιο εκτελζςιμο για όλεσ τισ διεργαςίεσ. Η απόδοςθ διαφορετικισ λειτουργικότθτασ ςτισ διεργαςίεσ πραγματοποιείται με τον ζλεγχο του αφξοντα αρικμοφ (ID) τθσ διεργαςίασ. Ο ζλεγχοσ γίνεται με τθν κλιςθ τθσ ςυνάρτθςθσ MPI_Comm_rank( ), θ οποία επιςτρζφει το ID τθσ εκάςτοτε διεργαςίασ. Ζτςι, μία εκ των διεργαςιϊν (ςυγκεκριμζνα αυτι που ζχει taskid=) λειτουργεί ωσ Master process και αναλαμβάνει τθ ςυλλογι και αποςτολι δεδομζνων από και προσ όλεσ τισ διεργαςίεσ (master και slaves). Παρακάτω κα παρουςιαςτεί αναλυτικότερα θ λειτουργικότθτα τθσ 2

Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 Master process. Όλεσ οι διεργαςίεσ αναλαμβάνουν Ν ςτοιχεία με εξαίρεςθ τθν τελευταία που αναλαμβάνει Ν+n ςτοιχεία, όπου: N=το πθλίκο τθσ ακζραιασ διαίρεςθσ: αρικμόσ ςτοιχείων/αρικμόσ διεργαςιϊν ν=το υπόλοιπo τθσ ακζραιασ διαίρεςθσ: αρικμόσ ςτοιχείων/αρικμόσ διεργαςιϊν Δημιουργία και διαμοιραςμόσ δεδομένων Κακϊσ το πρόγραμμά μασ αποτελεί μια προςομοίωςθ ενόσ πραγματικοφ προβλιματοσ τα ςτοιχεία προσ επεξεργαςία δεν προχπάρχουν και πρζπει να δθμιουργθκοφν με τυχαίο τρόπο. Ζτςι, πρϊτα από όλα, θ master process αρχικοποιεί τον ςυνολικό πίνακα (totalarray) όλων των ςτοιχείων. Η αρχικοποίθςθ γίνεται με τθ χριςθ τθσ ςυνάρτθςθσ rand( ) θ οποία, ζτςι όπωσ τθν ορίςαμε, παράγει τυχαίουσ ακζραιουσ αρικμοφσ από ζωσ 9999. τθ ςυνζχεια, αποςτζλλει ςε κάκε slave process τα ςτοιχεία που τθσ αναλογοφν με βάςθ τον υπολογιςμό που ζχει προθγθκεί. Η ίδια θ Master process αναλαμβάνει ζνα υποςφνολο των ςτοιχείων. Ζπειτα κάκε διεργαςία ταξινομεί τοπικά τα ςτοιχεία που τθσ αναλογοφν καλϊντασ τθ ςυνάρτθςθ qsort( ). Αρχικοποίηςη k H Master process αρχικοποιεί το k (όπου k θ επικυμθτι κζςθ του ςτοιχείου ςτο ςυνολικό ταξινομθμζνο πίνακα-ςτθν περίπτωςι μασ k=μεςαίο ςτοιχείο) ωσ εξισ: αν ο αρικμόσ των ςτοιχείων είναι άρτιοσ: k=αρικμόσ ςτοιχείων/2 αν ο αρικμόσ των ςτοιχείων είναι περιττόσ: k=(ακζραιοσ)αρικμόσ ςτοιχείων/2 + 1 Επιλογή pivot και διαχωριςμόσ των δεδομένων με βάςη το pivot Ζπειτα, θ Master process επιλζγει ζνα τυχαίο ςτοιχείο και το ορίηει ωσ pivot. Αποςτζλλει αυτό το pivot ςε όλεσ τισ διεργαςίεσ με τθ χριςθ τθσ ςυνάρτθςθσ MPI_Bcast( ). Κάκε διεργαςία, διαχωρίηει τον πίνακα των ςτοιχείων που τθσ αναλογεί ςε δφο τμιματα. Σο πρϊτο τμιμα περιλαμβάνει τα ςτοιχεία που είναι μικρότερα από το pivot και το δεφτερο τα ςτοιχεία που είναι μεγαλφτερα ι ίςα του pivot. Η διαδικαςία αυτι εκτελείται με τθν κλιςθ τθσ ςυνάρτθςθσ locatepivot( ), θ οποία επιςτρζφει τθ κζςθ του πρϊτου ίςου ι μεγαλφτερου από το pivot ςτοιχείου, εκτελϊντασ αναηιτθςθ εντόσ των προκακοριςμζνων ορίων ενόσ πίνακα. Μετά από αυτι τθ διαδικαςία διαχωριςμοφ, κάκε διεργαςία υπολογίηει το πλικοσ των ίςων ι μεγαλφτερων του pivot ςτοιχείων του πίνακά τθσ. Σα 3

Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 πλικθ όλων των διεργαςιϊν ακροίηονται με τθ χριςθ τθσ MPI_Reduce( ) ςυνάρτθςθσ ϊςτε να προκφψει το ςυνολικό πλικοσ των ίςων ι μεγαλφτερων του pivot ςτοιχείων (μεταβλθτι totalsum). Καθοριςμόσ επόμενου βήματοσ H master process ςυγκρίνει τθν τιμι τθσ μεταβλθτισ totalsum με τθν τιμι του k: αν totalsum=k τότε θ διάμεςοσ ζχει βρεκεί και είναι το pivot. Η διάμεςοσ τυπϊνεται και το πρόγραμμα τερματίηει. αν totalsum>k τότε θ διάμεςοσ είναι μεγαλφτερθ του παρόντοσ pivot άρα θ αναηιτθςθ πρζπει να ςυνεχίςει ςτο ςφνολο των ίςων ι μεγαλφτερων αυτοφ ςτοιχείων, οπότε θ τιμι του k παραμζνει αμετάβλθτθ. αν totalsum<k τότε θ διάμεςοσ είναι μικρότερθ του παρόντοσ pivot και επομζνωσ θ αναηιτθςθ τθσ διαμζςου κα πρζπει να ςυνεχίςει ςτο ςφνολο των μικρότερων αυτοφ ςτοιχείων. Η τιμι του k ανανεϊνεται ςε k-totalsum. Αν θ διάμεςοσ δεν ζχει βρεκεί, οι slaves ενθμερϊνονται μζςω μιασ ςθμαίασ (μεταβλθτι greater) που ςτζλνει ο Master με MPI_Bcast( ) για το ποιο τμιμα του πίνακά τουσ κα πρζπει να απορρίψουν. Ζτςι, ανανεϊνουν κατάλλθλα τα όρια του πίνακα εντόσ των οποίων κα πρζπει να ςυνεχιςτεί θ αναηιτθςθ τθσ διαμζςου. Εντόσ των νζων ορίων, επιλζγουν τυχαία ζνα ςτοιχείο ωσ προτεινόμενο pivot για τθν επόμενθ επαναλθπτικι εκτζλεςθ του αλγορίκμου. O Μaster ςυλλζγει τα προτεινόμενα pivot από όλεσ τισ διεργαςίεσ με κλιςθ τθσ ςυνάρτθςθσ MPI_Gather( ) και επιλζγει τυχαία ζνα εξ αυτϊν ωσ το επόμενο pivot. H ίδια διαδικαςία επαναλαμβάνεται μζχρι να ικανοποιθκεί μία εκ των δφο ςυνκθκϊν τερματιςμοφ και να βρεκεί θ διάμεςοσ. υνθήκεσ τερματιςμού Σο πρόγραμμα τερματίηει κανονικά όταν totalsum=k οπότε θ διάμεςοσ ζχει βρεκεί και είναι το pivot. Όμωσ, υπάρχει και θ εξισ περίπτωςθ: ο ζλεγχοσ του προγράμματοσ ζχει περιοριςτεί ςε ζνα ςφνολο ςτοιχείων που είναι ίςα μεταξφ τουσ. Σότε ςε κάκε επανάλθψθ επιλζγεται το ίδιο pivot, το οποίο προφανϊσ ζχει τθν ίδια τιμι με τα ςτοιχεία 4

Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 και ζτςι δεν είναι δυνατόν να γίνει περαιτζρω διαχωριςμόσ αυτϊν. Ζτςι, τόςο το pivot όςο και το k ςυνεχίηουν να λαμβάνουν τισ ίδιεσ τιμζσ. Γι' αυτό τον λόγο, αποκθκεφουμε ςτουσ πίνακεσ previouspivot και previousk τισ τιμζσ των pivot και k αντίςτοιχα που χρθςιμοποιικθκαν ςτισ 2 τελευταίεσ εκτελζςεισ του αλγορίκμου και τισ ελζγχουμε με τισ τιμζσ τθσ τρζχουςασ εκτζλεςθσ. Αν διαπιςτωκεί ότι οι τιμζσ δε μεταβλικθκαν μζςα ςτισ 3 αυτζσ εκτελζςεισ, ςθμαίνει ότι αντιμετωπίηουμε τθν περίπτωςθ που προαναφζραμε και ζτςι το πρόγραμμα τερματίηει τυπϊνοντασ ωσ διάμεςο το pivot. Επιλογή pivot: η ςυνάρτηςη fpivot( ) Η ςυνάρτθςθ fpivot( ) δζχεται ωσ ορίςματα ζναν πίνακα, το ςθμείο εκκίνθςθσ τθσ αναηιτθςθσ και το εφροσ εντόσ του οποίου κα γίνει θ αναηιτθςθ. Αν το εφροσ είναι μθ μθδενικό τότε με τθν κλιςθ τθσ rand( ) επιλζγει τυχαία ζνα ςτοιχείο εντόσ αυτοφ. Αν όμωσ το εφροσ είναι μθδενικό τότε επιςτρζφει ωσ προτεινόμενο pivot τθν τιμι - 1. ε κάκε επανάλθψθ του αλγορίκμου το pivot επιλζγεται τυχαία μεταξφ όλων των εκάςτοτε εξεταηόμενων ςτοιχείων. Κάκε διεργαςία επιλζγει με τθν κλιςθ τθσ fpivot( ) ςυνάρτθςθσ ζνα ςτοιχείο από το κομμάτι του πίνακα ςτο οποίο ζχει περιορίςει τον ζλεγχό τθσ. Όλα τα ςτοιχεία αυτά ςυλλζγονται από το Master και καταχωροφνται ςτον πίνακα pivots. O master με τθ χριςθ τθσ rand( ) επιλζγει τυχαία ζνα εξ αυτϊν και το ορίηει ωσ pivot. Προκειμζνου να μθν επιλεγεί ωσ pivot μθ αποδεκτι τιμι εκτελείται ζνασ βρόχοσ ελζγχου μζχρι να επιλεγεί ωσ pivot μια τιμι διάφορθ του -1. Εναλλακτική επιλογή pivot Ωσ pivot κα μποροφςε να επιλζγεται κάκε φορά θ διάμεςοσ των διαμζςων (median of medians) από τα ςτοιχεία κάκε διεργαςίασ. Η προςζγγιςθ αυτι, αν και βελτιςτοποιεί το χρόνο εκτζλεςθσ του αλγορίκμου για ςχετικά μικρό όγκο δεδομζνων, υςτερεί ζναντι τθσ τυχαίασ επιλογισ pivot για μεγάλο όγκο δεδομζνων. (πθγι: Wikipedia) Διαχωριςμόσ των δεδομένων: η ςυνάρτηςη locatepivot( ) Η ςυνάρτθςθ locatepivot( ) λειτουργεί ωσ εξισ: δζχεται ωσ ορίςματα ζναν πίνακα, ζναν αρικμό pivot με βάςθ τον οποίον κα γίνει ο διαχωριςμόσ του πίνακα, το ςθμείο εκκίνθςθσ τθσ αναηιτθςθσ ςτον πίνακα και το εφροσ εντόσ του οποίου κα γίνει θ αναηιτθςθ. Κακϊσ τα ςτοιχεία του πίνακα είναι ιδθ ταξινομθμζνα, τα ελζγχει ζνα προσ ζνα μζχρι να εντοπιςτεί το πρϊτο ςτοιχείο που ζχει τιμι ίςθ ι μεγαλφτερθ του pivot οπότε επιςτρζφει 5

Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 τθ κζςθ του ςτον πίνακα. Αν όλα τα εξεταηόμενα ςτοιχεία ζχουν τιμι μικρότερθ του pivot, επιςτρζφει τθ κζςθ του τελευταίου εξεταηόμενου ςτοιχείου προςαυξθμζνθ κατά 1, ώςτε να εκτελεςτοφν ςωςτά οι υπολογιςμοί που κα επακολουκιςουν. Ανάλυςη πολυπλοκότητασ του αλγορίθμου την περίπτωςη που δεν εκτελείται τοπική ταξινόμηςη Ζςτω n ο ςυνολικόσ αρικμόσ των ςτοιχείων και m ο αρικμόσ των διεργαςιϊν. Τποκζτουμε ότι τα ςτοιχεία είναι τυχαία και ιςομερϊσ διαμοιραςμζνα ανάμεςα ςτισ διεργαςίεσ, δθλαδι κάκε διεργαςία αναλαμβάνει n/m ςτοιχεία. τθν i-οςτι επανάλθψθ του αλγορίκμου, αναμζνουμε ότι κάκε διεργαςία κα επεξεργαςτεί κατά μζςο όρο O(n/(m 2 i )) ςτοιχεία, κακϊσ το μζγεκοσ του ςυνόλου των ςτοιχείων που αντιςτοιχοφν ςε κάκε διεργαςία αναμζνεται να μειωκεί κατά το ιμιςυ. Επίςθσ, θ δράςθ του Μaster (αποςτολι/λιψθ μθνυμάτων) επιφορτίηει το πρόγραμμα με O(m) πολυπλοκότθτα. Ο αλγόρικμοσ τερματίηει μετά από O(log(m)) κατά μζςο όρο επαναλιψεισ, επομζνωσ θ ςυνολικι του πολυπλοκότθτα είναι: O(n/m + mlog(m)) και κακϊσ ςτθ ςυντριπτικι πλειοψθφία των περιπτϊςεων m << sqrt(n), μπορεί να απλοποιθκεί ςε O(n/m) θ οποία είναι θ καλφτερθ δυνατι πολυπλοκότθτα που μπορεί να επιτευχκεί ςτο πρόβλθμά μασ. την περίπτωςη που εκτελείται τοπική ταξινόμηςη τθν υλοποίθςι μασ επιλζξαμε κάκε διεργαςία να ταξινομεί τα ςτοιχεία που λαμβάνει. Η ταξινόμθςθ γίνεται με τθν κλιςθ τθσ qsort( ) ςυνάρτθςθσ οπότε θ πολυπλοκότθτά τθσ είναι Ο(n/m log(n/m)) κακϊσ όπωσ προαναφζρκθκε κάκε διεργαςία αναλαμβάνει n/m ςτοιχεία. Μ αυτόν τον τρόπο διευκολφνεται θ διαδικαςία διαχωριςμοφ των δεδομζνων με οδθγό το pivot, ενϊ πρακτικά, ειδικά για μεγάλο όγκο δεδομζνων, δεν επιβαρφνεται θ πολυπλοκότθτα του αλγορίκμου. 6

Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 Έλεγχοσ ορθήσ λειτουργίασ Προκειμζνου να επαλθκεφςουμε ότι το πρόγραμμά μασ επιςτρζφει τθ ςωςτι διάμεςο, ταξινομοφμε με qsort( ) τον ςυνολικό πίνακα totalarray που δθμιουργεί ο master και ελζγχουμε αν θ τιμι του k-ιοςτοφ ςτοιχείου είναι ίςθ με τθν επιςτρεφόμενθ από το πρόγραμμά μασ διάμεςο. Επίδοςη του αλγορίθμου Για να ελζγξουμε τθν απόδοςθ του προγράμματόσ μασ εκτελζςαμε 2 ςειρζσ πειραμάτων. Η πρϊτθ ςειρά εκτελζςτθκε ςε PC με επεξεργαςτι DUAL CORE 2.53 GHz και θ δεφτερθ ςτο Διάδθ. Και ςτουσ δφο υπολογιςτζσ τρζξαμε πειράματα για: 1.. ςθμεία 2.. ςθμεία 4.. ςθμεία 67.1. ςθμεία με 2,4,,,, διεργαςίεσ. Σρζξαμε επίςθσ το ςειριακό πρόγραμμα που υπολογίηει τθ διάμεςο ταξινομϊντασ με qsort( )όλα τα ςτοιχεία (αρχείο median.c). Για κάκε ςφνολο οριςμάτων(μζγεκοσ του προβλιματοσ + αρικμόσ διεργαςιϊν), τρζχαμε το πρόγραμμα 1 φορζσ ϊςτε να εξάγουμε όςο το δυνατόν ςτατιςτικά αςφαλι ςυμπεράςματα. Παρακάτω παρουςιάηονται αναλυτικά οι ςειρζσ πειραμάτων και τα αποτελζςματα ςε διαγράμματα που προζκυψαν από τθ ςτατιςτικι ανάλυςθ. τον οριηόντιο άξονα των διαγραμμάτων αντιςτοιχίηεται ο αρικμόσ των διεργαςιών και ςτον κατακόρυφο άξονα ο χρόνοσ εκτζλεςθσ ςε seconds. Μέτρηςη χρόνου εκτέλεςησ θμειϊνεται ότι θ μζτρθςθ του χρόνου γίνεται από τθν αρχι ωσ το τζλοσ του προγράμματοσ. Δθλαδι, ςτο χρόνο εκτζλεςθσ ςυνυπολογίηεται όχι μόνο θ επαναλθπτικι εκτζλεςθ των εντολϊν για τθν εφρεςθ τθσ διαμζςου, αλλά επίςθσ θ αρχικοποίθςθ και ο διαμοιραςμόσ των ςτοιχείων. 7

Χρόνοσ εκτζλεςθσ ςε sec Χρόνοσ εκτζλεςθσ ςε sec Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 Πειράματα που εκτελέςτηκαν ςε ςύςτημα με επεξεργαςτή DUAL CORE 2.53GHz 1,6 1,4 1,2 1,,6,4,2 1.. ςθμεία 3 25 2 15 1 5 2.. ςθμεία

Χρόνοσ εκτζλεςθσ ςε sec Χρόνοσ εκτζλεςθσ ςε sec Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 7 6 5 4 3 2 1 4.. ςθμεία 12 1 6 4 2 67.1. ςθμεία Αριθμός ζηοιχείων 1.. 2.. 4.. 67.1. Αριθμός διεργαζιών,26,,2,23,39,72 1,4 5,51 3,29 3,55 4,62 7,15 11,52 25,1 11,31 6,2,7 9,5,2 31 63,94 19,3 11,62 14,1,9 25, 53,25 19,69 9

Χρόνοσ εκτζλεςθσ ςε sec Χρόνοσ εκτζλεςθσ ςε sec Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 Πειράματα που εκτελέςτηκαν ςτο Διάδη,35,3,25,2,15,1,5 1.. ςτοιχεία 9 7 6 5 4 3 2 1 2.. ςτοιχεία 1 2 4 1

Χρόνοσ εκτζλεςθσ ςε sec Χρόνοσ εκτζλεςθσ ςε sec Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 1 14 12 1 6 4 2 4.. ςτοιχεία 3 25 2 15 1 5 67.1. ςτοιχεία Αριθμός ζηοιχείων 1.. 2.. 4.. 67.1. Αριθμός διεργαζιών,35,1,1,6,9,12,15,6 4,29 2,31 1,36 2,15 2,7 3,45,61, 4,62 2,7 4,1 5,44 6, 2,34 14,92,1 4,69 7,52 9,2 12,4 11

Εφρεςθ Διαμζςου ςε κατανεμθμζνα δεδομζνα με ΜΡΙ 211-212 χολιαςμόσ αποτελεςμάτων Παρατθροφμε ότι ο παράλλθλοσ αλγόρικμοσ επιτυγχάνει αρκετά ςθμαντικι επιτάχυνςθ ςε ςχζςθ με το ςειριακό πρόγραμμα. υγκεκριμζνα, μζχρι και διεργαςίεσ διπλαςιάηοντασ τον αρικμό των διεργαςιών διπλαςιάηεται και θ ταχφτθτα εκτζλεςθσ. Η μζγιςτθ δυνατι επιτάχυνςθ είναι ο τετραπλαςιαςμόσ τθσ ταχφτθτασ του ςειριακοφ προγράμματοσ και επιτυγχάνεται για διεργαςίεσ, πράγμα απόλυτα λογικό αφοφ ο Διάδθσ ζχει πυρινεσ. Αυξάνοντασ τον αρικμό των διεργαςιών πζραν του παρατθρείται ςταδιακι επιβράδυνςθ που επίςθσ οφείλεται ςτθν αρχιτεκτονικι του ςυςτιματοσ. Σα ςυμπεράςματα αυτά επιβεβαιϊνονται αν ςυγκρίνουμε τα αποτελζςματα των πειραμάτων ςτο Διάδθ με αυτά ςτο δικό μασ υπολογιςτι. το διπφρθνο ςφςτθμα θ μζγιςτθ επιτάχυνςθ επιτυγχάνεται για 2 διεργαςίεσ. Σο μόνο περίεργο που μποροφμε να ςθμειϊςουμε είναι ότι το ςειριακό πρόγραμμα ςτο υπολογιςτι μασ τρζχει ταχφτερα απ ότι ςτο Διάδθ. Αυτό πικανόν να μπορεί να εξθγθκεί αν κεωριςουμε ότι ο Διάδθσ εκτελεί το πρόγραμμα ςε ζναν μόνο πυρινα. (????????????????????) Αντί επιλόγου Οι φοιτθτζσ τυλιανόσ Μόςχογλου και Κυριακι Καηά ςασ ευχαριςτοφν για το χρόνο και τθν υπομονι ςασ και κα κζλανε να ςασ ενθμερϊςουν ότι θ παροφςα εργαςία είναι αποτζλεςμα πολλϊν εποικοδομθτικϊν ωρϊν ςυνεργαςίασ. Όλα τα βιματα τθσ εργαςίασ: ςχεδίαςθ του αλγορίκμου, ανάπτυξθ και αποςφαλμάτωςθ κϊδικα, εκτζλεςθ πειραμάτων και ςυγγραφι γραπτισ αναφοράσ ζγιναν από κοινοφ μετά από προβλθματιςμό και διαβουλεφςεισ. 12