Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC
|
|
- λατίνος Μπουκουβαλαίοι
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC Συστήματα Παράλληλης Επεξεργασίας 9ο Εξάμηνο, ΣΗΜΜΥ Εργ. Υπολογιστικών Συστημάτων Σχολή ΗΜΜΥ, Ε.Μ.Π. Νοέμβριος 2016
2 1 Επισκόπηση 2 MPI 3 UPC 2 11/2016 Συστήματα Παράλληλης Επεξεργασίας
3 1 Επισκόπηση 2 MPI 3 UPC 3 11/2016 Συστήματα Παράλληλης Επεξεργασίας
4 Επισκόπηση Αρχιτεκτονικές και Προγραμματιστικά Μοντέλα από την Οπτική του Προγραμματιστή Προγραμματιστικά Μοντέλα Κοινού Χώρου Διευθύνσεων με Πέρασμα Μηνυμάτων Αρχιτεκτονικές Κοινής μνήμης Κατανεμημένης Μνήμης + Ευκολία Υλοποίησης + Προγραμματιστική Ευκολία + Προγραμματιστική Ευκολία - Δυσκολία Υλοποίησης + Υψηλή Επίδοση - Χαμηλή Επίδοση + Ευκολία Υλοποίησης + Ευκολία Υλοποίησης + Υψηλή Επίδοση + Υψηλή Επίδοση - Προγραμματιστική Δυσκολία - Προγραμματιστική Δυσκολία 4 11/2016 Συστήματα Παράλληλης Επεξεργασίας
5 Επισκόπηση Ο Xάρτης των Eργαλείων και Γλωσσών Παράλληλου Προγραμματισμού Προγραμματιστικά Μοντέλα Κοινού Χώρου Διευθύνσεων με Πέρασμα Μηνυμάτων Αρχιτεκτονικές Κοινής μνήμης Κατανεμημένης Μνήμης POSIX Threads, OpenMP, CoArray Fortran, Threading Building Blocks, Unified Parallel C (UPC), Cilk, OmpSs Chapel and other PGAS Ομοίως με πέρασμα MPI, PVM (obsolete), μηνυμάτων σε κατανεμημένη Charm++ μνήμη 5 11/2016 Συστήματα Παράλληλης Επεξεργασίας
6 Σύνοψη Παρουσίασης H διαδρομή του MPI Πριν το MPI Η αρχή του MPI: MPI-1 Νέες αρχιτεκτονικές και ανάγκες: MPI-2 Petascale και Exascale: MPI-3 H γλώσσα UPC ως εναλλακτική Διαϕορές PGAS - Message Passing Χαρακτηριστικά της UPC Λειτουργία: Υλοποίηση και σύστημα χρόνου εκτέλεσης 6 11/2016 Συστήματα Παράλληλης Επεξεργασίας
7 1 Επισκόπηση 2 MPI 3 UPC 7 11/2016 Συστήματα Παράλληλης Επεξεργασίας
8 MPI Πριν το MPI Στις αρχές του 90 προέκυψε η ανάγκη για πρακτικό παράλληλο προγραμματισμό σε συστήματα κατανεμημένης μνήμης Eταιρείες και εργαστήρια πρότειναν και διατηρούσαν δικές τους γλώσσες, διεπαϕές και βιβλιοθήκες παράλληλου προγραμματισμού Έλλειψη μεταϕερσιμότητας Μικρές ομάδες χρηστών ανά γλώσσα/διεπαϕή Εργαλεία των 90s: Intel ΝΧ, IBM EUI, IBM CCL, PARMACS, OCCAM, PVM κ.ά. Το MPI προέκυψε από μια προσπάθεια συγκέντρωσης και τυποποίησης των καλύτερων πρακτικών από τα ήδη υπάρχοντα εργαλεία 8 11/2016 Συστήματα Παράλληλης Επεξεργασίας
9 MPI Σχεδιαστικές απαιτήσεις Το MPI αναπτύχθηκε ως πρότυπο με συγκεκριμένα σχεδιαστικές απαιτήσεις: Βασικές λειτουργίες ανταλλαγής μηνυμάτων και σχετικές λειτουργικότητες (π.χ. συλλογική επικοινωνία) Συνδρομή στην ανάπυτυξη βιβλιοθηκών Υψηλή επίδοση στα υπάρχοντα και μελλοντικά συστήματα Κλιμακώσιμος σχεδιασμός Υποστήριξη για C και Fortran 9 11/2016 Συστήματα Παράλληλης Επεξεργασίας
10 MPI MPI-1 To MPI-1 προτάθηκε από το MPI forum το 1994 και όριζε: Point-to-point επικοινωνία MPI_Send, MPI_Recv, MPI_Rsend, MPI_Bsend, MPI_Ssend, MPI_Isend, MPI_Irecv, MPI_Wait, MPI_Waitall, MPI_Probe... Blocking collectives MPI_Barrier, MPI_Bcast, MPI_Gather, MPI_Scatter, MPI_Reduce, MPI_Allreduce, MPI_Alltoall... Static communicators και groups Τοπολογίες διεργασιών Καρτεσιανή τοπολογία, Τοπολογία γράϕου Datatypes (όχι όλα) MPI_Type_struct, MPI_Type_contiguous, MPI_Type_vector, MPI_Type_indexed Διεπαϕή για profiling 10 11/2016 Συστήματα Παράλληλης Επεξεργασίας
11 MPI Communicators MPI_Comm_split MPI_Init(&argc, &argv); 11 11/2016 Συστήματα Παράλληλης Επεξεργασίας
12 MPI Communicators MPI_Comm_split MPI_Init(&argc, &argv); MPI_Comm_rank( MPI_COMM_WORLD, &rank); /2016 Συστήματα Παράλληλης Επεξεργασίας
13 MPI Communicators MPI_Comm_split MPI_Init(&argc, &argv); MPI_Comm_rank( MPI_COMM_WORLD, &rank); color = rank / 3; MPI_Comm_split(MPI_COMM_WORLD, color, rank, split_comm); /2016 Συστήματα Παράλληλης Επεξεργασίας
14 MPI Communicators MPI_Comm_split MPI_Init(&argc, &argv); MPI_Comm_rank( MPI_COMM_WORLD, &rank); color = rank / 3; MPI_Comm_split(MPI_COMM_WORLD, color, rank, split_comm); Ο communicator MPI_COMM_WORLD συνεχίζει να υπάρχει και μετά την κλήση MPI_Comm_split O communicator split_comm μάς βοηθάει να αναϕερόμαστε στις διεργασίες 0,1,2 και 3,4,5 ως διαϕορετικά groups με νέα ranks MPI_Comm_rank(split_comm, &new_rank); 11 11/2016 Συστήματα Παράλληλης Επεξεργασίας
15 MPI Communicators MPI_Comm_split MPI_Bcast(&a, 1, MPI_INT, 0, MPI_COMM_WORLD); /2016 Συστήματα Παράλληλης Επεξεργασίας
16 MPI Communicators MPI_Comm_split MPI_Bcast(&a, 1, MPI_INT, 0, comm_split); /2016 Συστήματα Παράλληλης Επεξεργασίας
17 MPI Communicators Βασικές λειτουργίες MPI_Comm_split(MPI_Comm comm, int color, int rank, MPI_Comm *newcomm) Διαχωρισμός των διεργασιών του communicator comm με βάση το αναγνωριστικό color κάθε διεργασίας στο νέο communicator newcomm MPI_Comm_dup(MPI_Comm comm, MPI_Comm *newcomm) Αντιγραϕή (duplication) του communicator comm στο νέο communicator newcomm MPI_Comm_create(MPI_Comm comm, MPI_Group group, MPI_Comm *newcomm) Δημιουργία νέου communicator newcomm που περιλαμβάνει τις διεργασίες του communicator comm που ανήκουν στο group group MPI_Comm_free(MPI_Comm *comm) Διαγραϕή του communicator comm 13 11/2016 Συστήματα Παράλληλης Επεξεργασίας
18 MPI Communicators MPI Groups Τα groups είναι ομάδες διεργασιών με δικά τους αναγνωριστικά, ακριβώς όπως οι communicators Μπορούμε να δημιουργήσουμε περισσότερους από έναν communicators για το ίδιο group MPI_Group_create(MPI_Comm comm, MPI_Group group) Δημιουργία του group group που περιλαμβάνει όλες τις διεργασίες του communicator comm MPI_Group_incl(MPI_Group group, int n, int * ranks, MPI_Group *newgroup) Προσθήκη n διεργασιών με αναγνωριστικά ranks από το υπάρχον group group στο νέο group newgroup MPI_Group_excl(MPI_Group group, int n, int * ranks, MPI_Group *newgroup) Αϕαίρεση n διεργασιών με αναγνωριστικά ranks από το υπάρχον group group στο νέο group newgroup 14 11/2016 Συστήματα Παράλληλης Επεξεργασίας
19 Εικονικές τοπολογίες Το MPI παρέχει ρουτίνες για τη δημιουργία νέων communicators όπου η διάταξη των διεργασιών εκϕράζει πιο ϕυσικά την επικοινωνία μεταξύ των διεργασιών Δύο βασικές τοπολογίες: Καρτεσιανή τοπολογία Τοπολογία γράϕου (γενική) 15 11/2016 Συστήματα Παράλληλης Επεξεργασίας
20 Εικονικές τοπολογίες Καρτεσιανή τοπολογία Παράδειγμα: Επίλυση προβλήματος σε διδιάστατο χωρίο Μοιράζουμε έναν 2Δ-χωρίο σε 2Δ-υποχωρία στις διεργασίες του MPI 16 11/2016 Συστήματα Παράλληλης Επεξεργασίας
21 Εικονικές τοπολογίες Καρτεσιανή τοπολογία Παράδειγμα: Επίλυση προβλήματος σε διδιάστατο χωρίο Μοιράζουμε έναν 2Δ-χωρίο σε 2Δ-υποχωρία στις διεργασίες του MPI Οι διεργασίες δημιουργούν ένα εικονικό 2Δ-πλέγμα /2016 Συστήματα Παράλληλης Επεξεργασίας
22 Εικονικές τοπολογίες Καρτεσιανή τοπολογία Παράδειγμα: Επίλυση προβλήματος σε διδιάστατο χωρίο Μοιράζουμε έναν 2Δ-χωρίο σε 2Δ-υποχωρία στις διεργασίες του MPI Οι διεργασίες δημιουργούν ένα εικονικό 2Δ-πλέγμα Θέλουμε να μπορούμε να αναϕερόμαστε στις διεργασίες με βάση τη θέση τους στο πλέγμα (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) (3,0) (3,1) (3,2) (3,3) 16 11/2016 Συστήματα Παράλληλης Επεξεργασίας
23 Εικονικές τοπολογίες Καρτεσιανή τοπολογία Παράδειγμα: Επίλυση προβλήματος σε διδιάστατο χωρίο Μοιράζουμε έναν 2Δ-χωρίο σε 2Δ-υποχωρία στις διεργασίες του MPI Οι διεργασίες δημιουργούν ένα εικονικό 2Δ-πλέγμα Θέλουμε να μπορούμε να αναϕερόμαστε στις διεργασίες με βάση τη θέση τους στο πλέγμα Η καρτεσιανή τοπολογία του MPI μπορεί να βοηθήσει 16 11/2016 Συστήματα Παράλληλης Επεξεργασίας
24 Εικονικές τοπολογίες Καρτεσιανή τοπολογία MPI_Cart_create(MPI_Comm comm, int ndim, int dims[], int qperiodic[], int qreorder, MPI_Comm *newcomm) Δημιουργία ενός νέου καρτεσιανού communicator newcomm σε ndim διαστάσεις με μέγεθη dims σε κάθε διάσταση. Αν qperiodic[i] = 1, τότε στη διάσταση i το πλέγμα είναι περιοδικό. (0,0) (1,0) (2,0) (3,0) (0,1) (1,1) (2,1) (3,1) (0,2) (1,2) (2,2) (3,2) (0,3) (1,3) (2,3) (3,3) MPI_Comm cart_comm; int ndim = 2; int dims[2]= {4,4}; int qperiodic[2]= {0, 0}; int qreorder = 0; MPI_Cart_create(MPI_COMM_WORLD, ndim, dims, qperiodic, qreorder, &cart_comm); 17 11/2016 Συστήματα Παράλληλης Επεξεργασίας
25 Εικονικές τοπολογίες Καρτεσιανή τοπολογία MPI_Cart_coords(MPI_Comm comm, int rank, int maxdims, int coords[]) Εύρεση των καρτεσιανών συντεταγμένων coords της διεργασίας με βαθμό rank στον καρτεσιανό πλέγμα comm MPI_Cart_rank(MPI_Comm comm, const int coords[], int * rank) Εύρεση του βαθμού rank μιας διεργασίας με συντεταγμένες coords στο καρτεσιανό πλέγμα comm MPI_Cart_shift(MPI_Comm comm, int direction, int displ, int * source, int * dest) Εύρεση της διεργασίας dest που απέχει απόσταση displ στην κατεύθυνση direction από τη διεργασία source στο καρτεσιανό πλέγμα comm 18 11/2016 Συστήματα Παράλληλης Επεξεργασίας
26 MPI MPI-2 Το MPI-2 (MPI-2.0 το 1997, MPI-2.2 το 2009!) εισήγαγε πολλά νέα στοιχεία στο MPI: Παράλληλο I/O Κλιμακωσιμότητα εϕαρμογών που απαιτούν I/O, περιορισμοί του υλικού, checkpointing Δυναμική διαχείριση διεργασιών (Dynamic Process Management) Ανοχή σε σϕάλματα (fault-tolerance) One-sided επικοινωνία (RMA - Remote Memory Access) Διαϕορετικό προγραμματιστικό μοντέλο - πλέον συμβατό με το σύγχρονο hardware 19 11/2016 Συστήματα Παράλληλης Επεξεργασίας
27 MPI I/O Ανάγκη για παράλληλο I/O Οι παράλληλες εϕαρμογές εκτελούν I/O για δύο βασικούς λόγους: 1. Ανάγνωση των αρχικών συνθηκών/δεδομένων 2. Εγγραϕή αριθμητικών αποτελεσμάτων των προσομοιώσεων Σειριακή ανάγνωση: Μία διεργασία διαβάζει τα αρχικά δεδομένα και τα μοιράζει στις υπόλοιπες διεργασίες Σειριακή εγγραϕή: Μία διεργασία συγκεντρώνει τα αποτελέσματα από τις διεργασίες και τα αποθηκεύει σε αρχείο Σπάνια τα δεδομένα χωράνε στη μνήμη μίας διεργασίας! 20 11/2016 Συστήματα Παράλληλης Επεξεργασίας
28 MPI I/O Σειριακό I/O Και bottleneck! 21 11/2016 Συστήματα Παράλληλης Επεξεργασίας
29 MPI I/O Παράλληλο I/O Πολλαπλές διεργασίες διαβάζουν ή γράϕουν παράλληλα από/σε ένα αρχείο 22 11/2016 Συστήματα Παράλληλης Επεξεργασίας
30 MPI I/O Παράλληλο I/O με χρήση MPI Απαραίτητοι μηχανισμοί για παράλληλο I/O: collective operations, τύποι δεδομένων για μη συνεχόμενα δεδομένα στη μνήμη/σε αρχείο Αρκετά όμοιοι μ αυτούς που παρέχει το MPI για την επικοινωνία Από την πλευρά του συστήματος: παράλληλο σύστημα αρχείων και υλικό που να επιτρέπει παράλληλες προσβάσεις 23 11/2016 Συστήματα Παράλληλης Επεξεργασίας
31 MPI I/O Software/Harware stack Εϕαρμογή Βιβλιοθήκη I/O υψηλού επιπέδου (π.χ. HDF5, netcdf) MPI-I/O (π.χ. ROMIO) Παράλληλο Σύστημα Αρχείων (π.χ. GPFS, Lustre) Υλικό 24 11/2016 Συστήματα Παράλληλης Επεξεργασίας
32 MPI I/O Βασικές λειτουργίες Παράλληλο άνοιγμα αρχείου με MPI_File_open και τα σχετικά modes Παράλληλη ανάγνωση αρχείου με MPI_File_seek και MPI_File_read ή MPI_File_read_at Παράλληλη εγγραϕή αρχείου με MPI_File_set_view και MPI_File_write ή MPI_File_write_at Παράλληλο κλείσιμο αρχείου με MPI_File_close 25 11/2016 Συστήματα Παράλληλης Επεξεργασίας
33 MPI Δυναμική διαχείριση διεργασιών Η δυναμική διαχείριση διεργασιών επιτρέπει: Την προσθήκη διεργασιών σε κάποια δουλειά που τρέχει ήδη Σε εϕαρμογές που τις χρειάζονται π.χ. σε έναν branch-and-bound αλγόριθμο Όταν νέοι πόροι γίνονται διαθέσιμοι Σε παράλληλο προγραμματισμό τύπου master-slave Τη συνένωση εϕαρμογών που τρέχουν ξεχωριστά Client-server, peer-to-peer κλπ Τη διαχείριση σϕαλμάτων Αν μια διεργασία τερματίσει απρόοπτα Αν ένας κόμβος/ένα switch του δικτύου παρουσιάσει βλάβη 26 11/2016 Συστήματα Παράλληλης Επεξεργασίας
34 MPI Δημιουργία νέων διεργασιών MPI job MPI_COMM_WORLD 27 11/2016 Συστήματα Παράλληλης Επεξεργασίας
35 MPI Δημιουργία νέων διεργασιών MPI job MPI_COMM_WORLD MPI_Comm_spawn (και MPI_Comm_spaw_multiple) 27 11/2016 Συστήματα Παράλληλης Επεξεργασίας
36 MPI Δημιουργία νέων διεργασιών MPI job MPI_Init() MPI_COMM_WORLD MPI_Comm_spawn (και MPI_Comm_spaw_multiple) 27 11/2016 Συστήματα Παράλληλης Επεξεργασίας
37 MPI Δημιουργία νέων διεργασιών MPI job Child MPI job Intercommunicator MPI_COMM_WORLD MPI_COMM_WORLD MPI_Comm_spawn (και MPI_Comm_spaw_multiple) 27 11/2016 Συστήματα Παράλληλης Επεξεργασίας
38 MPI Δημιουργία νέων διεργασιών MPI job Child MPI job Intercommunicator MPI_COMM_WORLD MPI_COMM_WORLD MPI_Comm_spawn (και MPI_Comm_spaw_multiple) MPI_Comm_get_parent 27 11/2016 Συστήματα Παράλληλης Επεξεργασίας
39 MPI Επικοινωνία στη δυναμική διαχείριση διεργασιών Οι διεργασίες πολλαπλών συνδεδεμένων MPI εργασιών επικοινωνούν μέσω συναρτήσεων του MPI πάνω από τον intercommunicator O intercommunicator έχει μέγεθος MPI_UNIVERSE_SIZE Οι διεργασίες παίρνουν αναγνωριστικά από 0 έως MPI_UNIVERSE_SIZE Εκτός από τη μέθοδο που είδαμε (MPI_Comm_spawn), παρέχονται και συναρτήσεις τύπου server-client για την επικοινωνία διαϕορετικών εργασιών MPI Server-side: MPI_Open_port, MPI_Comm_accept, MPI_Close_port Client-side: MPI_Comm_connect 28 11/2016 Συστήματα Παράλληλης Επεξεργασίας
40 MPI Point-to-point vs One-sided Στην point-to-point επικοινωνία απαιτείται διμερής γνώση Οι δύο διεργασίες πρέπει να ορίζουν ποιες θέσεις μνήμης τροποποιούνται Οι δύο διεργασίες πρέπει να ορίζουν πότε μπορεί να συμβεί η τροποποίηση Send και Recv Στην one-sided επικοινωνία η γνώση είναι μονομερής Μόνο μία διεργασία ορίζει από πού προέρχονται και πού καταλήγουν τα δεδομένα Αυτή η διεργασία κάνει πρόσβαση σε απομακρυσμένο χώρο διευθύνσεων (remote memory access) Διαισθητικά πιο κοντά σε μοντέλο κοινού χώρου διευθύνσεων Put ή Get One-sided Point-to-point P0 store send P1 recv load P0 fence put fence P1 fence fence load ή P0 store fence P1 fence get 29 11/2016 Συστήματα Παράλληλης Επεξεργασίας
41 MPI Πρόσβαση στην απομακρυσμένη μνήμη στο MPI P0 P1 Get P2 P3 Put Τοπική μνήμη Παράθυρο 30 11/2016 Συστήματα Παράλληλης Επεξεργασίας
42 MPI Βασικές συναρτήσεις για one-sided επικοινωνία MPI_Win_create(void *base, MPI_Aint size, int disp_unit, MPI_Info info, MPI_Comm comm, MPI_Win *win) Η διεργασία ορίζει ένα παράθυρο στη μνήμη της το οποίο χρησιμοποιείται από τις άλλες διεργασίες του communicator για one-sided επικοινωνία Καλείται συλλογικά από τις διεργασίες του communicator Δημιουργείται ένα αντικείμενο window MPI_Win_free(MPI_Win *win) MPI_Put(const void * sendbuf, int sendcount, MPI_Datatype sendtype, int dest, MPI_Aint dest_disp, int recvcount, MPI_Datatype recvtype, MPI_Win win) Η διεργασία μεταϕέρει δεδομένα από την τοπική της μνήμη σε απομακρυσμένη μνήμη (εγγραφή) MPI_Get(const void * recvbuf, int recvcount, MPI_Datatype recvtype, int source, MPI_Aint source_disp, int sendcount, MPI_Datatype sendtype, MPI_Win win) Η διεργασία μεταϕέρει δεδομένα από απομακρυσμένη μνήμη στην τοπική της μνήμη (ανάγνωση) 31 11/2016 Συστήματα Παράλληλης Επεξεργασίας
43 MPI Συλλογικός συγχρονισμός στην one-sided επικοινωνία MPI_Win_fence(int assert, MPI_Win win) Ξεκινάει και ολοκληρώνει εποχές (epochs) επικοινωνίας (συλλογικός συγχρονισμός) Όλες οι διεργασίες με πρόσβαση στο αντικείμενο win καλούν την MPI_Win_fence για να ξεκινήσουν μια εποχή Οι διεργασίες καλούν τις MPI_Put, MPI_Get για να διαβάσουν ή να γράψουν απομακρυσμένα Όλες οι διεργασίες καλούν ξανά την MPI_Win_fence για να ολοκληρωθεί η εποχή - όλες οι εγγραϕές/αναγνώσεις ολοκληρώνονται P0 P1 P2 MPI_Put MPI_Put MPI_Get MPI_Get MPI_Put MPI_Win_fence MPI_Win_fence 32 11/2016 Συστήματα Παράλληλης Επεξεργασίας
44 MPI Ενεργός συγχρονισμός στην one-sided επικοινωνία MPI_Win_post/start(MPI_Group group, int assert, MPI_Win win) MPI_Win_complete/wait(MPI_Win win) Μία διεργασία target ξεκινάει μία εποχή με MPI_Win_post και ολοκληρώνει μια εποχή με MPI_Win_wait κατά την οποία εκθέτει το window σε όλες τις διεργασίες του group Στη διάρκεια της εποχής αυτής, μια διεργασία origin μπορεί να ξεκινήσει μια εποχή προσβάσεων στο window της διεργασίας target με κλήση MPI_Win_start και να την ολοκληρώσει με κλήση MPI_Win_complete target MPI_Win_post MPI_Put origin MPI_Win_start MPI_Get MPI_Win_wait MPI_Win_complete 33 11/2016 Συστήματα Παράλληλης Επεξεργασίας
45 MPI Σύνοψη του Remote Memory Access Πλεονεκτήματα Επιτρέπει πολλαπλές μεταϕορές δεδομένων χωρίς συγχρονισμό Δεν απαιτεί matching στις ουρές των μηνυμάτων Βοηθάει στον προγραμματισμό όταν η επικοινωνία δεν είναι συμμετρική Στα σύγχρονα δίκτυα διασύνδεσης μπορεί να είναι πολύ πιο γρήγορη από την point-to-point επικοινωνία Αν δεν είναι γνωστό ποιες διεργασίες θα επικοινωνήσουν με ποιες, αλλά είναι γνωστές οι θέσεις μνήμης όπου θα μεταϕερθούν δεδομένα, τότε βοηθά την έκϕραση της επικοινωνίας Μειονεκτήματα Αν δεν υπάρχει υποστήριξη από το υλικό, δεν επιτυγχάνει υψηλή επίδοση Στις περισσότερες περιπτώσεις απαιτείται συγχρονισμός, που δεν κλιμακώνει αποδοτικά Οι προγραμματιστές θεωρούν τις one-sided συναρτήσεις του MPI περίπλοκες και μη αποδοτικές (τροποποιήσεις στο MPI-3) 34 11/2016 Συστήματα Παράλληλης Επεξεργασίας
46 MPI MPI-3 Το MPI-3 προτάθηκε το 2012 (MPI-3.1 τον Ιούνιο του 2015), προσπαθώντας να λύσει νέα προβλήματα: Non-blocking collectives Η συλλογική επικοινωνία θα καταναλώνει σημαντικό χρόνο των εϕαρμογών σε συστήματα μεγαλύτερης κλίμακας Η ασύγχρονη συλλογική επικοινωνία βοηθά στο να κρυϕτεί μέρος αυτού του χρόνου Αραιή συλλογική επικοινωνία (blocking και non-blocking) Καλύτερη κλιμάκωση- ευκολότερος προγραμματισμός εϕαρμογών που επικοινωνούν συλλογικά με γείτονες (π.χ. Jacobi!) Σημαντικές επεκτάσεις στην one-sided επικοινωνία Για καλύτερη επίδοση σε υβριδικά συστήματα Για διαχείριση παράλληλων δομών δεδομένων Υποστήριξη για εργαλεία επίδοσης 35 11/2016 Συστήματα Παράλληλης Επεξεργασίας
47 MPI Non-blocking collectives Στην καλύτερη περίπτωση η συλλογική επικοινωνία κλιμακώνει λογαριθμικά Η ασύγχρονη συλλογική επικοινωνία επιτρέπει επικαλύψεις (overlapping) Τα non-blocking collectives του MPI-3 προέρχονται από την εμπειρία εϕαρμογών του πραγματικού κόσμου MPI_Ialltoall - FFT MPI_Iallreduce - Krylov methods (Conjugate Gradient) MPI_Iscatter, MPI_Igather - stencils... και άλλα, όπως MPI_Ibcast, MPI_Ibarrier 36 11/2016 Συστήματα Παράλληλης Επεξεργασίας
48 MPI Neighborhood collectives Σε πολλές εϕαρμογές οι διεργασίες επικοινωνούν επαναληπτικά με συγκεκριμένους γείτονες Τα neighborhood collectives δίνουν τη δυνατότητα στον προγραμματιστή Να ορίσει γράϕους γειτόνων (MPI_Dist_graph_neighbors) Να αντικαταστήσει την point-to-point επικοινωνία με μία γραμμή MPI_Neighbor_allgather, MPI_Neighbor_allgatherv (και σε non-blocking) MPI_Neighbor_alltoall, MPI_Neighbor_alltoallv (και σε non-blocking) 37 11/2016 Συστήματα Παράλληλης Επεξεργασίας
49 MPI Λειτουργίες για δομές δεδομένων Η one-sided επικοινωνία του MPI-2 βοηθά στη διατήρηση κατανεμημένων δομών δεδομένων Το MPI-3 προσθέτει λειτουργίες που σχετίζονται με το συγχρονισμό Non-blocking locks (κάποια ήδη από το MPI-2) MPI_Win_lock, MPI_Win_unlock, MPI_Win_lock_all, MPI_Win_unlock_all κ.ά. Atomic operations MPI_Fetch_and_op, MPI_Compare_and_swap και άλλα 38 11/2016 Συστήματα Παράλληλης Επεξεργασίας
50 1 Επισκόπηση 2 MPI 3 UPC 39 11/2016 Συστήματα Παράλληλης Επεξεργασίας
51 UPC PGAS Languages Global Address Space: ένα thread μπορεί απευθείας να διαβάσει/γράψει απομακρυσμένα δεδομένα Κρύβει τη διάκριση μεταξύ κοινής/κατανεμημένης μνήμης Partitioned Global Address Space (PGAS): τα δεδομένα επισημαίνονται ως local ή global Δεν κρύβει τη διάκριση: κρίσιμο για locality και scaling Χαρακτηριστικά των PGAS γλωσσών: Global address space όπως στα threads (programmability) SPMD παραλληλισμός όπως στο MPI (performance) Διάκριση local/global data (performance) Φιλοσοϕία αντίστοιχη με την one-sided επικοινωνία στο MPI 40 11/2016 Συστήματα Παράλληλης Επεξεργασίας
52 UPC Εισαγωγή Unified Parallel C (UPC): Παράλληλη επέκταση της ANSI C Γλώσσα προγραμματισμού κατανεμημένης κοινής μνήμης Έχει τη ϕιλοσοϕία της C Προγραμματισμός κοντά στο hardware για performance, αλλά με τα προβλήματα της C Όμοια σύνταξη και semantics Ιστορία Ξεκίνησε το 1999 από το IDA, το UCB και το LLNL UPC consortium: ARSC, Compaq, CSC, Cray Inc., Etnus, GMU, HP, IDA CCS, Intrepid Technologies, LBNL, LLNL, MTU, NSA, SGI, Sun Microsystems, UCB, U. Florida, US DOD PI η Kathy Yelick από το UCB Σήμερα: Berkeley UPC, GNU UPC, IBM XL UPC Compilers, Cray UPC, HP UPC κ.ά /2016 Συστήματα Παράλληλης Επεξεργασίας
53 UPC Μοντέλο εκτέλεσης Μοντέλο εκτέλεσης: Threads δουλεύουν ανεξάρτητα σε SPMD μοντέλο Το πλήθος των threads καθορίζεται στο χρόνο μεταγλώττισης ή στο χρόνο εκτέλεσης μεταβλητή προγράμματος για πλήθος threads: THREADS μεταβλητή προγράμματος για thread id: MYTHREAD upc_barrier: Συγχρονισμός για όλα τα threads (all wait) Δύο επιλογές μεταγλώττισης: Στατικά threads H μεταβλητή THREADS καθορίζεται από το χρήστη στο χρόνο μεταγλώττισης Το πρόγραμμα μπορεί να χρησιμοποιήσει τη μεταβλητή THREADS ως σταθερά Δυναμικά threads O μεταγλωττισμένος κώδικας μπορεί να τρέξει με οποιοδήποτε αριθμό από threads 42 11/2016 Συστήματα Παράλληλης Επεξεργασίας
54 UPC Shared vs Private variables Private variables:δεσμεύονται στον private χώρο μνήμης του thread, όπως στη C Shared variables: δεσμεύονται μία ϕορα, με το thread 0 shared int ours; /*use shared variables sparingly*/ int mine; Οι shared μεταβλητές δεν μπορούν να έχουν dynamic lifetime: σε συναρτήσεις μπορούν να χρησιμοποιηθούν μόνο αν δηλωθούν ως static Thread0 Thread1 ThreadN Global Address Space ours:... mine: mine:... mine: Shared Private 43 11/2016 Συστήματα Παράλληλης Επεξεργασίας
55 UPC Pointers in UPC Στη UPC υπάρχουν 4 τύποι pointers, ανάλογα με το πού βρίσκονται και το πού δείχνουν. Πού βρίσκεται ο pointer Πού δείχνει ο pointer Local Shared Private p1 p2 Shared p3 p4 int * p1; /*private pointer to local memory*/ shared int * p2; /*private pointer to shared space*/ int * shared p3; /*shared pointer to local memory*/ shared int * shared p4; /*shared pointer to shared space*/ int * p1: γρήγορος, χρησιμοποιείται για πρόσβαση σε τοπικά δεδομένα σε κώδικα που εκτελεί τοπική δουλειά shared int * p2: χρησιμοποιείται για πρόσβαση σε απομακρυσμένα δεδομένα, αργός γιατί μπορεί να περιλαμβάνει communication int * shared p3: δεν προτείνεται shared int * shared p4: χρησιμοποιείται για μοιραζόμενες δομές δεδομένων 44 11/2016 Συστήματα Παράλληλης Επεξεργασίας
56 UPC Shared arrays Οι scalar μεταβλητές που είναι shared αποθηκεύονται στο χώρο μνήμης του thread 0 Οι πίνακες που είναι shared κατανέμονται μεταξύ των threads (default: κυκλική ανάθεση) shared int x[threads]; /*1 element per thread*/ shared int y[3][threads]; /*3 elements per thread*/ shared int z[3][3]; /*2-3 elements per thread*/ Για διαϕορετική ανάθεση, χρησιμοποιούνται οι layout specifiers: shared int x[n]: κυκλική ανάθεση shared int [*] x[n]: ανάθεση κατά blocks shared int [0] x[n]: όλος ο πίνακας στο thread 0 shared int [b1][b2]...[bn] x[n]: συγκεκριμένο block size (b1,b2,...,bn) για κάθε thread 45 11/2016 Συστήματα Παράλληλης Επεξεργασίας
57 UPC Κατανομή εργασίας - upc_forall upc_forall(init; test; loop; affinity) statement; Επανάληψη πάνω σε όλα τα στοιχεία - Δουλειά στα στοιχεία που ανήκουν στον επεξεργαστή Ο προγραμματιστής ορίζει ότι οι επαναλήψεις είναι ανεξάρτητες Απροσδιόριστο αν υπάρχουν εξαρτήσεις μεταξύ των threads Παράδειγμα: Πρόσθεση Διανυσμάτων #define N 100*THREADS shared int v1[n], v2[n], sum[n]; /*default:cyclic distribution*/ void main() { int i; upc_forall( i=0; i<n; i++; i) sum[i]=v1[i]+v2[i]; } 46 11/2016 Συστήματα Παράλληλης Επεξεργασίας
58 UPC Collective communication Όπως και το MPI, και η UPC υποστηρίζει collective communication. Collectives για υπολογισμούς TYPE bupc_allv_reduce(type, TYPE value, int rootthread, upc_op_t reductionop) TYPE bupc_allv_reduce_all(type, TYPE value, upc_op_t reductionop) Collectives για μεταϕορά δεδομένων TYPE bupc_allv_broadcast(type, TYPE value, int rootthread) TYPE bupc_allv_scatter(type, int rootthread, TYPE *rootsrcarray) TYPE bupc_allv_gather(type, TYPE value, int rootthread, TYPE *rootdestarray) TYPE bupc_allv_gather_all(type, TYPE value, TYPE *destarray) Άλλες εκδόσεις της UPC υποστηρίζουν αυτά και πολλά άλλα collectives (με διαϕορετική σύνταξη) /2016 Συστήματα Παράλληλης Επεξεργασίας
59 UPC Άλλα χαρακτηριστικά Dynamic Memory Allocation shared void * upc_global_alloc(size_t nblocks, size_t nbytes) Καλείται από ένα thread - Ένα thread δεσμεύει shared μνήμη shared void * upc_all_alloc(size_t nblocks, size_t nbytes) Καλείται από όλα τα threads - Επιστρέϕει τον ίδιο shared pointer void upc_free(shared void *ptr) Global synchronization upc_barrier Blocking barrier upc_notify, upc_wait Non-blocking barrier Locks upc_lock_t *upc_all_lock_alloc(void), *upc_global_lock_alloc(void) void upc_lock(upc_lock_t *l), void upc_unlock(upc_lock_t *l) void upc_lock_free(upc_lock_t *ptr) 48 11/2016 Συστήματα Παράλληλης Επεξεργασίας
60 UPC Παράδειγμα: Jacobi-1D - Απλή αλλά μη αποδοτική εκδοχή shared[*] double u_old[n], u[n]; /*block layout*/ void jacobi_sweeps(int T) { int i, t; upc_barrier; for (t=0; t<t; ++t) { upc_forall(i=1; i<n-1; ++i; &(u[i])) u[i]=(u_old[i-1]+u_old[i+1])/2; upc_barrier; upc_forall(i=0; i<n; ++i; &(u[i])) u_old[i]=u[i]; upc_barrier; } } 49 11/2016 Συστήματα Παράλληλης Επεξεργασίας
61 UPC Παράδειγμα: Jacobi-1D - Λιγότερο απλή αλλά πιο αποδοτική εκδοχή shared double u_bound[2][threads]; /*global - for ghost cells*/ double u_old[n_local+2], u[n_local+2]; /*local*/ void jacobi_sweeps(int T) { int i, t; for (t=0; t<t; ++t) { if (MYTHREAD>0) u_bound[0][mythread-1]=u_old[1]; if (MYTHREAD<THREADS) u_bound[1][mythread+1]=u_old[n_local]; upc_barrier; u_old[0]=u_bound[0][mythread]; u_old[n_local+1]=u_bound[1][mythread]; for(i=1; i<n_local+1; ++i) u[i]=(u_old[i-1]+u_old[i+1])/2; upc_barrier; upc(i=0; i<n_local+1; ++i) u_old[i]=u[i]; } } 50 11/2016 Συστήματα Παράλληλης Επεξεργασίας
62 UPC Implementation UPC code 51 11/2016 Συστήματα Παράλληλης Επεξεργασίας
63 UPC Implementation UPC code UPC-to-C translator 51 11/2016 Συστήματα Παράλληλης Επεξεργασίας
64 UPC Implementation UPC code UPC-to-C translator Translator Generated C code 51 11/2016 Συστήματα Παράλληλης Επεξεργασίας
65 UPC Implementation UPC code UPC-to-C translator Translator Generated C code UPC Runtime System 51 11/2016 Συστήματα Παράλληλης Επεξεργασίας
66 UPC Implementation UPC code UPC-to-C translator Translator Generated C code UPC Runtime System GASNet Communication System 51 11/2016 Συστήματα Παράλληλης Επεξεργασίας
67 UPC Implementation UPC code UPC-to-C translator Translator Generated C code UPC Runtime System GASNet Communication System Network Hardware 51 11/2016 Συστήματα Παράλληλης Επεξεργασίας
68 UPC Implementation UPC code UPC-to-C translator network-independent Translator Generated C code UPC Runtime System GASNet Communication System Network Hardware language-independent 51 11/2016 Συστήματα Παράλληλης Επεξεργασίας
69 UPC Implementation UPC code UPC-to-C translator platform-independent network-independent Translator Generated C code UPC Runtime System GASNet Communication System Network Hardware compiler-independent language-independent 51 11/2016 Συστήματα Παράλληλης Επεξεργασίας
70 UPC UPC-to-C translator Μεταγλώττιση σε 2 ϕάσεις Φάση 1: Μετάϕραση της UPC σε C, όπου τα features της UPC μεταϕράζονται σε κλήσεις στο runtime Φάση 2: Μεταγλώττιση του κώδικα με τον C compiler του συστήματος και σύνδεση με το runtime system 52 11/2016 Συστήματα Παράλληλης Επεξεργασίας
71 UPC Runtime system Το runtime system της UPC περιλαμβάνει λειτουργίες όπως: Δημιουργία και διαχείριση των threads Διαχείριση μνήμης Προσβάσεις στη μνήμη (τοπική ή απομακρυσμένη) Συγχρονισμό Polling στο δίκτυο 53 11/2016 Συστήματα Παράλληλης Επεξεργασίας
72 UPC One-sided Communication Η UPC χρησιμοποιεί one-sided επικοινωνία: Message = address + data Two-sided: Message = message id + data Δύο βασικά blocking memory-to-memory operations: 1. put (upc_memput): ανανέωση των shared δεδομένων με δεδομένα από τον ιδιωτικό χώρο μνήμης του thread 2. get (upc_memget): αντιγραϕή shared δεδομένων στον ιδιωτικό χώρο μνήμης ενός thread Πλεονέκτημα: αν το network interface υποστηρίζει RDMA, το get/put δεν κάνει interrupt στη CPU, ούτε απαιτεί buffering 54 11/2016 Συστήματα Παράλληλης Επεξεργασίας
73 UPC Translator+Runtime: Βελτιστοποιήσεις στον παραγόμενο κώδικα Στη UPC, ο προγραμματιστής δεν ορίζει explicitly την ανταλλαγή δεδομένων Το runtime αναλαμβάνει να πραγματοποιήσει την ανταλλαγή δεδομένων με one-sided communication Ο UPC-to-C translator ενορχηστρώνει τον κώδικα με τις κατάλληλες κλήσεις στο runtime Βασικά optimizations στο translation/compilation: 1. Redundancy elimination: Περιττά accesses στη UPC ενδεχομένως σημαίνουν επικοινωνία πάνω από το δίκτυο 2. Split-phase communication: Διαχωρισμός του communication init και του communication sync για computation/communication overlapping και message pipelining 3. Message coalescing: Πολλά put/get με μικρό μεγέθος μηνύματος συνενώνονται σε μεγάλα μηνύματα 55 11/2016 Συστήματα Παράλληλης Επεξεργασίας
74 UPC GASNet Το GASNet είναι σύστημα επικοινωνίας σχεδιασμένο για PGAS γλώσσες Υποστηρίζει πολλά δίκτυα διασύνδεσης υψηλής επίδοσης (Infiniband, SGI Altix, Cray, Quadrics, Ethernet-UDP) To GASNet core API παρέχει βασικά network primitives Η υλοποίηση βασίζεται σε active messages Active messages: κάθε μήνυμα έχει στο header του τη διεύθυνση ενός user-space handler, που εκτελείται με την άϕιξη του μηνύματος, με στόχο να απελευθερωθεί γρήγορα το δίκτυο και να μην μπλοκάρει η CPU Το GASNet extended API παρέχει λειτουργίες put/get, collectives, split-phase barriers κ.α /2016 Συστήματα Παράλληλης Επεξεργασίας
Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC
Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC Συστήματα Παράλληλης Επεξεργασίας 9ο Εξάμηνο, ΣΗΜΜΥ Εργ. Υπολογιστικών Συστημάτων Σχολή ΗΜΜΥ, Ε.Μ.Π. Νοέμβριος 2015 1 Επισκόπηση
Διαβάστε περισσότεραMονόπλευρες επικοινωνίες στο MPI-2
Mονόπλευρες επικοινωνίες στο MPI-2 Γιώργος Καππές ΑΜ: 235 Περίληψη Οι μονόπλευρες επικοινωνίες που παρέχει το MPI έχουν ως στόχο να παρέχουν τη ευκολία της άμεσης προσπέλασης απομακρυσμένων μνημών, καθώς
Διαβάστε περισσότεραΑρχιτεκτονική κοινής μνήμης
Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν κοινή μνήμη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών μνημών Συνήθως η διασύνδεση γίνεται μέσω διαδρόμου μνήμης (memory bus) Αλλά και πιο εξελιγμένα
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότερα1 Επισκόπηση. 2 Cilk. 3 Threading Building Blocks 4 UPC. 5 Charm++ 2 1/2015 Συστήματα Παράλληλης Επεξεργασίας
1 Επισκόπηση 2 Cilk 3 Threading Building Blocks 4 UPC 5 Charm++ 2 1/2015 Συστήματα Παράλληλης Επεξεργασίας 1 Επισκόπηση 2 Cilk 3 Threading Building Blocks 4 UPC 5 Charm++ 3 1/2015 Συστήματα Παράλληλης
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΥπολογιστικές Μέθοδοι Ανάλυσης και Σχεδιασµού Υπολογιστικό Εργαστήριο Μάθηµα 1 Εισαγωγή στο MPI http://ecourses.chemeng.ntua.gr/courses/computational_methods Αρχιτεκτονικές Παράλληλων Υπολογιστών Shared
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΣυστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI)
Message Passing Interface (MPI) Αρχιτεκτονική κοινής µνήµης Οι επεξεργαστές έχουν κοινή µνήµη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών µνηµών Συνήθως η διασύνδεση γίνεται µέσω διαδρόµου µνήµης
Διαβάστε περισσότεραMPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν
Διαβάστε περισσότεραύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών
Υπολογισμός με βάση το πέρασμα μηνυμάτων Προγραμματισμός με πέρασμα μηνυμάτων ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών που θα εκτελούνται σε διαφορετικούς υπολογιστές. 2.
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, εκέµβριος 2002 Τι είναι το MPI; Είναι πρότυπο, όχι συγκεκριµένη υλοποίηση Βιβλιοθήκη ανταλλαγής
Διαβάστε περισσότεραMPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές
Διαβάστε περισσότερα2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45
ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 9 1. Εισαγωγή... 13 1.1 Οι Μεγάλες Σύγχρονες Επιστημονικές Προκλήσεις... 13 1.2 Εξέλιξη της Παράλληλης Επεξεργασίας Δεδομένων... 14 1.3 Οι Έννοιες της Σωλήνωσης, του Παραλληλισμού
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2003 24/11/2003 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Διαβάστε περισσότεραΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Της φοιτήτριας Αριστέας Χρονοπούλου Αρ. Μητρώου: 01 / Επιβλέπων Καθηγητής Αθανάσιος Μάργαρης
ΑΛΕΞΑΝ ΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΟ ΜΟΝΤΕΛΟ ΜΕΤΑΒΙΒΑΣΗΣ ΜΗΝΥΜΑΤΩΝ MESSAGE PASSING INTERFACE (MPI) Της φοιτήτριας Αριστέας Χρονοπούλου Αρ.
Διαβάστε περισσότεραΚατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Διαμοίραση (MPI_Scatter) και συλλογή δεδομένων (MPI_Gather)
Διαβάστε περισσότεραΕισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.
Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση
Διαβάστε περισσότεραMPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης l l l Οι επεξεργαστές
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Οκτώβριος 2009 21/10/2009 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Μemory)
ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1
Διαβάστε περισσότεραΥπολογισμοί Μεταβίβασης Μηνυμάτων
Υπολογισμοί Μεταβίβασης Μηνυμάτων Κ.Γ. Μαργαρίτης προσαρμογή από το μάθημα του Barry Wilkinson ITCS 4145/5145 2006 Cluster Computing Univ. of North Carolina at Charlotte 2.1 2.2 Προγραμματισμός μεταβίβασης
Διαβάστε περισσότεραΕπιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί
Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Εαρινό Εξάμηνο 2013/14 Κεφάλαιο 5: (A) Λογισμικό, Βασικές Εφαρμογές
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran
Διαβάστε περισσότερα13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1
13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 ΓΛΩΣΣΑΡΙ Αµοιβαίος αποκλεισµός (mutual exclusion) Στο µοντέλο κοινού χώρου διευθύνσεων, ο αµοιβαίος αποκλεισµός είναι ο περιορισµός του αριθµού των διεργασιών
Διαβάστε περισσότεραΠαράλληλος Προγραμματισμός με OpenCL
Παράλληλος Προγραμματισμός με OpenCL Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Δεκέμβριος 2017 1 Γενικά για OpenCL 2 Platform Model 3 Execution Model
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 1: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΠερίληψη. Υπερυπολογιστές. Υπολογιστικά προβλήµατα. TOP 500 (Ιούνιος 2007) TOP 500 (Ιούνιος 2009) Ε-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Υπολογιστικά Συστήµατα Υψηλών Επιδόσεων και Εφαρµογές» Περίληψη Υπερυπολογιστές Πολυεπεξεργαστικά συστήµατα
Διαβάστε περισσότεραΗ πολυνηματική γλώσσα προγραμματισμού Cilk
Η πολυνηματική γλώσσα προγραμματισμού Cilk Β Καρακάσης Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού Μεταπτυχιακό Μάθημα (688), ΣΗΜΜΥ Νοέμβριος 2009 Β Καρακάσης (CSLab, NTUA) ΣΗΜΜΥ, Μετ/κό 688 9/2009
Διαβάστε περισσότεραΤοπολογίεσ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ
Τοπολογίεσ Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Τοπολογίεσ ςτο MPI Γιατί να ορίςω τοπολογία; Βολεφει ςε ςυγκεκριμζνουσ αλγορίκμουσ (πχ. Επεξεργαςία εικόνασ ι ςιματοσ) Ποιοί είναι οι γείτονζσ
Διαβάστε περισσότεραΕργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Διαβάστε περισσότεραΠαράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Διαβάστε περισσότεραΣυστήµατα Παράλληλης Επεξεργασίας. Παράλληλοςπρογραµµατισµός: Υλοποίηση παράλληλων προγραµµάτων
Παράλληλοςπρογραµµατισµός: Υλοποίηση παράλληλων προγραµµάτων Σύνοψη παρουσίασης «Μιλώντας»παράλληλα SPMD Master / Worker parallel for Fork / Join Υποστηρικτικές δοµές δεδοµένων Μοιραζόµενα δεδοµένα Μοιραζόµενες
Διαβάστε περισσότεραΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2
ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 Πολυπύρηνοι επεξεργαστές, μέρος 2 Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Cache coherence & scalability! Τα πρωτόκολλα
Διαβάστε περισσότεραEM 361: Παράλληλοι Υπολογισμοί
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ EM 361: Παράλληλοι Υπολογισμοί Ενότητα #5Α: Λογισμικό, Βασικές Εφαρμογές OpenMP Διδάσκων: Χαρμανδάρης Ευάγγελος ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΚΑΙ
Διαβάστε περισσότεραΛειτουργικά Συστήματα Η/Υ
Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2004 22/11/2004 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Διαβάστε περισσότεραΔιεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Διαβάστε περισσότεραΠαράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο
Διαβάστε περισσότεραΠαράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο
Διαβάστε περισσότεραΕργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον
Διαβάστε περισσότεραMPI: Βαςικζσ Εντολζσ Επικοινωνίασ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011
MPI: Βαςικζσ Εντολζσ Επικοινωνίασ Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011 Εντολζσ Επικοινωνίασ ςθμείο προσ ςθμείο (point-to-point) MPI_Send, MPI_Recv MPI_Isend, MPI_Irecv 2 Κώςτασ Διαμαντάρασ
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές
Διαβάστε περισσότεραΚατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός
Διαβάστε περισσότεραΕπιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί
Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Εαρινό Εξάμηνο 2013/14 Κεφάλαιο 5: (B) Message Passing Interface
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;
Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός; Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή
Διαβάστε περισσότεραΠρογραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο
Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 1: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΠαρουσίαση 3ης Άσκησης
Παρουσίαση 3ης Άσκησης Παράλληλος προγραμματισμός για αρχιτεκτονικές κατανεμημένης μνήμης με MPI Συστήματα Παράλληλης Επεξεργασίας 9ο Εξάμηνο, ΣΗΜΜΥ Εργ. Υπολογιστικών Συστημάτων Σχολή ΗΜΜΥ, Ε.Μ.Π. Νοέμβριος
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Υπολογιστικά Συστήµατα Υψηλών Επιδόσεων και Εφαρµογές» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ:
Διαβάστε περισσότεραΠαράλληλος προγραμματισμός: Υλοποίηση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο Σύνοψη παρουσίασης
Διαβάστε περισσότεραHY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο
HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο 2016-2017 Δέυτερη Προγραμματιστική Εργασία Προθεσμία παράδοσης: 19/6/2017 1. Γενική Περιγραφή Στην δεύτερη προγραμματιστική εργασία καλείστε να υλοποιήσετε
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: MPI_Get_count, non blocking send/recv, εμφάνιση και αποφυγή αδιεξόδων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1
Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις
Διαβάστε περισσότεραΠαράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο
Διαβάστε περισσότεραΠαράλληλος προγραµµατισµός
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vasileios Karakasis GRNET S.A., ICCS bkk@cslab.ece.ntua.gr Issues on Grid Technologies, Univ. of Patras, 2/3/2010 Σύνοψη παρουσίασης
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP
ΕΡΓΑΛΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP Νίκος Τρυφωνίδης Μέρος 1 ο : Η ΑΝΑΓΚΗ ΓΙΑ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Γιατί Παράλληλος Προγραμματισμός; Οι επιστημονικές υπολογιστικές
Διαβάστε περισσότεραΛειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΤφποι δεδομζνων MPI. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ
Τφποι δεδομζνων MPI Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ MPI datatypes Σκοπόσ MPI datatypes: θ ςυνεργαςία μεταξφ ετερογενών υπολογιςτών και αρχιτεκτονικών Η χριςθ μθ ςυνεχών κζςεων μνιμθσ.
Διαβάστε περισσότεραΤο λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Μemory)
ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1
Διαβάστε περισσότεραΠαράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο
Διαβάστε περισσότεραΤο Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vangelis Koukis HG-01 01-GRNET and HG-06 06-EKT admin team vkoukis@cslab.ece.ntua.gr NOA, 2006/10/03 Πορεία μιας σειριακής εργασίας
Διαβάστε περισσότεραOpenMP. Προγραµµατισµός Αρχιτεκτονικών Μοιραζόµενης Μνήµης. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ. OpenMP p.
OpenMP Προγραµµατισµός Αρχιτεκτονικών Μοιραζόµενης Μνήµης Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ OpenMP p. 1 Αρχιτεκτονικές Κατανεµηµένης Μνήµης Node Node L2 Memory L2
Διαβάστε περισσότεραΘέματα Μεταγλωττιστών
Γιώργος Δημητρίου Ενότητα 10 η : Βελτιστοποιήσεις Τοπικότητας και Παραλληλισμού: Εξαρτήσεις και Μετασχηματισμοί Βρόχων Επεξεργασία Πινάκων Παραλληλισμός επιπέδου βρόχου Λόγω παραλληλισμού δεδομένων Επιτυγχάνεται
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων
Διαβάστε περισσότεραΠαράλληλος προγραμματισμός: Σχεδίαση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση παράλληλων προγραμμάτων 9 ο Εξάμηνο Σχεδιασμός παράλληλων
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:04 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών
Διαβάστε περισσότεραQuakeTM: Parallelizing a Complex Sequential Application Using Transactional Memory (Gajinov et al., 2009)
Quake I QuakeTM: Parallelizing a Complex Sequential Application Using Transactional Memory (Gajinov et al., 2009) Είναι όντως χρήσιμη η transactional memory σε μεγάλες εφαρμογές; Παράλληλη υλοποίηση μιας
Διαβάστε περισσότεραEM 361: Παράλληλοι Υπολογισμοί
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ EM 361: Παράλληλοι Υπολογισμοί Ενότητα #5Β: Message Passing Interface (MPI) Διδάσκων: Χαρμανδάρης Ευάγγελος ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΩΝ
Διαβάστε περισσότεραΓλώσσες Προγραμματισμού Μεταγλωττιστές
Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γλώσσες Προγραμματισμού Εισαγωγικά Γλώσσα Μηχανής Γλώσσες υψηλού επιπέδου Μεταγλωττιστές
Διαβάστε περισσότεραΔιασύνδεση Εισόδου-Εξόδου
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Διασύνδεση Εισόδου-Εξόδου (συσκευές και ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Διασυνδετικοί : Αναλαμβάνουν
Διαβάστε περισσότεραΠρογραμματισμός συστημάτων UNIX/POSIX
Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΤο λειτουργικό σύστημα. Προγραμματισμός II 1
Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα
Διαβάστε περισσότεραΣυστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC
Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.
Διαβάστε περισσότεραΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΞΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr ΣΥΣΤΗΜΑΤΑ
Διαβάστε περισσότεραΠαράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο
Διαβάστε περισσότερα2η Προγραµµατιστική Εργασία
Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων
Διαβάστε περισσότεραΠαρουσίαση 5 ης Άσκησης:
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:20 OpenMP Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΠαρουσίαση 5 ης Άσκησης:
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος
Διαβάστε περισσότεραΑΝΟΧΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΕΦΑΡΜΟΓΕΣ MPI ΠΟΥ ΑΚΟΛΟΥΘΟΥΝ ΤΟ ΜΟΝΤΕΛΟ MASTER-WORKER Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υποβάλλεται στην
ΑΝΟΧΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΕΦΑΡΜΟΓΕΣ MPI ΠΟΥ ΑΚΟΛΟΥΘΟΥΝ ΤΟ ΜΟΝΤΕΛΟ MASTER-WORKER Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ Υποβάλλεται στην ορισθείσα από την Γενική Συνέλευση Ειδικής Σύνθεσης του Τμήματος Πληροφορικής
Διαβάστε περισσότεραΤεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές
Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές Μίλτος Δ. Γραμματικάκης, Αντώνης Παπαγρηγορίου, Πολύδωρος Πετράκης, Γεώργιος Κορνάρος,
Διαβάστε περισσότεραΠληροφορική 2. Γλώσσες Προγραμματισμού
Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση
Διαβάστε περισσότεραΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση
ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό
Διαβάστε περισσότεραΕισαγωγή στην Πληροφορική
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην Πληροφορική Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Λειτουργικά συστήµατα, διεργασίες και δροµολόγηση Σύνδεση
Διαβάστε περισσότεραNon-blocking Επικοινωνίεσ και Buffering. Κώςτασ Διαμαντάρασ ΤΕΙ Θεςςαλονίκθσ 2011
Non-blocking Επικοινωνίεσ και Buffering Κώςτασ Διαμαντάρασ ΤΕΙ Θεςςαλονίκθσ 2011 Η χριςθ buffer Ροφ πάνε τα δεδομζνα μετά το send? Διεργασία 1 Διεργασία 2 A Buffer Δίκτσο Buffer B 2 Κ. Διαμαντάρας ΤΕΙ
Διαβάστε περισσότεραΛειτουργικά Συστήματα Η/Υ
Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 8 «Ιδεατή Μνήμη» Διδάσκων: Δ. Λιαροκαπης Διαφάνειες: Π. Χατζηδούκας Ιδεατή Μνήμη Οργάνωση. Εισαγωγή. Ιδεατές και πραγματικές διευθύνσεις. Λογική οργάνωση. Τμηματοποίηση
Διαβάστε περισσότεραΤο Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid
Το Message Passing Interface (MPI) και η υποστήριξή του στο EGEE Grid Vangelis Koukis HG-01 01-GRNET and HG-06 06-EKT admin team vkoukis@cslab.ece.ntua.gr UoA, 2006/10/26 Πορεία μιας σειριακής εργασίας
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα: Intel Parallel Studio XE 2013 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΕπικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 Επικοινωνία Πολλάκατανεµηµένα συστήµατα υλοποιούνται πάνω από ένα απλό µοντέλο µηνυµάτων επικοινωνίας,
Διαβάστε περισσότερα