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

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

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

Transcript

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

2 1 Επισκόπηση 2 MPI 3 UPC 2 11/2015 Συστήματα Παράλληλης Επεξεργασίας

3 1 Επισκόπηση 2 MPI 3 UPC 3 11/2015 Συστήματα Παράλληλης Επεξεργασίας

4 Επισκόπηση Αρχιτεκτονικές και Προγραμματιστικά Μοντέλα από την Οπτική του Προγραμματιστή Προγραμματιστικά Μοντέλα Κοινού Χώρου Διευθύνσεων με Πέρασμα Μηνυμάτων Αρχιτεκτονικές Κοινής μνήμης Κατανεμημένης Μνήμης + Ευκολία Υλοποίησης + Προγραμματιστική Ευκολία + Προγραμματιστική Ευκολία - Δυσκολία Υλοποίησης + Υψηλή Επίδοση - Χαμηλή Επίδοση + Ευκολία Υλοποίησης + Ευκολία Υλοποίησης + Υψηλή Επίδοση + Υψηλή Επίδοση - Προγραμματιστική Δυσκολία - Προγραμματιστική Δυσκολία 4 11/2015 Συστήματα Παράλληλης Επεξεργασίας

5 Επισκόπηση Ο Xάρτης των Eργαλείων και Γλωσσών Παράλληλου Προγραμματισμού Προγραμματιστικά Μοντέλα Κοινού Χώρου Διευθύνσεων με Πέρασμα Μηνυμάτων Αρχιτεκτονικές Κοινής μνήμης Κατανεμημένης Μνήμης POSIX reads, OpenMP, CoArray Fortran, reading Building Blocks, Unified Parallel C (UPC), Cilk, OmpSs Chapel and other PGAS Ομοίως με πέρασμα MPI, PVM (obsolete), μηνυμάτων σε κατανεμημένη Charm++ μνήμη 5 11/2015 Συστήματα Παράλληλης Επεξεργασίας

6 Σύνοψη Παρουσίασης H διαδρομή του MPI Πριν το MPI Η αρχή του MPI: MPI-1 Νέες αρχιτεκτονικές και ανάγκες: MPI-2 Petascale και Exascale: MPI-3 H γλώσσα UPC ως εναλλακτική Διαφορές PGAS - Message Passing Χαρακτηριστικά της UPC Λειτουργία: Υλοποίηση και σύστημα χρόνου εκτέλεσης 6 11/2015 Συστήματα Παράλληλης Επεξεργασίας

7 1 Επισκόπηση 2 MPI 3 UPC 7 11/2015 Συστήματα Παράλληλης Επεξεργασίας

8 MPI Πριν το MPI Στις αρχές του 90 προέκυψε η ανάγκη για πρακτικό παράλληλο προγραμματισμό σε συστήματα κατανεμημένης μνήμης Eταιρείες και εργαστήρια πρότειναν και διατηρούσαν δικές τους γλώσσες, διεπαφές και βιβλιοθήκες παράλληλου προγραμματισμού Έλλειψη μεταφερσιμότητας Μικρές ομάδες χρηστών ανά γλώσσα/διεπαφή Εργαλεία των 90s: Intel ΝΧ, IBM EUI, IBM CCL, PARMACS, OCCAM, PVM κ.ά. Το MPI προέκυψε από μια προσπάθεια συγκέντρωσης και τυποποίησης των καλύτερων πρακτικών από τα ήδη υπάρχοντα εργαλεία 8 11/2015 Συστήματα Παράλληλης Επεξεργασίας

9 MPI Σχεδιαστικές απαιτήσεις Το MPI αναπτύχθηκε ως πρότυπο με συγκεκριμένα σχεδιαστικές απαιτήσεις: Βασικές λειτουργίες ανταλλαγής μηνυμάτων και σχετικές λειτουργικότητες (π.χ. συλλογική επικοινωνία) Συνδρομή στην ανάπυτυξη βιβλιοθηκών Υψηλή επίδοση στα υπάρχοντα και μελλοντικά συστήματα Κλιμακώσιμος σχεδιασμός Υποστήριξη για C και Fortran 9 11/2015 Συστήματα Παράλληλης Επεξεργασίας

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/2015 Συστήματα Παράλληλης Επεξεργασίας

11 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 11 11/2015 Συστήματα Παράλληλης Επεξεργασίας

12 MPI I/O Ανάγκη για παράλληλο I/O Οι παράλληλες εφαρμογές εκτελούν I/O για δύο βασικούς λόγους: 1. Ανάγνωση των αρχικών συνθηκών/δεδομένων 2. Εγγραφή αριθμητικών αποτελεσμάτων των προσομοιώσεων Σειριακή ανάγνωση: Μία διεργασία διαβάζει τα αρχικά δεδομένα και τα μοιράζει στις υπόλοιπες διεργασίες Σειριακή εγγραφή: Μία διεργασία συγκεντρώνει τα αποτελέσματα από τις διεργασίες και τα αποθηκεύει σε αρχείο Σπάνια τα δεδομένα χωράνε στη μνήμη μίας διεργασίας! 12 11/2015 Συστήματα Παράλληλης Επεξεργασίας

13 MPI I/O Σειριακό I/O Και bottleneck! 13 11/2015 Συστήματα Παράλληλης Επεξεργασίας

14 MPI I/O Παράλληλο I/O Πολλαπλές διεργασίες διαβάζουν ή γράφουν παράλληλα από/σε ένα αρχείο 14 11/2015 Συστήματα Παράλληλης Επεξεργασίας

15 MPI I/O Παράλληλο I/O με χρήση MPI Απαραίτητοι μηχανισμοί για παράλληλο I/O: collective operations, τύποι δεδομένων για μη συνεχόμενα δεδομένα στη μνήμη/σε αρχείο Αρκετά όμοιοι μ αυτούς που παρέχει το MPI για την επικοινωνία Από την πλευρά του συστήματος: παράλληλο σύστημα αρχείων και υλικό που να επιτρέπει παράλληλες προσβάσεις 15 11/2015 Συστήματα Παράλληλης Επεξεργασίας

16 MPI I/O So ware/harware stack Εφαρμογή Βιβλιοθήκη I/O υψηλού επιπέδου (π.χ. HDF5, netcdf) MPI-I/O (π.χ. ROMIO) Παράλληλο Σύστημα Αρχείων (π.χ. GPFS, Lustre). Υλικό 16 11/2015 Συστήματα Παράλληλης Επεξεργασίας

17 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 17 11/2015 Συστήματα Παράλληλης Επεξεργασίας

18 MPI Δυναμική διαχείριση διεργασιών Η δυναμική διαχείριση διεργασιών επιτρέπει: Την προσθήκη διεργασιών σε κάποια δουλειά που τρέχει ήδη Σε εφαρμογές που τις χρειάζονται π.χ. σε έναν branch-and-bound αλγόριθμο Όταν νέοι πόροι γίνονται διαθέσιμοι Σε παράλληλο προγραμματισμό τύπου master-slave Τη συνένωση εφαρμογών που τρέχουν ξεχωριστά Client-server, peer-to-peer κλπ Τη διαχείριση σφαλμάτων Αν μια διεργασία τερματίσει απρόοπτα Αν ένας κόμβος/ένα switch του δικτύου παρουσιάσει βλάβη 18 11/2015 Συστήματα Παράλληλης Επεξεργασίας

19 MPI Δημιουργία νέων διεργασιών MPI job. MPI_COMM_WORLD 19 11/2015 Συστήματα Παράλληλης Επεξεργασίας

20 MPI Δημιουργία νέων διεργασιών MPI job. MPI_COMM_WORLD MPI_Comm_spawn (και MPI_Comm_spaw_multiple) 19 11/2015 Συστήματα Παράλληλης Επεξεργασίας

21 MPI Δημιουργία νέων διεργασιών MPI job MPI_Init(). MPI_COMM_WORLD MPI_Comm_spawn (και MPI_Comm_spaw_multiple) 19 11/2015 Συστήματα Παράλληλης Επεξεργασίας

22 MPI Δημιουργία νέων διεργασιών MPI job Child MPI job Intercommunicator. MPI_COMM_WORLD MPI_COMM_WORLD MPI_Comm_spawn (και MPI_Comm_spaw_multiple) 19 11/2015 Συστήματα Παράλληλης Επεξεργασίας

23 MPI Δημιουργία νέων διεργασιών MPI job Child MPI job. Intercommunicator MPI_COMM_WORLD MPI_COMM_WORLD MPI_Comm_spawn (και MPI_Comm_spaw_multiple) MPI_Comm_get_parent 19 11/2015 Συστήματα Παράλληλης Επεξεργασίας

24 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 20 11/2015 Συστήματα Παράλληλης Επεξεργασίας

25 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 21 11/2015 Συστήματα Παράλληλης Επεξεργασίας

26 MPI Πρόσβαση στην απομακρυσμένη μνήμη στο MPI P0 P1 Get P2. P3 Put Τοπική μνήμη Παράθυρο 22 11/2015 Συστήματα Παράλληλης Επεξεργασίας

27 MPI Βασικές συναρτήσεις για one-sided επικοινωνία MPI_Win_create Η διεργασία ορίζει ένα παράθυρο στη μνήμη της το οποίο χρησιμοποιείται από τις άλλες διεργασίες του communicator για one-sided επικοινωνία Καλείται συλλογικά από τις διεργασίες του communicator Δημιουργείται ένα αντικείμενο window MPI_Win_free Το αντικείμενο window αποδεσμεύεται MPI_Put Η διεργασία μεταφέρει δεδομένα από την τοπική της μνήμη σε απομακρυσμένη μνήμη MPI_Get Η διεργασία μεταφέρει δεδομένα από απομακρυσμένη μνήμη στην τοπική της μνήμη MPI_Accumulate Η διεργασία ανανεώνει δεδομένα σε απομακρυσμένη μνήμη MPI_Win_fence Αναμονή για ολοκλήρωση όλων των RMA λειτουργιών 23 11/2015 Συστήματα Παράλληλης Επεξεργασίας

28 MPI Σύνοψη του Remote Memory Access Πλεονεκτήματα Επιτρέπει πολλαπλές μεταφορές δεδομένων χωρίς συγχρονισμό Δεν απαιτεί matching στις ουρές των μηνυμάτων Βοηθάει στον προγραμματισμό όταν η επικοινωνία δεν είναι συμμετρική Στα σύγχρονα δίκτυα διασύνδεσης μπορεί να είναι πολύ πιο γρήγορη από την point-to-point επικοινωνία Μειονεκτήματα Αν δεν υπάρχει υποστήριξη από το υλικό, δεν επιτυγχάνει υψηλή επίδοση Στις περισσότερες περιπτώσεις απαιτείται συγχρονισμός, που δεν κλιμακώνει Οι προγραμματιστές θεωρούν τις one-sided συναρτήσεις του MPI περίπλοκες και μη αποδοτικές 24 11/2015 Συστήματα Παράλληλης Επεξεργασίας

29 MPI MPI-3 Το MPI-3 προτάθηκε το 2012 (MPI-3.1 τον Ιούνιο του 2015), προσπαθώντας να λύσει νέα προβλήματα: Non-blocking collectives Η συλλογική επικοινωνία θα καταναλώνει σημαντικό χρόνο των εφαρμογών σε συστήματα μεγαλύτερης κλίμακας Η ασύγχρονη συλλογική επικοινωνία βοηθά στο να κρυφτεί μέρος αυτού του χρόνου Αραιή συλλογική επικοινωνία (blocking και non-blocking) Καλύτερη κλιμάκωση- ευκολότερος προγραμματισμός εφαρμογών που επικοινωνούν συλλογικά με γείτονες (π.χ. Jacobi!) Σημαντικές επεκτάσεις στην one-sided επικοινωνία Για καλύτερη επίδοση σε υβριδικά συστήματα Για διαχείριση παράλληλων δομών δεδομένων Υποστήριξη για εργαλεία επίδοσης 25 11/2015 Συστήματα Παράλληλης Επεξεργασίας

30 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 26 11/2015 Συστήματα Παράλληλης Επεξεργασίας

31 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) 27 11/2015 Συστήματα Παράλληλης Επεξεργασίας

32 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 και άλλα 28 11/2015 Συστήματα Παράλληλης Επεξεργασίας

33 1 Επισκόπηση 2 MPI 3 UPC 29 11/2015 Συστήματα Παράλληλης Επεξεργασίας

34 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 30 11/2015 Συστήματα Παράλληλης Επεξεργασίας

35 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 κ.ά /2015 Συστήματα Παράλληλης Επεξεργασίας

36 UPC Μοντέλο εκτέλεσης Μοντέλο εκτέλεσης: reads δουλεύουν ανεξάρτητα σε SPMD μοντέλο Το πλήθος των threads καθορίζεται στο χρόνο μεταγλώττισης ή στο χρόνο εκτέλεσης μεταβλητή προγράμματος για πλήθος threads: THREADS μεταβλητή προγράμματος για thread id: MYTHREAD upc_barrier: Συγχρονισμός για όλα τα threads (all wait) Δύο επιλογές μεταγλώττισης: Στατικά threads H μεταβλητή THREADS καθορίζεται από το χρήστη στο χρόνο μεταγλώττισης Το πρόγραμμα μπορεί να χρησιμοποιήσει τη μεταβλητή THREADS ως σταθερά Δυναμικά threads O μεταγλωττισμένος κώδικας μπορεί να τρέξει με οποιοδήποτε αριθμό από threads 32 11/2015 Συστήματα Παράλληλης Επεξεργασίας

37 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 read0 read1 readn Global Address Space ours: mine: mine: mine: Shared Private 33 11/2015 Συστήματα Παράλληλης Επεξεργασίας

38 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: χρησιμοποιείται για μοιραζόμενες δομές δεδομένων 34 11/2015 Συστήματα Παράλληλης Επεξεργασίας

39 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 35 11/2015 Συστήματα Παράλληλης Επεξεργασίας

40 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];.} 36 11/2015 Συστήματα Παράλληλης Επεξεργασίας

41 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 (με διαφορετική σύνταξη) /2015 Συστήματα Παράλληλης Επεξεργασίας

42 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 38 11/2015 Συστήματα Παράλληλης Επεξεργασίας. 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)

43 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; } } 39 11/2015 Συστήματα Παράλληλης Επεξεργασίας

44 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]; } } 40 11/2015 Συστήματα Παράλληλης Επεξεργασίας

45 UPC Implementation. UPC code 41 11/2015 Συστήματα Παράλληλης Επεξεργασίας

46 UPC Implementation UPC. code UPC-to-C translator 41 11/2015 Συστήματα Παράλληλης Επεξεργασίας

47 UPC Implementation UPC. code UPC-to-C translator Translator Generated C code 41 11/2015 Συστήματα Παράλληλης Επεξεργασίας

48 UPC Implementation UPC. code UPC-to-C translator Translator Generated C code UPC Runtime System 41 11/2015 Συστήματα Παράλληλης Επεξεργασίας

49 UPC Implementation UPC. code UPC-to-C translator Translator Generated C code UPC Runtime System GASNet Communication System 41 11/2015 Συστήματα Παράλληλης Επεξεργασίας

50 UPC Implementation UPC. code UPC-to-C translator Translator Generated C code UPC Runtime System GASNet Communication System Network Hardware 41 11/2015 Συστήματα Παράλληλης Επεξεργασίας

51 UPC Implementation UPC. code UPC-to-C translator network-independent Translator Generated C code UPC Runtime System GASNet Communication System Network Hardware language-independent 41 11/2015 Συστήματα Παράλληλης Επεξεργασίας

52 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 41 11/2015 Συστήματα Παράλληλης Επεξεργασίας

53 UPC UPC-to-C translator Μεταγλώττιση σε 2 φάσεις Φάση 1: Μετάφραση της UPC σε C, όπου τα features της UPC μεταφράζονται σε κλήσεις στο runtime Φάση 2: Μεταγλώττιση του κώδικα με τον C compiler του συστήματος και σύνδεση με το runtime system 42 11/2015 Συστήματα Παράλληλης Επεξεργασίας

54 UPC Runtime system Το runtime system της UPC περιλαμβάνει λειτουργίες όπως: Δημιουργία και διαχείριση των threads Διαχείριση μνήμης Προσβάσεις στη μνήμη (τοπική ή απομακρυσμένη) Συγχρονισμό Polling στο δίκτυο 43 11/2015 Συστήματα Παράλληλης Επεξεργασίας

55 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 44 11/2015 Συστήματα Παράλληλης Επεξεργασίας

56 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 με μικρό μεγέθος μηνύματος συνενώνονται σε μεγάλα μηνύματα 45 11/2015 Συστήματα Παράλληλης Επεξεργασίας

57 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 κ.α /2015 Συστήματα Παράλληλης Επεξεργασίας

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

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

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

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 Συστήματα Παράλληλης

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

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

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

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

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

Αρχιτεκτονική κοινής μνήμης Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν κοινή μνήμη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών μνημών Συνήθως η διασύνδεση γίνεται μέσω διαδρόμου μνήμης (memory bus) Αλλά και πιο εξελιγμένα

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

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

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

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

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

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

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

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

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

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

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

Mονόπλευρες επικοινωνίες στο MPI-2 Mονόπλευρες επικοινωνίες στο MPI-2 Γιώργος Καππές ΑΜ: 235 Περίληψη Οι μονόπλευρες επικοινωνίες που παρέχει το MPI έχουν ως στόχο να παρέχουν τη ευκολία της άμεσης προσπέλασης απομακρυσμένων μνημών, καθώς

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

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης

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

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης

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

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

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

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

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

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

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

Υπολογιστικές Μέθοδοι Ανάλυσης και Σχεδιασµού Υπολογιστικό Εργαστήριο Μάθηµα 1 Εισαγωγή στο MPI http://ecourses.chemeng.ntua.gr/courses/computational_methods Αρχιτεκτονικές Παράλληλων Υπολογιστών Shared

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

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1

13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 ΓΛΩΣΣΑΡΙ Αµοιβαίος αποκλεισµός (mutual exclusion) Στο µοντέλο κοινού χώρου διευθύνσεων, ο αµοιβαίος αποκλεισµός είναι ο περιορισµός του αριθµού των διεργασιών

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

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

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

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

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

Παράλληλος Προγραμματισμός με OpenCL Παράλληλος Προγραμματισμός με OpenCL Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Δεκέμβριος 2017 1 Γενικά για OpenCL 2 Platform Model 3 Execution Model

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

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

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

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

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

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

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

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

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

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

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

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

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

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

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

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

MPI: Βαςικζσ Εντολζσ Επικοινωνίασ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011 MPI: Βαςικζσ Εντολζσ Επικοινωνίασ Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011 Εντολζσ Επικοινωνίασ ςθμείο προσ ςθμείο (point-to-point) MPI_Send, MPI_Recv MPI_Isend, MPI_Irecv 2 Κώςτασ Διαμαντάρασ

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

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

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

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

OpenMP. Προγραµµατισµός Αρχιτεκτονικών Μοιραζόµενης Μνήµης. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ. OpenMP p.

OpenMP. Προγραµµατισµός Αρχιτεκτονικών Μοιραζόµενης Μνήµης. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ. OpenMP p. OpenMP Προγραµµατισµός Αρχιτεκτονικών Μοιραζόµενης Μνήµης Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ OpenMP p. 1 Αρχιτεκτονικές Κατανεµηµένης Μνήµης Node Node L2 Memory L2

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

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

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

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

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

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

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

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 10 η : Βελτιστοποιήσεις Τοπικότητας και Παραλληλισμού: Εξαρτήσεις και Μετασχηματισμοί Βρόχων Επεξεργασία Πινάκων Παραλληλισμός επιπέδου βρόχου Λόγω παραλληλισμού δεδομένων Επιτυγχάνεται

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

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

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

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

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

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

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

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

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

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

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

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

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1 Μνήμη Διευθύνσεις Δείκτες Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη Η/Υ Ειδικό υλικό, ξεχωριστό από τον επεξεργαστή Χρησιμεύει για την αποθήκευση δεδομένων και της κατάστασης εκτέλεσης του προγράμματος

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

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

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

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

Εισαγωγή. 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 Κλήση

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

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

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 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 σε μεγάλες εφαρμογές; Παράλληλη υλοποίηση μιας

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

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

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

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

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

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

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

Cilk: Φιλοσοφία και Χρήση

Cilk: Φιλοσοφία και Χρήση 1 Cilk: Φιλοσοφία και Χρήση Παράλληλα Συστήματα Επεξεργασίας 9ο εξάμηνο ΣΗΜΜΥ ακ. έτος 2012-2013 http://www.cslab.ece.ntua.gr/courses/pps Εργαστήριο Υπολογιστικών Συστημάτων ΕΜΠ Δεκέμβριος 2012 Cilk 2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Συστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI) Message Passing Interface (MPI) Αρχιτεκτονική κοινής µνήµης Οι επεξεργαστές έχουν κοινή µνήµη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών µνηµών Συνήθως η διασύνδεση γίνεται µέσω διαδρόµου µνήµης

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

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

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

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

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

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

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

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

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

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

Διάλεξη Εισαγωγή στη Java, Μέρος Γ

Διάλεξη Εισαγωγή στη Java, Μέρος Γ Τμήμα Πληροφορικής και Τηλεπικοινωνιών Ανάπτυξη Λογισμικού για Δίκτυα και Τηλεπικοινωνίες Χειμερινό Εξάμηνο 2017-2018 Διάλεξη Εισαγωγή στη Java, Μέρος Γ Νήματα (Threads) στην Java Συγχρονισμός Producer-Consumer

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

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1

Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1 Διάλεξη 13η: Δυναμική Διαχείρηση Μνήμης, μέρος 1 Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Μνήμη I CS100,

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

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1

Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 Εικονική Μνήμη (Virtual Memory) Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη και επικοινωνία διεργασιών Κάθε διεργασία έχει δική της ιδιωτική μνήμη Μια διεργασία δεν μπορεί να γράψει/διαβάσει από/σε θέσεις

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

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

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

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

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΧΗΜΙΚΩΝ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟ ΚΕΝΤΡΟ Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού Μάθημα 2ο Aντώνης Σπυρόπουλος v2_061015 Οροι που

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

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

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

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

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

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

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

MPI: Message Passing Interface

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

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

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

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

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

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

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

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

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

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

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

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

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

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

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

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

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

Δομημένος Προγραμματισμός (ΤΛ1006)

Δομημένος Προγραμματισμός (ΤΛ1006) Τεχνολογικό Εκπαιδευτικό Ίδρυμα Κρήτης Σχολή Εφαρμοσμένων Επιστημών Τμήμα Ηλεκτρονικών Μηχανικών Τομέας Αυτοματισμού και Πληροφορικής Δομημένος Προγραμματισμός (ΤΛ1006) Δρ. Μηχ. Νικόλαος Πετράκης, Καθηγητής

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

Επιτεύγµατα των Λ.Σ.

Επιτεύγµατα των Λ.Σ. Επιτεύγµατα των Λ.Σ. ιεργασίες ιαχείριση Μνήµης Ασφάλεια και προστασία δεδοµένων Χρονοπρογραµµατισµός & ιαχείρηση Πόρων οµή Συστήµατος ιεργασίες Ένα πρόγραµµα σε εκτέλεση Ένα στιγµιότυπο ενός προγράµµατος

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

Παράλληλος προγραμματισμός: παράλληλες λ υπολογιστικές πλατφόρμες και ανάλυση προγραμμάτων

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

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

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 4: Διεργασίες Πρόγραμμα Πρόγραμμα 1 Πρόγραμμα

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals Δρ. Απόστολος Γκάμας Διδάσκων 407/80 gkamas@uop.gr Δίκτυα Επικοινωνιών ΙΙ Διαφάνεια 1 1 UDP vs TCP Το UDP είναι ένα connectionless, μη αξιόπιστο,

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Προσομοίωση μεγάλης κλίμακας γραμμικών κυκλωμάτων σε παράλληλες πλατφόρμες Ειδικό Θέμα Ιωαννίδης Κ. Σταύρος Αριθμός Ειδικού Μητρώου:

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

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

Διεργασίες και Νήματα (2/2)

Διεργασίες και Νήματα (2/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Νήματα

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

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

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

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

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

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

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

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

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

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

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Η/Υ (ΤΛ2007 ) Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε.Ι. Κρήτης Προγραμματισμός Η/Υ (ΤΛ2007 ) Δρ. Μηχ. Νικόλαος Πετράκης (npet@chania.teicrete.gr) Ιστοσελίδα Μαθήματος: https://eclass.chania.teicrete.gr/ Εξάμηνο: Εαρινό 2015-16

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 3: MPI_Get_count, non blocking send/recv, εμφάνιση και αποφυγή αδιεξόδων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org

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

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

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

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

Μάθημα 8: Διαχείριση Μνήμης

Μάθημα 8: Διαχείριση Μνήμης Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες

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

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης

Διασυνδετικοί Δίαυλοι. Τι διασυνδέει ένας δίαυλος; Μεταφορά δεδομένων. Διασύνδεση Εισόδου-Εξόδου. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2014-15 Διασύνδεση Εισόδου-Εξόδου (συσκευές και ) http://www.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Διασυνδετικοί : Αναλαμβάνουν την

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

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

Προγραμματισμός Η/Υ 1 (Εργαστήριο) Προγραμματισμός Η/Υ 1 (Εργαστήριο) Ενότητα 2: Δομή ενός προγράμματος C Καθηγήτρια Εφαρμογών: Τσαγκαλίδου Ροδή Τμήμα: Ηλεκτρολόγων Μηχανικών Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

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

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών

Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Επικοινωνία Client/Server Απομακρυσμένη Κλήση Διαδικασιών Χάρης Μανιφάβας Τμήμα Εφ. Πληροφορικής & Πολυμέσων ΤΕΙ Κρήτης Επικοινωνία -RPC 1 Υλοποίηση RPC Προκειμένου να επιτευχθεί διαφάνεια στην κλήση RPC,

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

Οργάνωση Υπολογιστών (IΙI)

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

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

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

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

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

MPI: Message Passing Interface

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

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