Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Εισαγωγή στο Message Passing Interface (MPI) Παράλληλη / Κατανεμημένη Επεξεργασία και Εφαρμογές.

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Εισαγωγή στο Message Passing Interface (MPI) Παράλληλη / Κατανεμημένη Επεξεργασία και Εφαρμογές."— Μεταγράφημα παρουσίασης:

1 Εισαγωγή στο Message Passing Interface (MPI) Παράλληλη / Κατανεμημένη Επεξεργασία και Εφαρμογές

2 Περιεχόμενα Ταξινόμηση Flynn Οργάνωση μνήμης σε παράλληλους υπολογιστές Speedup και efficiency Σύγχρονη / Ασύγχρονη επικοινωνία MPI εντολές

3 Ταξινόμηση Flynn SISD Von Neumann model MISD Κανένα εμπορικό παράλληλο σύστημα δεν έχει γίνει SIMD Αποδοτικά σε παραλληλισμό δεδομένων MIMD Multicore

4 Οργάνωση μνήμης σε παράλληλους υπολογιστές Distributed memory Κάθε υπολογιστής έχει τη δικιά του τοπική μνήμη Για να έχει πρόσβαση στην τοπική μνήμη ενός υπολογιστή ένας άλλος : MPI Shared memory Προσοχή στις προσπελάσεις μνήμης

5 Speedup και efficiency Cost of a parallel program: C p (n) = p T p (n) n: input size p: processors Speedup S p (n) = T * (n) / T p (n) T * (n): Ο καλύτερος χρόνος του σειριακού προγράμματος T p (n): Ο χρόνος του παράλληλου προγράμματος

6 Speedup και efficiency Efficiency E p (n) = T * (n) / (p T p (n)) Το ιδανικό speedup που είναι ίσο με τον αριθμό των processors αντιστοιχεί σε efficiency 1.

7 Σύγχρονη / Ασύγχρονη επικοινωνία Σύγχρονη επικοινωνία Δεν τελειώνει η επικοινωνία αν και οι 2 διεργασίες δεν έχουν αρχίσει τις λειτουργίες απαραίτητες για επικοινωνία Ασύγχρονη επικοινωνία Η αποστολή δεδομένων μπορεί να ξεκινήσει χωρίς καμιά συνεργασία με τη διεργασία που θα λάβει

8 MPI εντολές int MPI_Init( int *argc, char ***argv ) Αρχικοποιεί το περιβάλλον για εκτέλεση του MPI Είναι απαραίτητη για να τρέξουμε πρόγραμμα MPI int MPI_Finalize( void ) Τερματίζει το περιβάλλον του MPI int MPI_Comm_rank( MPI_Comm comm, int *rank ) comm: communicator rank: σε αυτή τη μεταβλητή αποθηκεύεται το id της διεργασίας

9 MPI εντολές int MPI_Comm_size( MPI_Comm comm, int *size ) comm: communicator size: σε αυτή τη μεταβλητή αποθηκεύεται ο αριθμός των διεργασιών κατά το χρόνο εκτέλεσης

10 MPI εντολές int MPI_Send(void *buf, int count, MPI_Datatype datatype, int dest, int tag, MPI_Comm comm) buf: δεδομένα για αποστολή count: Πλήθος των στοιχείων που θα αποσταλούν datatype: Τύπος δεδομένων που θα αποσταλούν dest: Αριθμός διεργασίας στην οποία θα πάνε τα δεδομένα tag: Χρησιμοποιείται για να διαχωρίζονται τα μηνύματα από τον ίδιο αποστολέα comm: Δηλώνει τον communicator που θα χρησιμοποιηθεί

11 MPI εντολές int MPI_Recv(void *buf, int count, MPI_Datatype datatype, int source, int tag, MPI_Comm comm, MPI_Status *status) buf: Θέση μνήμης όπου θα αποθηκευτούν τα δεδομένα count: μέγιστος αριθμός δεδομένων που μπορούν να ληφθούν datatype: τύπος δεδομένων που θα ληφθούν source: διεργασία από την οποία θα ληφθούν δεδομένα tag: Χρησιμοποιείται για να διαχωρίζονται τα μηνύματα που λαμβάνονται comm: ο communicator που θα χρησιμοποιηθεί status: Πληροφορίες για το μήνυμα που λήφθηκε

12 Αναφορές Rauber – Runger, Parallel Programming, Springer


Κατέβασμα ppt "Εισαγωγή στο Message Passing Interface (MPI) Παράλληλη / Κατανεμημένη Επεξεργασία και Εφαρμογές."

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google