Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Σχετικά έγγραφα
Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας

Λογιστική Κόστους Ενότητα 12: Λογισμός Κόστους (2)

Εισαγωγή στους Αλγορίθμους

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Αλγορίθμους

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

ΣΥΣΤΗΜΑΤΑ ΗΛΕΚΤΡΙΚΗΣ ΕΝΕΡΓΕΙΑΣ ΙIΙ

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

Διοικητική Λογιστική

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Εισαγωγή στους Αλγορίθμους

Αρχιτεκτονική Υπολογιστών

Τεχνολογία & Καινοτομία - Αρχές Βιομηχανικής Επιστήμης

Λογιστική Κόστους Ενότητα 8: Κοστολογική διάρθρωση Κύρια / Βοηθητικά Κέντρα Κόστους.

Διοίκηση Εξωτερικής Εμπορικής Δραστηριότητας

Εισαγωγή στον δομημένο προγραμματισμό

Τεχνοοικονομική Μελέτη

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Αρχιτεκτονική κοινής μνήμης

Εισαγωγή στην πληροφορική

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους (1)

Λογιστική Κόστους Ενότητα 10: Ασκήσεις Προτύπου Κόστους Αποκλίσεων.

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού σε κατάσταση Κορεσμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Λογιστική Κόστους Ενότητα 11: Λογισμός Κόστους

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 3: Έλεγχοι στατιστικών υποθέσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 1: Καταχώρηση δεδομένων

Εισαγωγή στον δομημένο προγραμματισμό

Μαθηματική Ανάλυση Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μηχανολογικό Σχέδιο Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας. Βιοστατιστική (Ε) Ενότητα 2: Περιγραφική στατιστική

Εκκλησιαστικό Δίκαιο. Ενότητα 10η: Ιερά Σύνοδος της Ιεραρχίας και Διαρκής Ιερά Σύνοδος Κυριάκος Κυριαζόπουλος Τμήμα Νομικής Α.Π.Θ.

Προγραμματισμός H/Y Ενότητα 5: Συναρτήσεις. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Διεθνείς Οικονομικές Σχέσεις και Ανάπτυξη

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Μεθοδολογία Έρευνας Κοινωνικών Επιστημών Ενότητα 2: ΣΥΓΚΕΝΤΡΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ ΜΑΡΚΕΤΙΝΓΚ Λοίζου Ευστράτιος Τμήμα Τεχνολόγων Γεωπόνων-Kατεύθυνση

Εισαγωγή στους Αλγορίθμους Ενότητα 10η Άσκηση Αλγόριθμος Dijkstra

Νέες Τεχνολογίες και Καλλιτεχνική Δημιουργία

ΗΛΕΚΤΡΟΝΙΚΗ ΙIΙ Ενότητα 6

Κοινωνιολογία της Εκπαίδευσης

Εισαγωγή στην πληροφορική

Αρχιτεκτονική Υπολογιστών

Ιστορία της μετάφρασης

Τεχνολογία Λογισμικού

Βάσεις Περιβαλλοντικών Δεδομένων

Τίτλος Μαθήματος: Μαθηματική Ανάλυση Ενότητα Γ. Ολοκληρωτικός Λογισμός

Διοικητική Λογιστική

Μαθηματική Ανάλυση Ι

Εισαγωγή στην Πληροφορική

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Prim

Λογιστική Κόστους. Ενότητα 4: ΣΥΜΠΕΡΙΦΟΡΑ - ΦΥΣΗ ΚΟΣΤΟΥΣ. Μαυρίδης Δημήτριος Τμήμα Λογιστικής και Χρηματοοικονομικής

Ενότητα. Εισαγωγή στις βάσεις δεδομένων

Μαθηματική Ανάλυση ΙI

Ψηφιακή Επεξεργασία Εικόνων

Μαθηματική Ανάλυση Ι

Εισαγωγή στην Διοίκηση Επιχειρήσεων

Εισαγωγή στους Αλγορίθμους Φροντιστήριο 1

Γενικά Μαθηματικά Ι. Ενότητα 15: Ολοκληρώματα Με Ρητές Και Τριγωνομετρικές Συναρτήσεις Λουκάς Βλάχος Τμήμα Φυσικής

Προγραμματισμός Η/Υ. Βασικές Προγραμματιστικές Δομές. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός H/Y Ενότητα 4: Δείκτες. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Διακριτά Μαθηματικά. Ενότητα 7: Σχέσεις και Συναρτήσεις

Μαθηματική Ανάλυση Ι

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Κβαντική Επεξεργασία Πληροφορίας

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

Εισαγωγή στους Αλγορίθμους Ενότητα 9η Άσκηση - Αλγόριθμος Kruskal

Εισαγωγή στον δομημένο προγραμματισμό

Δομημένος Προγραμματισμός

Τεχνολογία και Καινοτομία - Οικονομική Επιστήμη και Επιχειρηματικότητα

Βέλτιστος Έλεγχος Συστημάτων

Διδακτική της Πληροφορικής

Τεχνικό Σχέδιο - CAD

Δομές Δεδομένων Ενότητα 1

Γενικά Μαθηματικά Ι. Ενότητα 12: Κριτήρια Σύγκλισης Σειρών. Λουκάς Βλάχος Τμήμα Φυσικής ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανολόγων Μηχανικών. Χημεία. Ενότητα 9: Υβριδισμός. Τόλης Ευάγγελος

Εκκλησιαστικό Δίκαιο

ΗΛΕΚΤΡΟΝΙΚΗ IΙ Ενότητα 6

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

Κβαντική Επεξεργασία Πληροφορίας

Μαθηματική Ανάλυση Ι

Διδακτική Πληροφορικής

ΟΙΚΟΝΟΜΕΤΡΙΑ. Ενότητα 1: Εκτιμητές και Ιδιότητες. Αναπλ. Καθηγητής Νικόλαος Σαριαννίδης Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

ΣΥΜΠΕΡΙΦΟΡΑ ΚΑΤΑΝΑΛΩΤΗ

Θεσμοί Ευρωπαϊκών Λαών Ι 19 ος -20 ος αιώνας

Εισαγωγή στους Υπολογιστές

Τεχνικό Σχέδιο - CAD

Θερμοδυναμική. Ανοικτά Ακαδημαϊκά Μαθήματα. Πίνακες Νερού Υπέρθερμου Ατμού. Γεώργιος Κ. Χατζηκωνσταντής Επίκουρος Καθηγητής

Ψηφιακή Επεξεργασία Εικόνων

Μαθηματική Ανάλυση Ι

Θέματα Εφαρμοσμένης. Ενότητα 14.2: Η ψήφος στα πρόσωπα. Θεόδωρος Χατζηπαντελής Τμήμα Πολιτικών Επιστημών ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Transcript:

Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών http://arch.icte.uowm.gr/mdasyg Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ψηφιακά Μαθήματα στο Πανεπιστήμιο Δυτικής Μακεδονίας» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Σκοπός της Ενότητας Η παρουσίαση βασικών δομών επικοινωνίας με το MPI. 4

To tag στις συναρτήσεις send, recv Σε αυτές τις συναρτήσεις η πέμπτη παράμετρος είναι το tag της επικοινωνίας. Το TAG είναι ένας αριθμός (π.χ. το 0). Γενικά το tag στην αποστολή και στη λήψη θα πρέπει να είναι το ίδιο. Μπορούμε όμως αντί για να δώσουμε έναν αριθμό να χρησιμοποιούμε την παράμετρο (μόνο recv) MPI_ANY_TAG η οποία δεν ορίζει κάποιο συγκεκριμένο tag. Μπορεί να χρησιμοποιηθεί στην λήψη (σε κάποιες υλοποιήσεις openmpi χρησιμοποιείται και στο send). 5

Λήψη μηνυμάτων από οποιαδήποτε διεργασία Το τέταρτο όρισμα της recv (λήψης μηνυμάτων) ορίζει από ποια διεργασία περιμένει να λάβει μήνυμα. Είναι ένας αριθμός που υποδηλώνει το rank (π.χ. 5). Αν δε μας ενδιαφέρει να ορίσουμε ακριβώς τη διεργασία που θα στείλει το μήνυμα, μπορούμε αντί για τον αριθμό να χρησιμοποιήσουμε τη μεταβλητή: MPI_ANY_SOURCE Χρησιμοποιείται μόνο στη recv. 6

Το όρισμα count Είναι η 2η παράμετρος της recv. Δεν αναφέρεται στο ακριβές πλήθος των στοιχείων, αλλά στο μέγιστο πλήθος των στοιχείων που αναμένουμε. Είναι δυνατό να είναι 0: Ο αποστολέας στέλνει μόνο μια επικεφαλίδα χωρίς δεδομένα. 7

Η συνάρτηση MPI_Bcast (1/3) Αποστολή μηνύματος σε όλες τις διεργασίες (και στον εαυτό της): MPI_Bcast (void * buffer, int count, MPI_Datatype datatype, int srcrank, MPI_Comm comm) void * buffer, pointer στο μήνυμα που θα σταλεί. int count, πλήθος στοιχείων που θα σταλούν. MPI_Datatype datatype, τύπος στοιχείων. int srcrank, ποια διεργασία είναι αυτή που το στέλνει. MPI_Comm comm σε ποιο COMMUNICATOR θα σταλεί. 8

Η συνάρτηση MPI_Bcast (2/3) ΠΡΟΣΟΧΗ (1): Δεν απαιτείται η χρήση της recv για λήψη του μηνύματος. ΠΡΟΣΟΧΗ (2): Για να λάβει σωστά το μήνυμα μια άλλη διεργασία θα πρέπει να χρησιμοποιήσει τη συνάρτηση MPI_Bcast με τα ίδια ακριβώς ορίσματα που έχει χρησιμοποιήσει η αρχική συνάρτηση. Μετά τον τερματισμό της συνάρτησης όλες οι ενδιάμεσες μνήμες των διεργασιών του COMMUNICATOR έχουν τα ίδια περιεχόμενα. Αυτό γίνεται άμεσα και δε χρειάζεται παρεμβολή από τον χρήστη. 9

Η συνάρτηση MPI_Bcast (3/3) Η MPI_Bcast μπορεί να αντικατασταθεί με ένα βρόχο για όλα τα rank ως εξής: for counter=0;counter<size;counter++) MPI_Send(&a,1,MPI_DOUBLE,counter,0, MPI_COMM_WORLD);(προσοχή next slide) Κάθε rank θα έπρεπε να χρησιμοποιήσει την recv για να λάβει το μήνυμα. ΜPI_Recv(&a,1,MPI_DOUBLE,0,MPI_ANY_TA G, ΜPI_COMM_WORLD); Η MPI_Bcast είναι πιο γρήγορη και καλύτερη. 10

Αποστολή μηνύματος στον εαυτό (send-to-itself) Στην προηγούμενη διαφάνεια η MPI_Send επειδή εκτελούνται για όλο το communicator size έστελνε ΚΑΙ στον εαυτό της. Αν και τις περισσότερες φορές θα λειτουργήσει χωρίς να κάνει block, θα πρέπει να αποφεύγεται: "Therefore, it is unsafe and non-portable to send self-messages with the standard mode, blocking send and receive operations described so far, since this may lead to deadlock.«the book "MPI: The complete reference, Vol. 1, 2nd Ed.", by Snir et al., page 42, section 2.9.9. 11

Η συνάρτηση MPI_Wtime() Χρησιμοποιείται για να μετρήσει το χρόνο εκτέλεσης ενός τμήματος κώδικα. Πρότυπο: double MPI_Wtime(void) Μπορεί να χρησιμοποιηθεί ώστε να μας δώσει πληροφορίες για την χρονική στιγμή έναρξης ή λήξης ενός προγράμματος. Αν καλέσουμε τη συνάρτηση αυτή στην αρχή μιας διαδικασίας (π.χ. μετά την MPI_Comm_size) και μια στο τέλος (πριν την MPI_Finalize), τότε η διαφορά τους θα μας δώσει τον χρόνο εκτέλεσης του προγράμματος σε δευτερόλεπτα. 12

Παράδειγμα MPI_Wtime() double startwtime, endwtime; startwtime = MPI_Wtime(); (...κομμάτι κώδικα...) endwtime = MPI_Wtime(); printf ("wall clock time = %f \n", endwtimefstartwtime); 13

Άλλες ενδιαφέρουσες ρουτίνες MPI_Wait(MPI_Request *req, MPI_Status *status). Περιµένει εώς ότου η επικοινωνία αναφοράς req λήξει. MPI_Test(MPI_Request *req, int *flag, MPI_Status *status). Επιστρέφει flag=true εφόσον η επικοινωνία αναφοράς req έχει λήξει επιτυχώς και flag=false σε άλλη περίπτωση. 14

Συλλογικές κλήσεις Κάθε διεργασία εκτελεί τις ίδιες ρουτίνες επικοινωνίας µε τις υπόλοιπες. Δεν χρησιμοποιούνται tags αλλά communicators. Δεν υπάρχουν non-blocking συλλογικές κλήσεις. Τρεις τύποι: Συγχρονισμός. Μετακίνηση δεδομένων. Συλλογικοί υπολογισμοί. 15

Παραδείγματα συλλογικών κλήσεων MPI_Barrier(MPI_Comm communicator). παγώνει όλες τις διεργασίες έως ότου αυτές φτάσουν στο συγκεκριμένο σημείο ελέγχου. Όταν όλες οι διεργασίες εκτελέσουν τη MPI_Barrier τότε συνεχίζεται η εκτέλεση όλων κανονικά. MPI_Bcast(void *buf, int count, MPI_Datatype data_type, int root, MPI_Comm comm). Σήμα one-to-all (αναπτύχθηκε σε προηγούμενη παρουσίαση). 16

Η συνάρτηση MPI_Scatter() (1/5) Συνάρτηση διαμοιρασμού δεδομένων σε όλες τις διεργασίες της ομάδας. Η συνάρτηση MPI_Scatter ανήκει στην κατηγορία των συναρτήσεων που πραγματοποιούν συλλογικές επικοινωνίες (collective communications). Το βασικό χαρακτηριστικό των συναρτήσεων συλλογικής επικοινωνίας είναι ότι κάποια διεργασία ανταλλάσσει δεδομένα προς όλες τις υπόλοιπες διεργασίες. Int MPI_Scatter (void * sendbuf, int sendcount, MPI_Datatype sendtype,void * recvbuf, int recvcount, MPI_Datatype recvtype, int root,mpi_comm comm); 17

Η συνάρτηση MPI_Scatter() (2/5) sendbuf: Περιοχή μνήμης που είναι τα δεδομένα προς διασπορά. sendcount: Πλήθος δεδομένων προς διασπορά ανά διεργασία. sendtype: Τύπος δεδομένων προς διασπορά. recvbuf: Περιοχή μνήμης που θα αποθηκευθούν τα δεδομένα από την διεργασία παραλήπτη. recvcount: Πλήθος δεδομένων που παραλαμβάνονται ανά διεργασία. recvtype: Τύπος δεδομένων που παραλαμβάνονται. root: Η διεργασία ρίζα που πρόκειται να διασπείρει τα δεδομένα. comm: Ο χειριστής στον οποίο ανήκουν οι διεργασίες αποστολής (MPI_COMM_WORLD). 18

Η συνάρτηση MPI_Scatter() (3/5) Συγκεκριμένα, η MPI_Scatter κάνει διασπορά δεδομένων (Scattering), όπου τα δεδομένα μίας διεργασίας μοιράζονται με κατάλληλο τρόπο σε όλες τις υπόλοιπες καθώς και στον εαυτό της. Δεν απαιτείται να ξεκινήσει η κάθε διεργασία-παραλήπτης μια συνάρτηση MPI_Recv για την παραλαβή των δεδομένων. Παράδειγμα: Έστω ένας πίνακας: A με 300 ακεραίους και 3 διεργασίες, η κλήση της συνάρτησης: MPI_Scatter (&Α, 100, MPI_INT, &Β, 100, MPI_INT, 0, MPI_COMM_WORLD); Θα έχει σαν αποτέλεσμα η διεργασία 0 να διασπείρει τα δεδομένα του πίνακα Α, οι 3 διεργασίες θα παραλάβουν στον πίνακα Β: τα 100 πρώτα στοιχεία η διεργασία 0, τα 100 επόμενα η διεργασία 1 και τα 100 τελευταία η διεργασία 2. 19

Η συνάρτηση MPI_Scatter() (4/5) Η συνάρτηση διαμοιράζει τα δεδομένα σε όλες τις διεργασίες της ομάδας. 20

Η συνάρτηση MPI_Scatter() (5/5) Προσοχή: Μπορούν να διαμοιραστούν ΜΟΝΟ ομάδες με διακριτά στοιχεία Για παράδειγμα δε μπορούμε να πούμε να διαμοιράσουμε τους πραγματικούς αριθμούς από 0 έως 1 σε Ν διεργασίες. Αν όμως είχαμε έναν πίνακα με πραγματικούς αριθμούς θα μπορούσε να διαμοιραστεί. 21

Τέλος Ενότητας 22

Σημείωμα Αναφοράς Copyright, Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών, Στεργίου Κωνσταντίνος. «Τεχνητή Νοημοσύνη». Έκδοση: 1.0. Κοζάνη 2015. Διαθέσιμο από τη δικτυακή διεύθυνση: https: //eclass.uowm.gr/courses/icte103/ 23

Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Όχι Παράγωγα Έργα Μη Εμπορική Χρήση 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] h t t p ://creativecommons.org/licenses/by-nc-nd/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό 24

Σημείωμα Χρήσης Έργων Τρίτων Το Έργο αυτό κάνει χρήση των ακόλουθων έργων: Εικόνες/Σχήματα/Διαγράμματα/Φωτογραφίες xxxx. xxxx. 25

Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 26