Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
Παράλληλη/Κατανεμημένη Επεξεργασία και Εφαρμογές
Εισαγωγή στο Message Passing Interface (MPI)
2
Περιεχόμενα Ταξινόμηση Flynn
Οργάνωση μνήμης σε παράλληλους υπολογιστές Speedup και efficiency Σύγχρονη/Ασύγχρονη επικοινωνία MPI εντολές
3
Ταξινόμηση Flynn SISD MISD SIMD MIMD Von Neumann model
Κανένα εμπορικό παράλληλο σύστημα δεν έχει γίνει SIMD Αποδοτικά σε παραλληλισμό δεδομένων MIMD Multicore
4
Οργάνωση μνήμης σε παράλληλους υπολογιστές
Distributed memory Κάθε υπολογιστής έχει τη δικιά του τοπική μνήμη Για να έχει πρόσβαση στην τοπική μνήμη ενός υπολογιστή ένας άλλος: MPI Shared memory Προσοχή στις προσπελάσεις μνήμης
5
Speedup και efficiency
Cost of a parallel program: Cp(n) = p Tp(n) n: input size p: processors Speedup Sp(n) = T*(n) / Tp(n) T*(n): Ο καλύτερος χρόνος του σειριακού προγράμματος Tp(n): Ο χρόνος του παράλληλου προγράμματος
6
Speedup και efficiency
Ep(n) = T*(n) / (p Tp(n)) Το ιδανικό speedup που είναι ίσο με τον αριθμό των processors αντιστοιχεί σε efficiency 1.
7
Σύγχρονη/Ασύγχρονη επικοινωνία
Σύγχρονη επικοινωνία Δεν τελειώνει η επικοινωνία αν και οι 2 διεργασίες δεν έχουν αρχίσει τις λειτουργίες απαραίτητες για επικοινωνία Ασύγχρονη επικοινωνία Η αποστολή δεδομένων μπορεί να ξεκινήσει χωρίς καμιά συνεργασία με τη διεργασία που θα λάβει
8
MPI εντολές int MPI_Init( int *argc, char ***argv )
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
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.