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

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

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

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

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

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

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

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

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

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

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

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

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

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

Message Passing Interface (MPI)

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

Message Passing Interface (MPI)

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

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

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

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

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

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

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

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

MPI: Message Passing Interface

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

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

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

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


MPI: Message Passing Interface

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

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

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

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

Message Passing Interface (MPI)

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

Message Passing Interface (MPI)

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

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

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

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

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

Κεφάλαιο VIΙΙ Β. Δημακόπουλος

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων. Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις)

MPI: Message Passing Interface

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

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

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

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ TARRY ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

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

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

ΕΚΔΟΣΗ 1.1 ΑΠΡΙΛΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΤΟ ΠΡΩΤΟΚΟΛΛΟ ECHO ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΡΟΛΟΓΙΑ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

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

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

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

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

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

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

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

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

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

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

30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος

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

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

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

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

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

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

Προγραµµατισµός µε ανταλλαγή µηνυµάτων Ι. Εισαγωγή στο MPI. Εφαρµογές Ανεξάρτητου Παραλληλισµού.

Προγραμματισμός με Μεταβίβαση Μηνυμάτων

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

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

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

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

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

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

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

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΑΛΓΟΡΙΘΜΟΣ POLLING ΚΥΜΑΤΙΚΟΣ ΑΛΓΟΡΙΘΜΟΣ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.

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

ΕΚΔΟΣΗ 1.1 ΜΑΙΟΣ, 2018 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΚΛΟΓΗ ΑΡΧΗΓΟΥ ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ

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

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

Transcript:

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

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

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

Σκοπός της Ενότητας Η κατανόηση της αποστολής και λήψης μηνυμάτων με το MPI. 4

Υλοποιήσεις του MPI OpenMPI (The Open MPI Development Team). MPICH, MPICH2 (Argonne National Laboatory). LAM MPI (Local Area Multicomputer - ohio Supercomputer Center). CHIMP (Common High Level Interfase to Message Passing -Edinburg Parralel Computing Center). Εμπορικές Υλοποιήσεις: IBM MPI, HP MPI, Sun MPI, Digital MPI, SGI MPI προσαρμοσμένες στις ανάγκες κάθε εταιρίας. 5

Πότε θα χρησιμοποιήσουμε τη συνάρτηση MPI; Όταν χρειαζόμαστε ένα portable παράλληλο πρόγραμμα. Όταν θέλουμε να γράψουμε μια παράλληλη βιβλιοθήκη. Όταν μας ενδιαφέρει η απόδοση. 6

Πότε δε θα χρησιμοποιήσουμε το OpenMPI; Όταν μπορούμε να χρησιμοποιήσουμε κάποια παράλληλη γλώσσα, π.χ. Paralell Fortran 90. Όταν δεν χρειαζόμαστε παραλληλισμό. 7

Τι άλλο υπάρχει εκτός από το MPI; PVM Parralel Virtual Machine. Κατάλληλο για ετερογενή δίκτυα. Εφαρμογές μεγάλης σταθερότητας. Επιτρέπει προσθήκη / αφαίρεση υπολογιστικών κόμβων. 8

Στο προηγούμενο εργαστήριο... #include <stdio.h> #include <mpi.h> int main(int argc, char *argv[]) { int rank, size; MPI_Init(&argc, &argv); MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); printf ("Hello world! I am %d of %d \n", rank, size); MPI_Finalize(); return 0; } 9

Είδη επικοινωνίας στο OpenMPI Επικοινωνία από σημείο σε σημείο (point to point. communication: blocking, non blocking). Συλλογικές επικοινωνίες (collective communicaions: broadcasting scattering, gather, reduce). 10

Τύποι δεδομένων στο OpenMPI 11

Πρότυπα συναρτήσεων Το πρότυπό έχει την μορφή: MPI_Abort Int MPI_Abort (MPI_Comm comm, int * err); Καλείται στην περίπτωση που η MPI_Init αποτυγχάνει να αρχικοποιήσει το περιβάλλον MPI. Παράδειγα: MPI_Abort (MPI_COMM_WORLD, err); H MPI_Init αν επιτύχει την αρχικοποίηση επιστρέφει 0. Συνήθως ελέγχουμε την τιμή που επιστρέφει η MPI_Init και αν είναι διαφορετική από 0 (με μια δομή if) τότε καλείται η MPI_Abort. 12

MPI_Init και MPI_Abort Για να γίνει ο έλεγχος της αρχικοποίησης, ελέγχουμε την τιμή που επιστρέφει η συνάρτηση MPI_Init (ή οποιαδήποτε άλλη συνάρτηση). Ακολουθεί μια δομή ελέγχου: if (error_code!= MPI_SUCCESS ) {... } Η σταθερά MPI_SUCCESS ορίζεται στο include αρχείο. Μπορεί να χρησιμοποιηθεί για να ελεγχθούν όλες τις συναρτήσεις του MPI. Πρέπει να έχει οριστεί: int error_code; 13

Ρουτίνα αποστολής μηνυμάτων MPI_Send MPI_Send (void *buffer, int count, MPI_Datatype data_type, int destination, int tag, MPI_Comm communicator): buffer: Δεδοµένα που θα αποσταλλούν. count: Αριθµός στοιχείων του buffer. data_type: Τύπος των δεδοµένων (π.χ. floats, integers). destination: Παραλήπτης δεδοµένων. tag: O δείκτης της επικοινωνίας. communicator: Το όνοµα της οµάδας των διεργασιών. 14

Ρουτίνα αποστολής μηνυμάτων MPI_Send Η συνάρτηση MPI Send χρησιμοποιείται για αποστολή μηνύματος σε κάποια από τις διεργασίες του communicator. Παράδειγμα χρήσης: MPI Send (buffer, 100, MPI_CHAR, 1, 0, MPI_COMM_WORLD); 15

Ρουτίνα λήψης μηνυμάτων MPI_Recv (1/2) MPI_Recv(void *buffer, int count, MPI_Datatype data_type, int source, int tag, MPI_Comm communicator, MPI_Status status): buffer: Δεδομένα που θα αποσταλούν. count: Αριθμός στοιχείων του buffer. data_type: Τύπος των δεδομένων (π.χ. floats, integers). source: Αποστολέας δεδομένων. tag: Ο δείκτης της επικοινωνίας. communicator: Το όνομα της ομάδας των διεργασιών. status: Χρησιμοποιείται για έλεγχο σε περίπτωση σφάλματος. 16

Ρουτίνα λήψης μηνυμάτων MPI_Recv (2/2) Η συνάρτηση MPI Recv χρησιμοποιείται για παραλαβή μηνύματος από κάποια από τις διεργασίες του communicator. Παράδειγμα χρήσης: MPI Recv (buffer, 50, MPI_DOUBLE, 3, 0, MPI_COMM_WORLD, &status); Απαιτείται δήλωση της μορφής: MPI_Status status; 17

Χρήση MPI_Send, MPI_Receive Δηλώνουμε μια μεταβλητή για μήνυμα αποστολής: char outmessage[]='hi there Δηλώνουμε μια μεταβλητή για μήνυμα λήψης. Προσοχή στο μέγεθος του εισερχόμενου μηνύματος: char inmessage[7] Δηλώνουμε το MPI_Status status; 18

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