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

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

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

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

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

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

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

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

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

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

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

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

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


Message Passing Interface (MPI)

Συστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI)

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

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

Message Passing Interface (MPI)

MPI: Message Passing Interface

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

MPI: Message Passing Interface

ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών

Υπολογισμοί Μεταβίβασης Μηνυμάτων

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Της φοιτήτριας Αριστέας Χρονοπούλου Αρ. Μητρώου: 01 / Επιβλέπων Καθηγητής Αθανάσιος Μάργαρης

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

Message Passing Interface (MPI)

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

MPI: Message Passing Interface

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Διαδικαστικός Προγραμματισμός

Message Passing Interface (MPI)

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:01. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Παράλληλα και Κατανεµηµένα Συστήµατα. Εισαγωγή

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

Ψηφιακή Σχεδίαση. Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:07. Δρ. Μηνάς Δασυγένης. Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 4: Έλεγχος Ροής. Κ.

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

Εισαγωγή στον Προγραμματισμό με C++

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Συστήματα Αυτομάτου Ελέγχου. Ενότητα Α: Γραμμικά Συστήματα

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

3 η ΕΝΟΤΗΤΑ Συναρτήσεις στο MATLAB

EM 361: Παράλληλοι Υπολογισμοί

Προγραμματισμός Η/Υ. Ενότητα 3: Top Down Σχεδιασμός

Λογιστικές Εφαρμογές Εργαστήριο

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Μοντελοποίηση Λογικών Κυκλωμάτων

ΒΟΗΘΗΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Παράλληλος προγραµµατισµός

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Ηλεκτρονικοί Υπολογιστές

Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Non-blocking Επικοινωνίεσ και Buffering. Κώςτασ Διαμαντάρασ ΤΕΙ Θεςςαλονίκθσ 2011

ΜΑΘΗΜΑ: Αντικειμενοστρεφής Προγραμματισμός

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Πανεπιστήμιο Δυτικής Μακεδονίας. Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών. Ψηφιακή Σχεδίαση

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Ενσωματωμένα Συστήματα

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Ε-85: Ειδικά Θέµατα Λογισµικού

Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

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

Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid

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

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα. Εισαγωγή στον Προγραμματισμό. Ενότητα 8: Συναρτήσεις. Κ.

Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid. Vangelis Koukis 01-GRNET and HG EKT admin team

Επικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

Transcript:

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

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

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

Σκοπός της Ενότητας Η κατανόηση της λειτουργίας Reduction στο MPI. 4

Η συνάρτηση MPI_Reduce (1/4) Η συνάρτηση MPI_Reduce ανήκει κι αυτή στην κατηγορία των συναρτήσεων συλλογικής επικοινωνίας. Πιο συγκεκριμένα η MPI_Reduce ανήκει και σε μια ειδική κατηγορία συναρτήσεων που ονομάζονται: Συναρτήσεις Υποβιβασμού (reduction functions). Ονομάζονται έτσι διότι μπορούν να εφαρμόσουν έναν απλό υπολογισμό στα δεδομένα εισόδου (π.χ. Πρόσθεση, Μέγιστο, Ελάχιστο κ.α.). Δεν απαιτείται να ξεκινήσει η κάθε διεργασία αποστολέας μια συνάρτηση MPI_Send για την αποστολή των δεδομένων προς την διεργασία που καλεί την MPI_Reduce. 5

Η συνάρτηση MPI_Reduce (2/4) Παράδειγμα: Έστω 3 διεργασίες που κάθε μία υπολογίζει μια ακέραια τιμή και στο τέλος θέλουμε οι τιμές αυτές να συγκεντρωθούν και να προστεθούν, η κλήση της συνάρτησης είναι: MPI_Reduce (&sum, &tmp, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD); 6

Η συνάρτηση MPI_Reduce (3/4) 7

Η συνάρτηση MPI_Reduce (4/4) Το πρωτότυπό της έχει την μορφή: Int MPI_Reduce (void * sendbuf, void * recvbuf, int count, MPI_Datatype datatype, MPI_Op operation, int root, MPI_Comm comm); sendbuf: Περιοχή μνήμης που είναι τα δεδομένα εισόδου της συνάρτησης. recvbuf: Περιοχή μνήμης που θα αποθηκευθούν τα αποτελέσματα του υποβιβασμού. count: Πλήθος δεδομένων εισόδου. datatype: Τύπος δεδομένων εισόδου. operation: Το είδος της πράξης που θα εφαρμοστεί στα δεδομένα εισόδου. root: Η τάξη της διεργασίας που θα πραγματοποιήσει τον υποβιβασμό. comm: Ο χειριστής στον οποίο ανήκουν οι διεργασίες που θα συμμετάσχουν. στην διαδικασία του υποβιβασμού (MPI_COMM_WORLD). Some Operations: MPI_SUM, MPI_MAX, MPI_MIN, MPI_PROD. 8

Παράδειγμα MPI_Reduce (1/3) #include <mpi.h> #include <stdio.h> #define SIZE 4 int main (int argc, char* argv[]) { int i, rank, size, sendcount, recvcount, source; float sendbuf [SIZE][SIZE] = { {1.0, 2.0, 3.0, 4.0}, {5.0, 6.0, 7.0, 8.0}, {9.0, 10.0, 11.0, 12.0}, {13.0, 14.0, 15.0, 16.0} }; float Sum, Tsum, recvbuf[size]; for (i=0; i<=size; i++) { recvbuf[i]=0.0; } MPI_Init (&argc, &argv);mpi_comm_rank MPI_COMM_WORLD, &rank);mpi_comm_size MPI_COMM_WORLD, &size); 9

Παράδειγμα MPI_Reduce (2/3) if (size == SIZE) { source = 0; sendcount = SIZE; recvcount = SIZE; MPI_Scatter (&sendbuf, sendcount, MPI_FLOAT, &recvbuf, recvcount, MPI_FLOAT, source, MPI_COMM_WORLD); printf ("rank= %d Results: %4.1f %4.1f %4.1f %4.1f \n", rank, recvbuf[0], recvbuf[1], recvbuf[2], recvbuf[3]); Sum = 0; for (i=0; i<=size; i++) {Sum = Sum + recvbuf[i]; } MPI_Reduce (&Sum, &Tsum, 1, MPI_FLOAT, MPI_SUM, source, MPI_COMM_WORLD); if (rank == source) { printf ("Total Sum = %4.1f \n", Tsum); } } else printf ("Must specify %d processors. Terminating. \n", SIZE); MPI_Finalize(); return (0); } 10

Παράδειγμα MPI_Reduce (3/3) Αντί να χρησιμοποιηθούν πολλαπλές MPI_Send και MPI_Recv συναρτήσεις (π.χ. μέσω εντολών for) για την αποστολή και παραλαβή των δεδομένων από τις διεργασίες, χρησιμοποιείται μόνο η MPI_Scatter για την διασπορά των δεδομένων και η MPI_Reduce για την συλλογή των δεδομένων. 11

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