Κατανεμημένος και Παράλληλος Προγραμματισμός
|
|
- Πᾰλαιμον Ηλιόπουλος
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Παράλληλος προγραμματισμός OpenMP (2) Παραλληλοποίηση των βρόγχων (for loops) Παραδείγματα Χρονομέτρηση Καλές πρακτικές Ταξινόμηση άρτιου περιττού Μέτρηση λέξεων σε αρχείο κειμένου ΕνόητηταI #8 - OpenMP τεχνικές 2 Ο βρόγχος for H OMP διαχειρίζεται χωρίς την επέμβαση του προγραμματιστή τους βρόγχους του for (δεν μπορούν να παραλληλισθούν βρόγχοι while ή do..while): # pragma omp parallel { --- # pragma omp for ή # pragma omp parallell for { --- ΕνόητηταI #8 - OpenMP τεχνικές 3 1
2 Παραδείγματα (1 από 6) # pragma omp parallel { # pragma omp for printf("\ndiergasia %d - - ektelei to %d tou for loop...", omp_get_thread_num(), i); N = 10 Diergasia 3 -- ektelei to 8 tou for loop... Diergasia 3 -- ektelei to 9 tou for loop... Diergasia 2 -- ektelei to 6 tou for loop... Diergasia 2 -- ektelei to 7 tou for loop... Diergasia 1 -- ektelei to 3 tou for loop... Diergasia 1 -- ektelei to 4 tou for loop... Diergasia 1 -- ektelei to 5 tou for loop... Diergasia 0 -- ektelei to 0 tou for loop... Diergasia 0 -- ektelei to 1 tou for loop... Diergasia 0 -- ektelei to 2 tou for loop... ΕνόητηταI #8 - OpenMP τεχνικές 4 Παραδείγματα (2 από 6) # pragma omp parallel shared(n) private(i) { # pragma omp for printf("\ndiergasia %d - - ektelei to %d tou for loop...", omp_get_thread_num(), i); N = 10 Diergasia 3 -- ektelei to 8 tou for loop... Diergasia 3 -- ektelei to 9 tou for loop... Diergasia 2 -- ektelei to 6 tou for loop... Diergasia 2 -- ektelei to 7 tou for loop... Diergasia 1 -- ektelei to 3 tou for loop... Diergasia 1 -- ektelei to 4 tou for loop... Diergasia 1 -- ektelei to 5 tou for loop... Diergasia 0 -- ektelei to 0 tou for loop... Diergasia 0 -- ektelei to 1 tou for loop... Diergasia 0 -- ektelei to 2 tou for loop... ΕνόητηταI #8 - OpenMP τεχνικές 5 Παραδείγματα (3 από 6) reduction(+:sum) sum += A[i]; N = 10 Athroisma = 47 ΕνόητηταI #8 - OpenMP τεχνικές 6 2
3 Παραδείγματα (4 από 6) private (i) shared(n) reduction(+:sum) { sum += A[i]; printf("\ndiergasia %d, i=%d, sum=%d", omp_get_thread_num(), i, sum); ΕνόητηταI #8 - OpenMP τεχνικές 7 Παραδείγματα (5 από 6) private (i) shared(n) reduction(+:sum) nowait sum += A[i]; Ότι και στο προηγούμενο παράδειγμα με την διαφορά ότι εάν κάποια διεργασία (πυρήνας) τερματίσει νωρίτερα από τους υπόλοιπους μπορεί να του ανατεθεί επόμενη εργασία. Προσοχή: πρέπει να χρησιμοποιείται μόνο αν είμαστε σίγουροι ότι δεν υπάρχει εξάρτηση διεργασιών. ΕνόητηταI #8 - OpenMP τεχνικές 8 Παραδείγματα (6 από 6) private (i) shared(n) reduction(+:sum) { sum += A[i]; printf("\ndiergasia %d, i=%d, sum=%d", omp_get_thread_num(), i, sum); printf("\n\nathroisma = %d\n\n", sum); N = 10: 0=3, 1=6, 2=7, 3=5, 4=3, 5=5, 6=6, 7=2, 8=9, 9=1 Diergasia 2, i=6, sum=6 Diergasia 2, i=7, sum=8 Diergasia 3, i=8, sum=9 Diergasia 3, i=9, sum=10 Diergasia 1, i=3, sum=5 Diergasia 1, i=4, sum=8 Diergasia 1, i=5, sum=13 Diergasia 0, i=0, sum=3 Diergasia 0, i=1, sum=9 Diergasia 0, i=2, sum=16 Athroisma = 47 ΕνόητηταI #8 - OpenMP τεχνικές 9 3
4 Βρόγχοι: static vs. dynamic (1 από 4) Schedule static: o βρόγχος διαιρείται σε συνεχή τμήματα ανάλογα με τους πυρήνες/διεργασίες. Schedule dynamic: βρόγχος διαιρείται σε τμήματα μεγέθους 1 και εάν κάποια διεργασία/πυρήνας τελειώνει τότε του ανατίθεται νέο τμήμα (πάντα μεγέθους 1 εκτός και εάν ορισθούν διαφορετικά πχ schedule(dynamic, 2) ) ΕνόητηταI #8 - OpenMP τεχνικές 10 Βρόγχοι: static vs. dynamic (2 από 4) #pragma omp parallel for schedule(static) for(i=0; i<10; i++) printf("\n Diergasia = %d, i = %d", omp_get_thread_nu m(),i); Κάθε διεργασία παίρνει από την αρχή ένα μέρος του βρόγχου (σταθερό) Diergasia = 0, i = 0 Diergasia = 0, i = 1 Diergasia = 0, i = 2 Diergasia = 3, i = 8 Diergasia = 3, i = 9 Diergasia = 1, i = 3 Diergasia = 1, i = 4 Diergasia = 1, i = 5 Diergasia = 2, i = 6 Diergasia = 2, i = 7 ΕνόητηταI #8 - OpenMP τεχνικές 11 Βρόγχοι: static vs. dynamic (3 από 4) #pragma omp for schedule(dynamic) for(i=0; i<10; i++) printf("\n Diergasia = %d, i = %d", omp_get_thread_n um(),i); Κάθε διεργασία παίρνει ένα μέρος του βρόγχου και μόλις τελειώσει παίρνει επόμενο, κλπ Diergasia = 0, i = 2 Diergasia = 0, i = 4 Diergasia = 3, i = 3 Diergasia = 3, i = 6 Diergasia = 3, i = 7 Diergasia = 3, i = 8 Diergasia = 3, i = 9 Diergasia = 2, i = 1 Diergasia = 1, i = 0 Diergasia = 0, i = 5 ΕνόητηταI #8 - OpenMP τεχνικές 12 4
5 Βρόγχοι: static vs. dynamic (4 από 4) #pragma omp for schedule(dynamic, 3) for(i=0; i<10; i++) printf("\n Diergasia = %d, i = %d", omp_get_thread_ num(),i); Ότι και η προηγούμενη μόνο που η κάθε διεργασία παίρνει αρχικά από 3 μέρη του βρόγχου Diergasia = 0, i = 0 Diergasia = 0, i = 1 Diergasia = 0, i = 2 Diergasia = 1, i = 3 Diergasia = 1, i = 4 Diergasia = 1, i = 5 Diergasia = 2, i = 9 Diergasia = 3, i = 6 Diergasia = 3, i = 7 Diergasia = 3, i = 8 ΕνόητηταI #8 - OpenMP τεχνικές 13 Reduction Βασικοί τελεστές + με αρχική τιμή στην μεταβλητή 0 * με αρχική τιμή στην μεταβλητή 1 - με αρχική τιμή στην μεταβλητή 0 Παράδειγμα: reduction(*: x) X *= A[i] ΕνόητηταI #8 - OpenMP τεχνικές 14 Χρονομέτρηση $/bin/time./εκτελέσιμο πρόγραμμα Real : x User: y Sys : z X: ο συνολικός χρόνος εκτέλεσης του προγράμματος από την αρχή μέχρι το τέλος Y: ο απαιτούμενος χρόνος του προγράμματος χωρίς τον χρόνο που απαιτήθηκε για υπηρεσίες του λειτουργικού συστήματος Z: αποκλειστικά ο χρόνος που χρειάστηκε για υπηρεσίες του Λ.Σ. (πχ input/output κλπ) ΕνόητηταI #8 - OpenMP τεχνικές 15 5
6 Γρήγορη ερώτηση: τι θα εκτυπωθεί for (i=0; i<10; i++) printf( %d, I printf( \n\n ); private(i) for (i=0; i<10; i++) printf( %d, I printf( \n\n ); Δεν υπάρχει καμία διαφορά γιατί έτσι και αλλιώς η OMP μοιράζει την for σε διεργασίες με τον αντίστοιχο δείκτη ΕνόητηταI #8 - OpenMP τεχνικές 16 Πρακτικές βελτιστοποίησης Βελτιστοποίηση (ελαχιστοποίηση) των barriers Αποφυγή σειριακών τμημάτων Αποφυγή μεγάλων critical τμημάτων του προγράμματος Μεγιστοποίηση πλήθους παράλληλων τμημάτων Αποφυγή παράλληλων τμημάτων σε εσωτερικούς βρόγχους Αντίληψη μικρής εξισορρόπησης φορτίου εργασίας ΕνόητηταI #8 - OpenMP τεχνικές 17 Βελτιστοποίηση των barriers (1 από 3) # pragma omp parallel {. # pragma omp for # pragma omp for nowait Ένα barrier λιγότερο. Η οδηγία nowait έχει σαν αποτέλεσμα να άρει το barrier μετά τον δεύτερο βρόγχο. Έτσι όποιος πυρήνας τελειώσει νωρίτερα να μπορεί να αναλάβει επόμενη εργασία. ΕνόητηταI #8 - OpenMP τεχνικές 18 6
7 Βελτιστοποίηση των barriers (2 από 3) # pragma omp parallel default(none) shared(n, A, B, C, D, sum) private(i) { --- # pragma omp for nowait A[i] = 10 + B[i]; # pragma omp for nowait C[i] = 10 * D[i]; # pragma omp barrier # pragma omp for nowait reduction(+:sum) sum += A[i] + C[i]; --- ΕνόητηταI #8 - OpenMP τεχνικές 19 Βελτιστοποίηση των barriers (3 από 3) Οι δύο πρώτοι βρόγχοι θα εκτελεστούν χωρίς να περιμένει ο ένας το άλλο Για να εκτελεστεί όμως ο τρίτος βρόγχος, οι δύο πρώτοι πρέπει οπωσδήποτε να έχουν ολοκληρωθεί αφού υπάρχει σαφής εξάρτηση (dependency) των δεδομένων. ΠΡΟΣΟΧΗ: πρέπει να είμαστε βέβαιοι ότι δεν υπάρχει εξάρτηση δεδομένων όταν εφαρμόζουμε τακτικές άρσης των barriers ΕνόητηταI #8 - OpenMP τεχνικές 20 Αποφυγή παράλληλων τμημάτων σε εσωτερικούς βρόγχους (1 από 2) for (j=0; j<n; j++) for (k=0; k<n; k++) {.. Το κόστος της αίτησης παραλληλίας ανέρχεται σε N 2. ΕνόητηταI #8 - OpenMP τεχνικές 21 7
8 Αποφυγή παράλληλων τμημάτων σε εσωτερικούς βρόγχους (2 από 2) # pragma omp parallel for (j=0; j<n; j++) # pragma omp for for (k=0; k<n; k++) {.. To κόστος της παραλληλίας μειώνεται σημαντικά! ΕνόητηταI #8 - OpenMP τεχνικές 22 Αποφυγή σειριακών τμημάτων Είναι προφανές ότι όσο πιο μικρά και λίγα είναι τα σειριακά τμήματα (δηλαδή αυτά που δεν μπορούν να εκτελεσθούν παράλληλα) ενός προγράμματος τόσο μειώνει και ο χρόνος εκτέλεσης του παράλληλου προγράμματος (Νόμος Amdahl) Αντίστοιχα η μεγιστοποίηση του πλήθος των παράλληλων τμημάτων ελαχιστοποιεί πάλι τον χρόνο εκτέλεσης του προγράμματος ΕνόητηταI #8 - OpenMP τεχνικές 23 Αποφυγή μεγάλων critical τμημάτων του προγράμματος Critical: εάν απαιτείται κάποιο μέρος του παράλληλου τμήματος να εκτελεσθεί αποκλειστικά από μία διεργασία/πυρήνα: #pragma omp parallel shared(x) { ---- #pragma omp critical x = x + 1; Αν και όλες οι διεργασίες θα προσπαθήσουν (ανταγωνισμός) να εκτελέσουν την αύξηση του x αποκλειστικά μόνο μία θα το εκτελέσει ακριβώς επειδή είναι critical ΕνόητηταI #8 - OpenMP τεχνικές 24 8
9 Αντίληψη μικρής εξισορρόπησης φορτίου εργασίας Πολλές (αν όχι όλες) φορές κάποιες διεργασίες / πυρήνες αναλαμβάνουν μεγαλύτερο φόρτο εργασίας από άλλες Παράδειγμα: εργασίες σε τριγωνικούς πίνακες θα επιφέρει μεγαλύτερο φόρτο στις διεργασίες που θα διαχειριστούν γραμμές με τα περισσότερα σε πλήθος στοιχεία ΕνόητηταI #8 - OpenMP τεχνικές 25 Εξισορρόπηση φόρτου (1 από 2) Read_from_file_chunk(i) For (j=0; j<p; j++) Εργασίες σε δεδομένα Write_results_to_file_chunk(i) O παραπάνω κώδικας διαβάζει ένα αρχείο τμηματικά (chunks), η κάθε διεργασία/πυρήνας επεξεργάζεται αυτό το τμήμα και στην συνέχεια γράφονται τα αποτελέσματα σε αυτό το τμήμα του αρχείου. Πως βελτιστοποιείται??? ΕνόητηταI #8 - OpenMP τεχνικές 26 Εξισορρόπηση φόρτου (2 από 2) # pragma omp parallel Παραλληλοποίηση { # pragma omp single των I/O { Read_from_file_chunk(0) διαδικασιών με for (i=1; i<n; i++) τους υπολογισμούς # pragma omp single nowait { Read_from_file_chunk(i) schedule(dynamic) Εργασίες σε δεδομένα # pragma omp single nowait Write_results_to_file_chunk(i) ΕνόητηταI #8 - OpenMP τεχνικές 27 9
10 Ταξινόμηση άρτιου/περιττού (1 από 2) Μοιάζει με την μέθοδο φυσαλίδας (bubble sort) Διαχωρίζει τις συγκρίσεις σε δύο φάσεις Άρτια φάση: (Α[0],Α[1]), (Α[2],Α[3]), (Α[4],Α[5]), Περιττή φάση: (Α[1],Α[2]), (Α[3],Α[4]), (Α[5],Α[6]), ΕνόητηταI #8 - OpenMP τεχνικές 28 Ταξινόμηση άρτιου/περιττού (2 από 2) for (fasi=0; fasi<n; fasi++) if (fasi % 2 == 0 ) // άρτια φάση for (i=1; i<n; i+=2) if (A[i-1] > A[i]) { temp = A[i]; A[i] = A[i-1]; A[i-1] = temp; else // περιττή φάση for (i=1; i<n-1; i+=2) if (A[i] > A[i+1]) { temp = A[i]; A[i] = A[i+1]; A[i+1] = temp; ΕνόητηταI #8 - OpenMP τεχνικές 29 Ταξιν. άρτιου/περιττού, παράλληλη έκδοση 1 for (fasi=0; fasi<n; fasi++) if (fasi % 2 == 0 ) //άρτια default(none) shared(a, N) private(temp, i) num_threads(2) for (i=1; i<n; i+=2) if (A[i-1] > A[i]) { temp = A[i]; A[i] = A[i-1]; A[i-1] = temp; Else // περιττή φάση default(none) shared(a, N) private(temp, i) num_threads(2) for (i=1; i<n-1; i+=2) if (A[i] > A[i+1]) { temp = A[i]; A[i] = A[i+1]; A[i+1] = temp; ΕνόητηταI #8 - OpenMP τεχνικές 30 10
11 Ταξιν. άρτιου/περιττού, παράλληλη έκδοση 2 # pragma omp parallel num_threads(3) default(none) shared(a, N) private(temp, i) for (fasi=0; fasi<n; fasi++) { if (fasi % 2 == 0 ) // άρτια # pragma omp for for (i=1; i<n; i+=2) { if (A[i-1] > A[i]) { temp = A[i]; A[i] = A[i-1]; A[i-1] = temp; else //περιττή # pragma omp for for (i=1; i<n-1; i+=2) { if (A[i] > A[i+1]) { temp = A[i]; A[i] = A[i+1]; A[i+1] = temp; ΕνόητηταI #8 - OpenMP τεχνικές 31 Σύγκριση των δύο εκδόσεων Διεργασίες/πυρήνες Δύο οδηγίες parallel for 0,770 0,453 0,358 0,305 Δύο οδηγίες for 0,732 0,376 0,294 0,239 0,9 0,8 0,7 0,6 2 parallel for 2 οδηγίες for 0,5 0,4 0,3 0,2 0, ΕνόητηταI #8 - OpenMP τεχνικές 32 Μέτρηση λέξεων (από αρχείο) while (! feof(f) ) { c = fgetc(f); if ( (c>='a' && c<='z') (c>='a' && c<='z') (c>='0' && c<='9')) { if (mesa_se_leksi == 0) { lekseis++; mesa_se_leksi = 1; else mesa_se_leksi = 0; Η μεταβλητή mesa_se_leksi λειτουργεί σαν flag. Όταν διαβασθεί ένας χαρακτήρας, εάν είναι γράμμα ή αριθμός τότε εάν δεν βρισκόμαστε μέσα σε λέξη αυξάνει τον μετρητή των λέξεων (lekseis) αλλιώς δεν πρέπει να μετρηθεί λέξη ΕνόητηταI #8 - OpenMP τεχνικές 33 11
12 Παράλληλη έκδοση (μέτρηση λέξεων) Τεμαχισμός του αρχείου σε τμήματα (chunks) Απόδοση του κάθε τμήματος σε διαφορετική διεργασία / πυρήνα Ο κάθε πυρήνας διαβάζει το τμήμα που του αντιστοιχεί Μέτρηση του πλήθους των λέξεων (τοπικά) Άθροιση όλων των επιμέρους μετρητών (reduce) ΕνόητηταI #8 - OpenMP τεχνικές 34 Ερωτήσεις; Τέλος της # 07 ενότητας Χρησιμοποιείστε το για όποιες επιπλέον απορίες / ερωτήσεις: savvas@teilar.gr Σημειώσεις μαθήματος (και όχι μόνο): ΕνόητηταI #8 - OpenMP τεχνικές 35 12
Κατανεμημένος και Παράλληλος Προγραμματισμός
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Παράλληλος προγραμματισμός OpenMP (3) Critical vs. Single Η
Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Διαμοίραση (MPI_Scatter) και συλλογή δεδομένων (MPI_Gather)
Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp
Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp Γκόγκος Χρήστος Παράδειγμα
Κατανεμημένος και. Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Παράλληλος προγραμματισμός - OpenMP Παράλληλες
Κατανεμημένος και Παράλληλος Προγραμματισμός
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Παράλληλος προγραμματισμός - OpenMP Παράλληλες αρχιτεκτονικές
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP (2 ο Μέρος)
ΕΡΓΑΛΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP (2 ο Μέρος) Νίκος Τρυφωνίδης Εφαρμογή 7: Ανισορροπία Το πρόγραμμα imbalance.c περιέχει ένα loop το οποίο έχει μεγαλύτερη εργασία
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP
ΕΡΓΑΛΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP Νίκος Τρυφωνίδης Μέρος 1 ο : Η ΑΝΑΓΚΗ ΓΙΑ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Γιατί Παράλληλος Προγραμματισμός; Οι επιστημονικές υπολογιστικές
Παράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Διαμοίραση έργου και συγχρονισμός στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Παράλληλες Περιοχές Καθορίζονται
Γλώσσα Προγραμματισμού C. Προγραμματισμός HY: Γλώσσα Προγραμματισμού C. Γρήγορος Πίνακας Αναφοράς Σύνταξης. Εισήγηση #4. Επαναληπτικές δομές:
Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas
Προγραμματισμός με το OpenMP Β. Δημακόπουλος
ΠΛE006 Παράλληλη Επεξεργασία Προγραμματισμός με το OpenMP Β. Δημακόπουλος Shared address space / shared variables Τι χρειάζεται κανείς για να προγραμματίσει σε αυτό το μοντέλο: Οντότητες εκτέλεσης (νήματα,
OpenMP. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων OpenMP 9 ο Εξάμηνο Προγραμματισμός σε μοιραζόμενη μνήμη void thread1(int *shared_var) int
OpenMP. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων OpenMP 9 ο Εξάμηνο Προγραμματισμός σε μοιραζόμενη μνήμη void thread1(int *shared_var) int
Συστήµατα Παράλληλης Επεξεργασίας. OpenMP
OpenMP Προγραµµατισµός σε µοιραζόµενη µνήµη void thread1(int *shared_var) int i; for (i=0; i
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών. OpenMP. Συστήματα Παράλληλης Επεξεργασίας 9 ο Εξάμηνο
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων OpenMP 9 ο Εξάμηνο Προγραμματισμός σε μοιραζόμενη μνήμη void thread1(int *shared_var) void
OpenMP. Προγραµµατισµός Αρχιτεκτονικών Μοιραζόµενης Μνήµης. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ. OpenMP p.
OpenMP Προγραµµατισµός Αρχιτεκτονικών Μοιραζόµενης Μνήµης Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων ΕΜΠ OpenMP p. 1 Αρχιτεκτονικές Κατανεµηµένης Μνήµης Node Node L2 Memory L2
Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός
OpenMP. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων. Αθήνα, Νοέµβριος /11/2004 Εισαγωγή στο OpenMP 1
OpenMP Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2004 29/11/2004 Εισαγωγή στο OpenMP 1 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική κατανεµηµένης µνήµης (distributed
Γλώσσα Προγραμματισμού C
Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas
Παράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran
Ε-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Επαναληπτικές Ασκήσεις» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Ορολογία. Παράδειγµα 3. Εξισορρόπηση Εργασίας. Ε-85: Ειδικά Θέµατα Λογισµικού. E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 6
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Προγραµµατισµός µε το µοντέλο OpenMP» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) Ορολογία Μιαοµάδα νηµάτων
Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο)
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κοινόχρηστος χώρος διευθύνσεων Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο) Shared address space / shared variables Τι χρειάζεται κανείς για να προγραμματίσει σε αυτό το μοντέλο: Οντότητες
Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό. 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα
Εισαγωγή στους Αλγόριθμους και τον Προγραμματισμό 3η Διάλεξη Είσοδος Δεδομένων Συνθήκες Βρόχοι Παραδείγματα Τελεστές συντομογραφίας Τελεστές σύντομης ανάθεσης += παράδειγμα: sum+=10; αντί για: sum = sum
Δομημένος Προγραμματισμός
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα 5: Εντολές επανάληψης Κουκουλέτσος Κώστας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστικών Συστημάτων
Ε-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Προγραµµατισµός µε το µοντέλο OpenMP» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός
Προγραµµατισµός Νηµάτων. Αρχικοποίηση µιας Φοράς pthread_once_t once_block = PTHREAD_ONCE_INIT; pthread_mutex_t mutex;
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Προγραµµατισµός Νηµάτων Χειµερινό Εξάµηνο 2009-10 «Επαναληπτικές Ασκήσεις» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός
Γλώσσα Προγραμματισμού C
Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas
Ε-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Εισαγωγή στο OpenMP» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών
Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί
Επιστημονικοί Υπολογισμοί - Μέρος ΙΙΙ: Παράλληλοι Υπολογισμοί Χαρμανδάρης Βαγγέλης, Τμήμα Εφαρμοσμένων Μαθηματικών Πανεπιστήμιο Κρήτης, Εαρινό Εξάμηνο 2013/14 Κεφάλαιο 5: (A) Λογισμικό, Βασικές Εφαρμογές
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:12 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Νέο Πρόγραμμα
Κατανεμημένος και Παράλληλος Προγραμματισμός. Εισαγωγή στο MPI. Εγκατάσταση MPICH σε ένα ΗΥ 10/3/2017
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Εισαγωγή στο MPI Εγκατάσταση του Message Passing Interface,
A[0] = 0; /* To μηδέν δεν έχει διαιρέτες */ for (i=1; i<n; i++) { S=0; for (d=1; d<=i; d++) if (i % d == 0) S += d; A[i] = S; }
TEI Λάρισας / ΣΤΕΦ Τμ. Τεχνολογίας Πληροφορικής & Τηλεπικοινωνιών B Εξεταστική Περίοδος, 19 Φεβρουαρίου 2009 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Ι Ηλίας. Κ. Σάββας Α 1) Να γράψετε ένα πρόγραμμα το οποίο να γεμίζει ένα ακέραιο
2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος
Υ07 Παράλληλα Συστήματα 2011-12 2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος Shared address space / shared variables Τι χρειάζεται κανείς για να προγραμματίσει σε
Παράλληλη Επεξεργασία Κεφάλαιο 2 Παραλληλισμός Δεδομένων
Παράλληλη Επεξεργασία Κεφάλαιο 2 Παραλληλισμός Δεδομένων Κωνσταντίνος Μαργαρίτης Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής Πανεπιστήμιο Μακεδονίας kmarg@uom.gr http://eos.uom.gr/~kmarg Αρετή Καπτάν Υποψήφια
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: Μέτρηση χρόνου τοίχου κατά POSIX Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:20 OpenMP Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
EM 361: Παράλληλοι Υπολογισμοί
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ EM 361: Παράλληλοι Υπολογισμοί Ενότητα #5Α: Λογισμικό, Βασικές Εφαρμογές OpenMP Διδάσκων: Χαρμανδάρης Ευάγγελος ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΚΑΙ
Προγραμματισμός HY: Γλώσσα Προγραμματισμού C
Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas
Διάλεξη 5η: Εντολές Επανάληψης
Διάλεξη 5η: Εντολές Επανάληψης Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Εντολές Επανάληψης CS100, 2015-2016
Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:
Εργαστήριο 6: 6.1 Δομές Επανάληψης Βρόγχοι (Loops) Όταν θέλουμε να επαναληφθεί μια ομάδα εντολών τη βάζουμε μέσα σε ένα βρόχο επανάληψης. Το αν θα (ξανα)επαναληφθεί η εκτέλεση της ομάδας εντολών καθορίζεται
4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for)
4. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Α' μέρος: for) 4.1 Μετρητές Ένας μετρητής (counter) είναι μία μεταβλητή η οποία ξεκινά με μία αρχική τιμή και αυξάνεται κατά ένα κάθε φορά που εκτελείται. Ο αλγόριθμος για έναν μετρητή
Διάλεξη 2η: Αλγόριθμοι και Προγράμματα
Διάλεξη 2η: Αλγόριθμοι και Προγράμματα Τμήμα Επιστήμης Υπολογιστών, Πανεπιστήμιο Κρήτης Εισαγωγή στην Επιστήμη Υπολογιστών Βασίζεται σε διαφάνειες του Κ Παναγιωτάκη Πρατικάκης (CSD) Αλγόριθμοι και Προγράμματα
ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων
ΕΠΛ31 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Έλεγχος Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Σχεσιακοί Τελεστές και Ισότητας Ένα πρόγραμμα εκτός από αριθμητικές πράξεις
Δομές ελέγχου & επανάληψης
3 Δομές ελέγχου & επανάληψης Τι θα δούμε σε αυτό το μάθημα 1. δομές ελέγχου 1. η δομή if 2. η δομή switch 2. δομές επανάληψης 1. η δομή while 2. η δομή do...while 3. η δομή for 3. break και continue 4.
Υπολογισμός - Εντολές Επανάληψης
Προγραμματισμός Η/Υ Ι Υπολογισμός - Εντολές Επανάληψης ΕΛΕΥΘΕΡΙΟΣ ΚΟΣΜΑΣ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2018-2019 ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ Τ.Ε. 1 Περίληψη Σήμερα... θα συνεχίσουμε τη συζήτησή μας για τα βασικά στοιχεία
Εισαγωγή στον Προγραμματισμό
Εισαγωγή στον Προγραμματισμό Ενότητα 6 Πίνακες Πανεπιστήμιο Αιγαίου Τμήμα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστημάτων Τύπος πίνακα (array) Σύνθετος τύπος δεδομένων Αναπαριστά ένα σύνολο ομοειδών
Εισαγωγή στην πληροφορική
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόμων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης Δρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραμματισμού
Διάλεξη 04: Παραδείγματα Ανάλυσης
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα
Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ
Προγραμματισμός Η/Υ Ι (Χρήση της C) 6 η Θεωρία ΜΟΝΟΔΙΑΣΤΑΤΟΙ ΠΙΝΑΚΕΣ Σκοπός του μαθήματος Σκοπός του παρόντος μαθήματος είναι να μάθετε να κάνετε εισαγωγή δεδομένων σε πίνακες και περαιτέρω επεξεργασία
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων
Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα
Κεφάλαιο : Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) Δομές Έλεγχου Προγράμματος
Κεφάλαιο 5.1-5.3: Επαναλήψεις (o βρόγχος While) (Διάλεξη 9) 9-1 Δομές Έλεγχου Προγράμματος Μέχρι τώρα είδαμε τις ακόλουθες δομές έλεγχου (program control structure) ενός προγράμματος Α) Sequence π.χ. int
Μεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 7 ομές Επαναλήψεις Ο βρόχος While ομές Έλεγχου
Δομές Ακολουθίας- Επιλογής - Επανάληψης. Δομημένος Προγραμματισμός
Δομές Ακολουθίας- Επιλογής - Επανάληψης Δομημένος Προγραμματισμός 1 Βασικές Έννοιες αλγορίθμων Σταθερές Μεταβλητές Εκφράσεις Πράξεις Εντολές 2 Βασικές Έννοιες Αλγορίθμων Σταθερά: Μια ποσότητα που έχει
Εισαγωγή στον Προγραµµατισµό. Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011
Εισαγωγή στον Προγραµµατισµό Διάλεξη 3 η : Επίλυση Προβληµάτων Χειµερινό Εξάµηνο 2011 Τελεστής σύντοµης ανάθεσης Τελεστής σύντοµης ανάθεσης (shorthand assignment operator) µεταβλητή = µεταβλητή τελεστής
Πληροφορική 2. Αλγόριθμοι
Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται
Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]
Α. Στο παρακάτω διάγραµµα εµφανίζεται η εκτέλεση ενός παράλληλου αλγόριθµου που λύνει το ίδιο πρόβληµα µε έναν ακολουθιακό αλγόριθµο χωρίς πλεονασµό. Τα Α i και B i αντιστοιχούν σε ακολουθιακά υποέργα
Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ
Επανάληψη για τις Τελικές εξετάσεις (Διάλεξη 24) Εισαγωγή Το μάθημα EPL032 έχει ως βασικό στόχο την επίλυση προβλημάτων πληροφορικής με την χρήση της γλώσσας προγραμματισμού C. Επομένως πρέπει: Nα κατανοήσετε
Η γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Οι εντολές επανάληψης (while, do-while, for) Γενικά για τις εντολές επανάληψης Συχνά στο προγραμματισμό είναι επιθυμητή η πολλαπλή εκτέλεση μιας ενότητας εντολών, είτε για ένα
Εισαγωγή στην πληροφορική
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην πληροφορική Βασίλειος Βεσκούκης ρ. Ηλεκτρολόγος Μηχανικός & Μηχανικός Υπολογιστών ΕΜΠ v.vescoukis@cs.ntua.gr Η γλώσσα προγραµµατισµού
Πίνακες. Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος A Εξάμηνο
Πίνακες Ι.Ε.Κ ΓΛΥΦΑΔΑΣ Τεχνικός Τεχνολογίας Internet Αλγοριθμική Ι (Ε) Σχολ. Ετος 2012-13 A Εξάμηνο Πίνακες Η ποιο γνωστή και διαδεδομένη στατική δομή είναι ο πίνακας. Οι πίνακες αποτελούνται από στοιχεία
Γλώσσα Προγραμματισμού C
Προγραμματισμός HY: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas
Οι εντολές ελέγχου της ροής ενός προγράμματος.
Κεφάλαιο ΙΙI: Οι εντολές ελέγχου της ροής ενός προγράμματος 31 Εντολές ελέγχου της ροής Στο παρόν κεφάλαιο ασχολούμαστε με την σύνταξη των εντολών της C οι οποίες εισάγουν λογική και ελέγχουν την ροή εκτέλεσης
Α. unsigned int Β. double. Γ. int. unsigned char x = 1; x = x + x ; x = x * x ; x = x ^ x ; printf("%u\n", x); Β. unsigned char
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Εξετάσεις Β Περιόδου 2015 (8/9/2015) ΟΝΟΜΑΤΕΠΩΝΥΜΟ:................................................................................ Α.Μ.:...............................................
Κεφάλαιο 5ο: Εντολές Επανάληψης
Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες
Η γλώσσα προγραμματισμού C
Η γλώσσα προγραμματισμού C Οι εντολές επανάληψης (while, do-while, for) Γενικά για τις εντολές επανάληψης Συχνά στο προγραμματισμό είναι επιθυμητή η πολλαπλή εκτέλεση μιας ενότητας εντολών, είτε για ένα
ΗΥ-150. Προγραμματισμός
ΗΥ-150 Προγραμματισμός Επανάληψη Προγραμματισμός Σειριακή εκτέλεση εντολών Όλα τα προγράμματα «γράφονται» χρησιμοποιώντας 3 είδη ροής εντολών: Σειριακή Σε διακλάδωση if, if/else, switch Επαναληψηπτικά
Αποδοτική εκτέλεση προγραμμάτων OpenMP σε συστάδες Η/Υ
Πτυχιακή Εργασία Σιταράς Φώτιος Αύγουστος 2009 Αποδοτική εκτέλεση προγραμμάτων OpenMP σε συστάδες Η/Υ Επιβλέπων: Βασίλειος Δημακόπουλος 1 2 Περιεχόμενα Κεφάλαιο 1: Εισαγωγή...6 1.1 Η εξέλιξη των Η/Υ...6
5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while)
5. ΒΡΟΧΟΙ ΕΠΑΝΑΛΗΨΗΣ (Β' μέρος: while - do..while) 5.1 Ο βρόχος while Η εντολή while παρέχει έναν μηχανισμό επανάληψης των δηλώσεων όσο μια συνθήκη είναι αληθινή. Χρησιμοποιείται όταν ο αριθμός των επαναλήψεων
Πίνακες. 1 Πίνακες. 30 Μαρτίου 2014
Πίνακες 0 Μαρτίου 014 1 Πίνακες Είδαμε ότι δηλώνοντας μία μεταβλητή κάποιου συγκεκριμένου τύπου δεσμεύουμε μνήμη κατάλληλη για να αποθηκευτεί μία οντότητα του συγκεκριμένου τύπου. Στην περίπτωση που θέλουμε
Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο
Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Παράλληλος προγραμματισμός: Σχεδίαση και υλοποίηση παράλληλων προγραμμάτων 9 ο Εξάμηνο
ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
Πανεπιστήμιο Δυτικής Μακεδονίας Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Πίνακες Πίνακες (arrays) Πολύ συχνά είναι απαραίτητο το πρόγραμμα μας να χειριστεί
Διαδικασιακός Προγραμματισμός
Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 12 η Αναζήτηση/Ταξινόμηση Πίνακα Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην
Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων
Στόχοι και αντικείμενο ενότητας Πέρασμα Πίνακα σε Συνάρτηση #8.. Ειδικά Θέματα Αλγορίθμων Προβλήματα Αναζήτησης Γραμμική Αναζήτηση (Linear Search) Ενημέρωση Μέτρηση Δυαδική Αναζήτηση (Binary Search) Προβλήματα
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ
Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ Εισαγωγή Σκοπός τόσο αυτού του εργαστηρίου, όσο και των εργαστηρίων που ακολουθούν, είναι να γνωρίσουμε τους τρόπους δημιουργίας και διαχείρισης των διεργασιών (processes)
Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων
Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Κανόνες
i : 0<=i<N-1 => data[i] <= data[i+1] 25/10/2009
Προγραµµατισµός Ι (ΗΥ120) ιάλεξη 10: Ταξινόµηση Πίνακα Αναζήτηση σε Ταξινοµηµένο Πίνακα Πρόβληµα ίνεται πίνακας tαπό Νακεραίους. Ζητούµενο: να ταξινοµηθούν τα περιεχόµενα του πίνακα σε αύξουσα αριθµητική
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ
ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος
Εργαστηριακή Άσκηση 1
Εργαστηριακή Άσκηση 1 Επανάληψη προγραμματισμού Βασικοί Αλγόριθμοι Είσοδος τιμών από το πληκτρολόγιο Σε όλα τα προγράμματα που θα γράψουμε στην συνέχεια του εξαμήνου θα χρειαστεί να εισάγουμε τιμές σε
Περίληψη. Υπερυπολογιστές. Υπολογιστικά προβλήµατα. TOP 500 (Ιούνιος 2007) TOP 500 (Ιούνιος 2009) Ε-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Υπολογιστικά Συστήµατα Υψηλών Επιδόσεων και Εφαρµογές» Περίληψη Υπερυπολογιστές Πολυεπεξεργαστικά συστήµατα
Εντολές ελέγχου ροής if, for, while, do-while
Εντολές ελέγχου ροής if, for, while, do-while 1 Μαρτίου 014 1 Εντολές εκτέλεσης υπό συνθήκη Μπορούμε να εκτελέσουμε εντολές της γλώσσας σε περίπτωση που κάποια συνθήκη ισχύει χρησιμοποιώντας την εντολή
Ενότητα 1 Διάλεξη 3. Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού. Σιέττος Κωνσταντίνος
Σχολή Εφαρμοσμένων Μαθηματικών και Φυσικών Επιστημών Εθνικό Μετσόβιο Πολυτεχνείο Προγραμματισμός με Εφαρμογές στην Επιστήμη του Μηχανικού Ενότητα 1 Διάλεξη 3 Σιέττος Κωνσταντίνος Άδεια Χρήσης Το παρόν
ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ
ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ Τρίτη Διάλεξη Εντολές Επιλογής και Επανάληψης Εντολές επιλογής Εντολή if Η πιο απλή μορφή της if συντάσσεται ως εξής: if ( συνθήκη ) Οι εντολές μέσα στα άγκιστρα αποτελούν
Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων
Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις
Μεθόδων Επίλυσης Προβλημάτων
ΕΠΛ 032.3: 3: Προγραμματισμός Μεθόδων Επίλυσης Προβλημάτων Αχιλλέας Αχιλλέως, Τμήμα Πληροφορικής, Πανεπιστήμιο Κύπρου Email: achilleas@cs.ucy.ac.cy Κεφάλαιο 11 Πίνακες ΙΙ Πίνακες - Επανάληψη Στην προηγούμενη
Προβλήματα, αλγόριθμοι, ψευδοκώδικας
Προβλήματα, αλγόριθμοι, ψευδοκώδικας October 11, 2011 Στο μάθημα Αλγοριθμική και Δομές Δεδομένων θα ασχοληθούμε με ένα μέρος της διαδικασίας επίλυσης υπολογιστικών προβλημάτων. Συγκεκριμένα θα δούμε τι
Θέματα Προγραμματισμού Η/Υ
Πρόγραμμα Μεταπτυχιακών Σπουδών Πληροφορική και Υπολογιστική Βιοϊατρική Θέματα Προγραμματισμού Η/Υ Ενότητα 1: Εισαγωγή Θεματική Ενότητα: Εισαγωγή στον Προγραμματισμό ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ Θεματική
Εκφωνήσεις ασκήσεων εργαστηρίου 1
Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Γκόγκος Χρήστος Εκφωνήσεις ασκήσεων εργαστηρίου
Γλώσσα Προγραμματισμού C
Προγραμματισμός ΗΥ: Γλώσσα Προγραμματισμού C Δρ. Ηλίας Κ. Σάββας, Αναπληρωτής Καθηγητής, Τμήμα Μηχανικών Πληροφορικής Τ.Ε., T.E.I. Θεσσαλίας Email: savvas@teilar.gr URL: http://teilar.academia.edu/iliassavvas
Εντολές Επανάληψης. int sum = 0, i=1; sum += i++ ; sum += i++ ; Η πράξη αυτή θα πρέπει να επαναληφθεί Ν φορές!
Εντολές Επανάληψης Πολλές φορές χρειάζεται να επαναλάβουμε τις ίδιες εντολές Πχ. Έστω ότι θέλουμε να υπολογίσουμε το άθροισμα όρων μιας ακολουθίας διαδοχικών ακεραίων. Δηλαδή αν ο χρήστης δώσει τον αριθμό
Αλγόριθμοι Ταξινόμησης Μέρος 1
Αλγόριθμοι Ταξινόμησης Μέρος 1 Μανόλης Κουμπαράκης 1 Το Πρόβλημα της Ταξινόμησης Το πρόβλημα της ταξινόμησης (sorting) μιας ακολουθίας στοιχείων με κλειδιά ενός γνωστού τύπου (π.χ., τους ακέραιους ή τις
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 10: Ταξινόμηση Πίνακα Αναζήτηση σε Ταξινομημένο Πίνακα Πρόβλημα Δίνεται πίνακας t από Ν ακεραίους. Ζητούμενο: να ταξινομηθούν τα περιεχόμενα του πίνακα σε αύξουσα αριθμητική
Προγραμματισμός Ι (ΗΥ120)
Προγραμματισμός Ι (ΗΥ120) Διάλεξη 7: Δομές Επανάληψης - Αναγνωσιμότητα 19/10/2015 Επανάληψη εκτέλεσης: while 2 while () lexpr true false body Όσο η λογική συνθήκη επανάληψης lexpr αποτιμάται
ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ
ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ ΣΤΗΝ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 05/01/2010 ΘΕΜΑ 1 ο Α) Δίνεται η παρακάτω ακολουθία εντολών αλγορίθμου: ΑΛΓΟΡΙΘΜΟΣ Θέμα1 ΔΙΑΒΑΣΕ Ν Σ 0 π 0 ΓΙΑ ψ ΑΠΟ -1 ΜΕΧΡΙ
Διδάσκων: Παναγιώτης Ανδρέου
Διάλεξη 04: ΠαραδείγματαΑνάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: -Παραδείγματα Ανάλυσης Πολυπλοκότητας : Μέθοδοι, παραδείγματα -Γραμμική
Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ. Ημερομηνία: Πέμπτη 12 Απριλίου 2018 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ
ΑΠΟ ΕΩΣ 02/04/2018 ΕΩΣ 14/04/2018 ΤΑΞΗ: ΜΑΘΗΜΑ: Γ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ Ημερομηνία: Πέμπτη 12 Απριλίου 2018 Διάρκεια Εξέτασης: 3 ώρες ΕΚΦΩΝΗΣΕΙΣ ΘΕΜΑ Α Α1. Να
ΠΡΟΓΡΜΜΑΤΑ ΣΕ C. Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση:
ΠΡΟΓΡΜΜΑΤΑ ΣΕ C Γράψτε σε γλώσσα προγραμματισμού C τη συνάρτηση: int b_to_d(int dyad[16]) που δέχεται ως είσοδο έναν θετικό ακέραιο δυαδικό αριθμό με τη μορφή πίνακα δυαδικών ψηφίων και επιστρέφει τον