Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC"

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 Παράλληλος προγραμματισμός σε αρχιτεκτονικές κατανεμημένης μνήμης: MPI και UPC Συστήματα Παράλληλης Επεξεργασίας 9ο Εξάμηνο, ΣΗΜΜΥ Εργ. Υπολογιστικών Συστημάτων Σχολή ΗΜΜΥ, Ε.Μ.Π. Νοέμβριος 2015 1 Επισκόπηση

Διαβάστε περισσότερα

Mονόπλευρες επικοινωνίες στο MPI-2

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++ 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) Message Passing Interface (MPI) Αρχιτεκτονική κοινής µνήµης Οι επεξεργαστές έχουν κοινή µνήµη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών µνηµών Συνήθως η διασύνδεση γίνεται µέσω διαδρόµου µνήµης

Διαβάστε περισσότερα

MPI: Message Passing Interface

MPI: Message Passing Interface Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν

Διαβάστε περισσότερα

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

ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών Υπολογισμός με βάση το πέρασμα μηνυμάτων Προγραμματισμός με πέρασμα μηνυμάτων ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών που θα εκτελούνται σε διαφορετικούς υπολογιστές. 2.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, εκέµβριος 2002 Τι είναι το MPI; Είναι πρότυπο, όχι συγκεκριµένη υλοποίηση Βιβλιοθήκη ανταλλαγής

Διαβάστε περισσότερα

MPI: Message Passing Interface

MPI: Message Passing Interface Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές

Διαβάστε περισσότερα

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45

2. Στοιχεία Αρχιτεκτονικής Παράλληλων Υπολογιστών... 45 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 9 1. Εισαγωγή... 13 1.1 Οι Μεγάλες Σύγχρονες Επιστημονικές Προκλήσεις... 13 1.2 Εξέλιξη της Παράλληλης Επεξεργασίας Δεδομένων... 14 1.3 Οι Έννοιες της Σωλήνωσης, του Παραλληλισμού

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

Διαβάστε περισσότερα

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2003 24/11/2003 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική

Διαβάστε περισσότερα

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Της φοιτήτριας Αριστέας Χρονοπούλου Αρ. Μητρώου: 01 / Επιβλέπων Καθηγητής Αθανάσιος Μάργαρης ΑΛΕΞΑΝ ΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΤΟ ΜΟΝΤΕΛΟ ΜΕΤΑΒΙΒΑΣΗΣ ΜΗΝΥΜΑΤΩΝ MESSAGE PASSING INTERFACE (MPI) Της φοιτήτριας Αριστέας Χρονοπούλου Αρ.

Διαβάστε περισσότερα

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017 Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Διαμοίραση (MPI_Scatter) και συλλογή δεδομένων (MPI_Gather)

Διαβάστε περισσότερα

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

Εισαγωγή. 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 Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης l l l Οι επεξεργαστές

Διαβάστε περισσότερα

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Οκτώβριος 2009 21/10/2009 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (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 13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 ΓΛΩΣΣΑΡΙ Αµοιβαίος αποκλεισµός (mutual exclusion) Στο µοντέλο κοινού χώρου διευθύνσεων, ο αµοιβαίος αποκλεισµός είναι ο περιορισµός του αριθµού των διεργασιών

Διαβάστε περισσότερα

Παράλληλος Προγραμματισμός με OpenCL

Παράλληλος Προγραμματισμός με 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: Ειδικά Θέµατα Λογισµικού

Περίληψη. Υπερυπολογιστές. Υπολογιστικά προβλήµατα. TOP 500 (Ιούνιος 2007) TOP 500 (Ιούνιος 2009) Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Υπολογιστικά Συστήµατα Υψηλών Επιδόσεων και Εφαρµογές» Περίληψη Υπερυπολογιστές Πολυεπεξεργαστικά συστήµατα

Διαβάστε περισσότερα

Η πολυνηματική γλώσσα προγραμματισμού Cilk

Η πολυνηματική γλώσσα προγραμματισμού Cilk Η πολυνηματική γλώσσα προγραμματισμού Cilk Β Καρακάσης Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού Μεταπτυχιακό Μάθημα (688), ΣΗΜΜΥ Νοέμβριος 2009 Β Καρακάσης (CSLab, NTUA) ΣΗΜΜΥ, Μετ/κό 688 9/2009

Διαβάστε περισσότερα

Τοπολογίεσ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ

Τοπολογίεσ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Τοπολογίεσ Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Τοπολογίεσ ςτο MPI Γιατί να ορίςω τοπολογία; Βολεφει ςε ςυγκεκριμζνουσ αλγορίκμουσ (πχ. Επεξεργαςία εικόνασ ι ςιματοσ) Ποιοί είναι οι γείτονζσ

Διαβάστε περισσότερα

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο

Διαβάστε περισσότερα

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

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων

Διαβάστε περισσότερα

Συστήµατα Παράλληλης Επεξεργασίας. Παράλληλοςπρογραµµατισµός: Υλοποίηση παράλληλων προγραµµάτων

Συστήµατα Παράλληλης Επεξεργασίας. Παράλληλοςπρογραµµατισµός: Υλοποίηση παράλληλων προγραµµάτων Παράλληλοςπρογραµµατισµός: Υλοποίηση παράλληλων προγραµµάτων Σύνοψη παρουσίασης «Μιλώντας»παράλληλα SPMD Master / Worker parallel for Fork / Join Υποστηρικτικές δοµές δεδοµένων Μοιραζόµενα δεδοµένα Μοιραζόµενες

Διαβάστε περισσότερα

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 Πολυπύρηνοι επεξεργαστές, μέρος 2 Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Cache coherence & scalability! Τα πρωτόκολλα

Διαβάστε περισσότερα

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

EM 361: Παράλληλοι Υπολογισμοί ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ EM 361: Παράλληλοι Υπολογισμοί Ενότητα #5Α: Λογισμικό, Βασικές Εφαρμογές OpenMP Διδάσκων: Χαρμανδάρης Ευάγγελος ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΚΑΙ

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 4 «Αρχιτεκτονικές ΛΣ» Διδάσκων: Δ Λιαροκάπης Διαφάνειες: Π. Χατζηδούκας 1 1. Μονολιθικά συστήματα Αρχιτεκτονικές ΛΣ 2. Στρωματοποιημένη αρχιτεκτονική 3. Αρχιτεκτονική

Διαβάστε περισσότερα

Message Passing Interface (MPI)

Message Passing Interface (MPI) Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2004 22/11/2004 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική

Διαβάστε περισσότερα

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

Διαβάστε περισσότερα

MPI: Βαςικζσ Εντολζσ Επικοινωνίασ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011

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. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π ( Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός

Διαβάστε περισσότερα

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

Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Εαρινό Εξάμηνο 2013/14 Κεφάλαιο 5: (B) Message Passing Interface

Διαβάστε περισσότερα

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός;

Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός; Παράλληλη Επεξεργασία Κεφάλαιο 1 Γιατί Παράλληλος Προγραμματισμός; Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή

Διαβάστε περισσότερα

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Δυναμική Διαχείριση Μνήμης. Δημήτρης Μιχαήλ. Ακ. Έτος 2011-2012. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Προγραμματισμός Ι Δυναμική Διαχείριση Μνήμης Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2011-2012 Ανάγκη για Δυναμική Μνήμη Στατική Μνήμη Μέχρι τώρα χρησιμοποιούσαμε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Παρουσίαση 3ης Άσκησης

Παρουσίαση 3ης Άσκησης Παρουσίαση 3ης Άσκησης Παράλληλος προγραμματισμός για αρχιτεκτονικές κατανεμημένης μνήμης με MPI Συστήματα Παράλληλης Επεξεργασίας 9ο Εξάμηνο, ΣΗΜΜΥ Εργ. Υπολογιστικών Συστημάτων Σχολή ΗΜΜΥ, Ε.Μ.Π. Νοέμβριος

Διαβάστε περισσότερα

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

Ε-85: Ειδικά Θέµατα Λογισµικού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Υπολογιστικά Συστήµατα Υψηλών Επιδόσεων και Εφαρµογές» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ:

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός: Υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Υλοποίηση παράλληλων προγραμμάτων Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο Σύνοψη παρουσίασης

Διαβάστε περισσότερα

HY-486 Αρχές Κατανεμημένου Υπολογισμού Εαρινό Εξάμηνο

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 Εικονική Μνήμη (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 ΕΡΓΑΛΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP Νίκος Τρυφωνίδης Μέρος 1 ο : Η ΑΝΑΓΚΗ ΓΙΑ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Γιατί Παράλληλος Προγραμματισμός; Οι επιστημονικές υπολογιστικές

Διαβάστε περισσότερα

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr Λειτουργικά

Διαβάστε περισσότερα

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

Διαβάστε περισσότερα

Τφποι δεδομζνων MPI. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ

Τφποι δεδομζνων MPI. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Τφποι δεδομζνων MPI Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ MPI datatypes Σκοπόσ MPI datatypes: θ ςυνεργαςία μεταξφ ετερογενών υπολογιςτών και αρχιτεκτονικών Η χριςθ μθ ςυνεχών κζςεων μνιμθσ.

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή η εφαρμογή είναι γνωστή εκ των προτέρων περιορισμένοι υπολογιστικοί

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο

Διαβάστε περισσότερα

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

Το 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. 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)

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: Παράλληλοι Υπολογισμοί ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ EM 361: Παράλληλοι Υπολογισμοί Ενότητα #5Β: Message Passing Interface (MPI) Διδάσκων: Χαρμανδάρης Ευάγγελος ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΩΝ

Διαβάστε περισσότερα

Γλώσσες Προγραμματισμού Μεταγλωττιστές

Γλώσσες Προγραμματισμού Μεταγλωττιστές Γλώσσες Προγραμματισμού Μεταγλωττιστές Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Ηλίας Σακελλαρίου Δομή Γλώσσες Προγραμματισμού Εισαγωγικά Γλώσσα Μηχανής Γλώσσες υψηλού επιπέδου Μεταγλωττιστές

Διαβάστε περισσότερα

Διασύνδεση Εισόδου-Εξόδου

Διασύνδεση Εισόδου-Εξόδου Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Διασύνδεση Εισόδου-Εξόδου (συσκευές και ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Διασυνδετικοί : Αναλαμβάνουν

Διαβάστε περισσότερα

Προγραμματισμός συστημάτων UNIX/POSIX

Προγραμματισμός συστημάτων UNIX/POSIX Προγραμματισμός συστημάτων UNIX/POSIX Προχωρημένη διαδιεργασιακή επικοινωνία: επώνυμοι αγωγοί (FIFOs) ουρές μηνυμάτων (message queues) κοινόχρηστη μνήμη (shared memory) Ανάγκη Ότι είδαμε μέχρι τώρα μπορεί

Διαβάστε περισσότερα

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

Διαβάστε περισσότερα

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Το λειτουργικό σύστημα. Προγραμματισμός II 1 Το λειτουργικό σύστημα Προγραμματισμός II 1 lalis@inf.uth.gr Συστήματα υπολογιστών Ειδικού σκοπού συστήματα για μια συγκεκριμένη εφαρμογή περιορισμένοι υπολογιστικοί / αποθηκευτικοί πόροι δεν τίθεται θέμα

Διαβάστε περισσότερα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΞΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr ΣΥΣΤΗΜΑΤΑ

Διαβάστε περισσότερα

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων

Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο

Διαβάστε περισσότερα

2η Προγραµµατιστική Εργασία

2η Προγραµµατιστική Εργασία Προγραµµατισµός ικτύων (Ε-01) 2η Προγραµµατιστική Εργασία Επέκταση ϐασικής ϐιβλιοθήκης δικτυακού προγραµµατισµού και χρήση της για την υλοποίηση παράλληλου εξυπηρετητή πρωτοκόλλου µεταφοράς αρχείων ιδάσκων

Διαβάστε περισσότερα

Παρουσίαση 5 ης Άσκησης:

Παρουσίαση 5 ης Άσκησης: Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Παρουσίαση 5 ης Άσκησης:

Παρουσίαση 5 ης Άσκησης: Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παρουσίαση 5 ης Άσκησης: Θέματα Συγχρονισμού σε Σύγχρονα Πολυπύρηνα Συστήματα Ακ. Έτος

Διαβάστε περισσότερα

ΑΝΟΧΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΕΦΑΡΜΟΓΕΣ MPI ΠΟΥ ΑΚΟΛΟΥΘΟΥΝ ΤΟ ΜΟΝΤΕΛΟ MASTER-WORKER Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υποβάλλεται στην

ΑΝΟΧΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΕΦΑΡΜΟΓΕΣ MPI ΠΟΥ ΑΚΟΛΟΥΘΟΥΝ ΤΟ ΜΟΝΤΕΛΟ MASTER-WORKER Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ. Υποβάλλεται στην ΑΝΟΧΗ ΣΦΑΛΜΑΤΩΝ ΣΕ ΕΦΑΡΜΟΓΕΣ MPI ΠΟΥ ΑΚΟΛΟΥΘΟΥΝ ΤΟ ΜΟΝΤΕΛΟ MASTER-WORKER Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙΔΙΚΕΥΣΗΣ Υποβάλλεται στην ορισθείσα από την Γενική Συνέλευση Ειδικής Σύνθεσης του Τμήματος Πληροφορικής

Διαβάστε περισσότερα

Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές

Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές Μίλτος Δ. Γραμματικάκης, Αντώνης Παπαγρηγορίου, Πολύδωρος Πετράκης, Γεώργιος Κορνάρος,

Διαβάστε περισσότερα

Πληροφορική 2. Γλώσσες Προγραμματισμού

Πληροφορική 2. Γλώσσες Προγραμματισμού Πληροφορική 2 Γλώσσες Προγραμματισμού 1 2 Γλώσσες προγραμματσιμού Επιτρέπουν την κωδικοποίηση των αλγορίθμων Η εκτέλεση ενός προγράμματος θα πρέπει να δίνει τα ίδια αποτελέσματα με την νοητική εκτέλεση

Διαβάστε περισσότερα

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση

ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση ΜΥΥ- 402 Αρχιτεκτονική Υπολογιστών Μεταγλώτιση, σύνδεση Αρης Ευθυμίου Ανακοινώσεις! Βαθμοί: 1ης εργαστηριακής άσκησης Βαθμός 0 χωρίς σχόλια δεν έχω πάρει την άσκηση! ελέγξτε μήπως δεν το στέλνετε στο σωστό

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην Πληροφορική Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Λειτουργικά συστήµατα, διεργασίες και δροµολόγηση Σύνδεση

Διαβάστε περισσότερα

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

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 Το 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. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού

Επικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 Επικοινωνία Πολλάκατανεµηµένα συστήµατα υλοποιούνται πάνω από ένα απλό µοντέλο µηνυµάτων επικοινωνίας,

Διαβάστε περισσότερα