Υ07 Παράλληλα Συστήματα /3/2018 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (IΙ)

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

Download "Υ07 Παράλληλα Συστήματα /3/2018 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (IΙ)"

Transcript

1 Υ07 Παράλληλα Συστήματα /3/2018 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (IΙ)

2 Shared address space / shared variables Τι χρειάηεται κανείσ για να προγραμματίςει ςε αυτό το μοντζλο: Οντότθτεσ εκτζλεςθσ (νιματα, διεργαςίεσ) Δθμιουργία, διαχείριςθ Όχι άμεση ζννοια στο OpenMP Κοινζσ μεταβλθτζσ μεταξφ των οντοτιτων Οριςμόσ μεταβλθτϊν (τι είναι κοινό και πωσ ορίηεται) Τισ διαβάηουν και τισ τροποποιοφν όλεσ οι διεργαςίεσ Οι καθολικζς μεταβλητζς (και όχι μόνο) στο OpenMP Αμοιβαίοσ αποκλειςμόσ Π.χ. κλειδαριζσ Κλειδαριζς και στο OpenMP Συγχρονιςμόσ Π.χ. κλιςεισ φραγισ (barrier calls) Κλήσεις φραγής, άμεσες και ζμμεσες 2

3 Γιατί OpenMP; Απλό! «Αυξθτικό» (δθλαδι απλά προςκζτεισ λίγο-λίγο παραλλθλιςμό ςτο υπάρχον ςειριακό πρόγραμμα) Όχι πάντα τόςο απλό, βζβαια! Υποςτθρίηεται ςχεδόν παντοφ πλζον, ιδιαίτερα δθμοφιλζσ Πρόςφατα (v4.0, v4.5) θ εμβζλειά του επεκτείνεται και ςτισ επιπλζον ςυςκευζσ / devices ενόσ ςυςτιματοσ (ςυνεπεξεργαςτζσ, επιταχυντζσ, GPUs, κλπ) 3

4 Υπενκφμιςθ: υπολογιςμόσ του π = 3,14 Αρικμθτικι ολοκλιρωςθ 1 π x2 4 3, ,5 2, ,5 1, ,5 0, , ,2 0,3 0,4 0,5 0,6 0,7 διάστημα i (π λάτος διαστημάτων x W = 0,1) 8 0, ,9 1 #define N N 1 4W 2 1 i 0 1 (i 2)W double pi = 0.0, W = 1.0/N; int main() { int i; for (i = 0; i < N; i++) pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); printf("pi = %.10lf\n", pi); return 0; 4 Y07 -- ΠΑΡΑΛΛΗΛΑ Τ ΣΗΜΑΣΑ

5 Με νιματα, βελτιςτοποιθμζνο #define NPROCS 2 /* dual core */ #define N /* Για ακρίβεια (ίδια με ςειριακό) */ #define WORK N/NPROCS double pi = 0.0, W = 1.0/N; pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; void *thrfunc(void *iter) { int i, me = (int) iter; double mysum = 0.0; for (i = me*work; i < (me+1)*work; i++) mysum += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); pthread_mutex_lock(&lock); pi += mysum; pthread_mutex_unlock(&lock); int main() { int i; pthread_t tids[nprocs]; for (i = 0; i < NPROCS; i++) /* νήματα = # επεξεργατών */ pthread_create(&tids[i], NULL, thrfunc, (void *) i); for (i = 0; i < NPROCS; i++) pthread_join(tids[i], NULL); printf("pi = %.10lf\n", pi); return 0; 5

6 Με OpenMP #include <omp.h> #define N double pi = 0.0, W = 1.0/N; int main () { int i; #pragma omp parallel for reduction(+:sum) for (i=0; i < N; i++) #define N pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); double pi = 0.0, W = 1.0/N; printf("pi = %.10lf\n", pi); return 0; int main() { int i; for (i = 0; i < N; i++) pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); printf("pi = %.10lf\n", pi); return 0; 6

7 Ειςαγωγι ςτο OpenMP OpenMP: API για τθ ςυγγραφι πολυνθματικϊν εφαρμογϊν Σφνολο οδηγιών προσ τον μεταγλωττιςτι και ςυναρτήςεων βιβλιοκικθσ, διακζςιμο ςτον προγραμματιςτι παράλλθλων ςυςτθμάτων Διευκολφνει τθ ςυγγραφι πολυνθματικϊν προγραμμάτων ςε Fortran, C και C++, χωρίσ να τροποποιεί τθ βαςικι γλϊςςα Πρότυπο που ςυγκεντρϊνει τθν εμπειρία αρκετϊν χρόνων ςε προγραμματιςμό πολυεπεξεργαςτικϊν ςυςτθμάτων Εδϊ και > 15 χρόνια υποςτιριξθ από μεγάλεσ εταιρείεσ / οργανιςμοφσ: Intel, SUN/ORACLE, IBM, HP, SGI, GNU GCC >= 4.2 Επίςθσ, ερευνθτικοί compilers: Omni (Ιαπωνία), NANOS/Mercurium (Ιςπανία) OpenUH (ΗΠΑ), OMPi (Ελλάδα - UoI) 7

8 Προγραμματιςτικό Μοντζλο Παραλλθλιςμόσ τφπου Fork-Join: Το νιμα-αρχθγόσ δθμιουργεί ομάδα νθμάτων ςφμφωνα με τισ ανάγκεσ. Σε κάκε περιοχι του κϊδικα που χρειάηεται: 1. Δθμιουργεί νιματα 2. Συμμετζχει ςτουσ υπολογιςμοφσ 3. Περιμζνει τον τερματιςμό όλων των νθμάτων τθσ ομάδασ Ο παραλλθλιςμόσ προςτίκεται βακμιαία Το ακολουκιακό πρόγραμμα εξελίςςεται ςε παράλλθλο πρόγραμμα 8

9 Τυπικι Χριςθ Σθμαντικόσ ςτόχοσ του OpenMP αποτελεί θ εφκολθ παραλλθλοποίθςθ βρόχων επανάλθψθσ: Βρεσ τα πιο χρονοβόρα loops. Μοίραςε τισ επαναλιψεισ μεταξφ νθμάτων. Διαίρεςθ loop μεταξφ πολλαπλϊν νθμάτων int main() { double Res[1000]; for (int i=0;i<1000;i++) { do_huge_comp(res[i]);... int main() { double Res[1000]; #pragma omp parallel for for (int i=0;i<1000;i++) { do_huge_comp(res[i]);... Ακολουκιακό πρόγραμμα Παράλλθλο πρόγραμμα 9

10 Σφνταξθ Οδθγιϊν Οι περιςςότερεσ «εντολζσ» OpenMP είναι directives (οδθγίεσ) προσ τον compiler. Για τθν C και C++, δίνονται ωσ pragmas και ζχουν τθ μορφι: #pragma omp construct [clause [clause] ] Για τθ Fortran, τα directives ζχουν μία από τισ ακόλουκεσ μορφζσ σχολίων: C$OMP construct [clause [clause] ]!$OMP construct [clause [clause] ] *$OMP construct [clause [clause] ] Αφοφ οι οδθγίεσ είναι pragmas ι ςχόλια: ζνα πρόγραμμα OpenMP μπορεί να μεταγλωττιςτεί από compilers που δεν υποςτθρίηουν OpenMP οι τελευταίοι απλά αγνοοφν τα directives Προκφπτει «νόμιμο», ςειριακό πρόγραμμα 10

11 Παράλλθλα Τμιματα Νιματα δθμιουργοφνται ςτο OpenMP (ςτθ C/C++) με τθν οδθγία omp parallel. Για παράδειγμα, για να δθμιουργθκεί ζνα παράλλθλο τμιμα με 4 νιματα: double A[1000]; #pragma omp parallel num_threads(4) { int ID = omp_get_thread_num(); pooh(id,a); Κάκε νιμα εκτελεί για λογαριαςμό του τον κϊδικα μζςα ςτο δομθμζνο block του παράλλθλου τμιματοσ Κάκε νιμα καλεί τθν pooh(id) για ID = 0 ζωσ 3 11

12 Παράλλθλα Τμιματα Κάκε νιμα εκτελεί για λογαριαςμό του τον ίδιο κϊδικα Ζνα μοναδικό αντίγραφο του Α μοιράηεται (κοινόχρθςτο) μεταξφ των νθμάτων Η εκτζλεςθ ςυνεχίηεται μόνο όταν ζχουν τελειϊςει όλα τα νιματα (barrier) double A[1000]; double A[1000]; #pragma omp parallel num_threads(4) { int ID = omp_get_thread_num(); pooh(id,a); printf("all done\n"); (4 threads) pooh(0,a) pooh(1,a) pooh(2,a) pooh(3,a) printf("all done\n"); 12

13 Μερικζσ Πρϊτεσ Λεπτομζρειεσ Dynamic mode (default): Ο αρικμόσ των νθμάτων που χρθςιμοποιοφνται για τθν εκτζλεςθ παράλλθλων τμθμάτων μπορεί να διαφζρει μεταξφ διαφορετικϊν τμθμάτων Ο οριςμόσ του αρικμοφ των νθμάτων (omp_set_num_threads()) αφορά ςτον μζγιςτο αρικμό νθμάτων και ενδεχομζνωσ θ εκτζλεςθ να γίνει με λιγότερα νιματα Non-dynamic mode: Ο αρικμόσ των νθμάτων είναι ακριβώσ αυτόσ που κακορίηεται από τον προγραμματιςτι (δεν επιτρζπεται ςτον μεταφραςτι να «παίξει») Το OpenMP υποςτθρίηει εμφωλευμζνα παράλλθλα τμιματα, όμωσ Ζνασ compiler ενδεχομζνωσ να επιλζξει να εκτελζςει ςειριακά όλα τα επίπεδα μετά το 1ο 13

14 Οδθγίεσ Διαμοίραςθσ Ζργου (workshare directives) Ακολουκιακόσ κϊδικασ for(i=0;i<n;i++) { a[i] = a[i] + b[i]; Παραλλθλοποιθμζνοσ με OpenMP, τμθματικι δρομολόγθςθ: #pragma omp parallel { int id, i, Nthrds, istart, iend; id = omp_get_thread_num(); Nthrds = omp_get_num_threads(); istart = id * N / Nthrds; /* Οι επαναλήψεισ που μου αντιςτοιχούν */ iend = (id+1) * N / Nthrds; for(i=istart;i<iend;i++) { a[i] = a[i] + b[i]; Αντί αυτοφ, το OpenMP ζχει κάτι πιο εφκολο: #pragma omp parallel #pragma omp for schedule(static) for(i=0;i<n;i++) { a[i] = a[i] + b[i]; 14

15 Οδθγίεσ Διαμοίραςθσ Ζργου: for Το omp for κατανζμει τισ επαναλιψεισ ενόσ loop μεταξφ των νθμάτων μιασ ομάδασ. Υποχρεωτικά ακολουκεί βρόχοσ for. #pragma omp parallel {... #pragma omp for for (I=0;I<N;I++) { ΝEAT_STUFF(I);... Εξ οριςμοφ υπονοείται barrier ςτο τζλοσ του omp for Για να αφαιρεκεί το barrier χρθςιμοποιοφμε τθν φράςθ nowait ςτθν οδθγία omp for. 15

16 Οδθγίεσ Διαμοίραςθσ Ζργου: sections Η δομι διαμοίραςθσ ζργου omp sections ανακζτει ζνα διαφορετικό δομθμζνο block ςε κάκε νιμα τθσ ομάδασ #pragma omp parallel {... #pragma omp sections {... #pragma omp section x_calculation(); #pragma omp section y_calculation(); #pragma omp section z_calculation(); Εξ οριςμοφ υπονοείται barrier ςτο τζλοσ του omp sections Για να αφαιρεκεί το barrier χρθςιμοποιοφμε τθν φράςθ nowait 16

17 Οδθγίεσ «Διαμοίραςθσ» Ζργου: single Η οδθγία διαμοίραςθσ ζργου omp single ανακζτει τον κϊδικα που ακολουκεί ςε ζνα και μοναδικό νιμα τθσ ομάδασ #pragma omp parallel {... #pragma omp single {... calc(); Οποιοδιποτε από τα νιμα ςυναντιςει το single, μπορεί να το εκτελζςει ενϊ τα υπόλοιπα όχι. Εξ οριςμοφ υπονοείται barrier ςτο τζλοσ του omp single Για να αφαιρεκεί το barrier χρθςιμοποιοφμε τθ φράςθ nowait 17

18 Συνδυαςμοί οδθγιϊν (combined directives) Για διευκόλυνςθ, χριςθ ενόσ pragma αντί δφο. Συνδυάηεται θ οδθγία omp parallel με δομζσ διαμοίραςθσ ζργου omp for ι omp sections. Παράδειγμα: #pragma omp parallel for for (i=0;i<n;i++) { NEAT_STUFF(i); Δεν υπάρχει parallel single (δεν ζχει και νόθμα) 18

19 Υπολογιςμόσ του π (μζχρι τϊρα) #define N double pi = 0.0, W = 1.0/N; int main() { int i; for (i = 0; i < N; i++) pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); printf("pi = %.10lf\n", pi); return 0; #define N double pi = 0.0, W = 1.0/N; int main () { #pragma omp parallel { int i, mysum = 0.0; #pragma omp for for (i=0; i < N; i++) mysum += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); #pragma omp critical pi += mysum; printf("pi = %.10lf\n", pi); return 0; 19

20 Περιβάλλον δεδομζνων (Ι) Οι global μεταβλθτζσ είναι κοινόχρθςτεσ μεταξφ των νθμάτων Όμωσ δεν είναι τα πάντα κοινά... Οι μεταβλθτζσ ςτθ ςτοίβα του κάκε νιματοσ είναι ιδιωτικζσ Οι μεταβλθτζσ που ορίηονται μζςα ςε ζνα δομθμζνο block εντολϊν είναι ιδιωτικζσ. Το OpenMP επιτρζπει τθν αλλαγι των χαρακτθριςτικών κοινοχρθςίασ (sharing attributes) των μεταβλθτϊν 20

21 Περιβάλλον δεδομζνων (ΙΙ) Τα χαρακτθριςτικά κοινοχρθςίασ των μεταβλθτϊν κακορίηονται είτε ζμμεςα (implicitly) είτε άμεςα (explilcitly) Ζμμεςα κακορίηονται ανάλογα με το πϊσ ορίηονται / χρθςιμοποιοφνται. Για παράδειγμα, ςτισ παράλλθλεσ περιοχζσ: όποια μεταβλθτι είναι οριςμζνθ πριν από μία παράλλθλθ περιοχι και χρθςιμοποιείται μζςα ςε αυτιν, κεωρείται αυτόματα ωσ κοινόχρθςτθ μεταξφ των νθμάτων τθσ ομάδασ, ακόμα και αν δεν είναι global. Ο προγραμματιςτισ μπορεί, όμωσ, να παρζμβει και να κακορίςει άμεςα τθν κοινοχρθςία των μεταβλθτϊν με ειδικζσ φράςεισ (clauses). 21 Y07 -- ΠΑΡΑΛΛΗΛΑ Τ ΣΗΜΑΣΑ

22 Φράςεισ κακοριςμοφ χαρακτθριςτικϊν κοινοχρθςίασ (Ι) Ο προγραμματιςτισ μπορεί να κακορίςει ρθτά τα χαρακτθριςτικά αποκικευςθσ των μεταβλθτϊν χρθςιμοποιϊντασ μία από τισ ακόλουκεσ φράςεισ shared(<μεταβλητέσ>) private(<μεταβλητέσ>) firstprivate(<μεταβλητέσ>) threadprivate(<μεταβλητέσ>) Η τιμι μιασ ιδιωτικισ μεταβλθτισ εντόσ μίασ περιοχισ διαμοίραςθσ ζργου μπορεί να «μεταδοκεί» εκτόσ τθσ περιοχισ με τθν: lastprivate(<μεταβλητέσ>) H default ςυμπεριφορά μπορεί να μεταβλθκεί με τθ: default(private shared none) Όλεσ οι εντολζσ δεδομζνων εφαρμόηονται ςε παράλλθλα τμιματα και δομζσ διαμοίραςθσ ζργου εκτόσ τθσ shared(), θ οποία εφαρμόηεται μόνο ςε παράλλθλα τμιματα. Όλεσ οι παραπάνω εντολζσ ζχουν ιςχφ ςτο lexical extent τθσ εντολισ OpenMP (δθλαδι ανάμεςα από τα άγκιςτρα που κακορίηουν το block). 22

23 Φράςεισ κακοριςμοφ χαρακτθριςτικϊν κοινοχρθςίασ (ΙΙ) shared(x,y) Οι μεταβλθτζσ x, y κα είναι κοινόχρθςτεσ ςτθν παράλλθλθ περιοχι που ακολουκεί. private(x,y) Οι μεταβλθτζσ x, y κα είναι ιδιωτικζσ για κάκε νιμα ςτθν περιοχι που ακολουκεί. firstprivate(x,y) Οι μεταβλθτζσ x, y κα είναι ιδιωτικζσ για κάκε νιμα ςτθν περιοχι που ακολουκεί, αλλά κα αρχικοποιθκοφν με τθν τιμι που ζχει θ αντίςτοιχθ αρχικι (original) μεταβλθτι. lastprivate(x,y) Οι μεταβλθτζσ x, y κα είναι ιδιωτικζσ για κάκε νιμα ςτθν περιοχι που ακολουκεί, θ οποία είναι υποχρεωτικά omp for ι omp sections. Στο τζλοσ τθσ περιοχισ, θ αντίςτοιχθ αρχικι (original) μεταβλθτι κα τροποποιθκεί από το νιμα που κα εκτελζςει τθν τελευταία επανάλθψθ του loop (omp for) ι το τελευταίο section (omp sections). threadprivate(x,y) Δεν είναι φράςθ, αλλά αυτόνομθ οδηγία που τοποκετείται κοντά ςτο ςθμείο που δθλϊνονται οι μεταβλθτζσ. Οι μεταβλθτζσ x, y κα είναι ιδιωτικζσ ςε κάκε νιμα που κα δθμιουργθκεί (ορίηεται μόνο μία φορά, ςτο ςθμείο που γίνεται θ διλωςθ των global μεταβλθτϊν x και y). 23

24 Παράδειγμα φράςεων δεδομζνων Παράδειγμα με χριςθ των private() και firsprivate() int A, B, C; A = B = C = 1; #pragma omp parallel shared(a) private(b) firstprivate(c) { #pragma omp single A++; B++; C++; printf("%d, %d, %d", A,B,C); printf("%d, %d, %d", A,B,C); Τι κα τυπωκεί μζςα ςτο παράλλθλο τμιμα; Το κάκε νιμα κα τφπωνε: 2, <τυχαία τιμή>, 2 Τι κα τυπωκεί μετά το παράλλθλο τμιμα? 2, 1, 1 Αν είχαμε #pragma omp single nowait τι κα τυπωνόταν; 24

25 Φράςθ default Κανονικά, όλεσ οι μεταβλθτζσ πρζπει να προςδιοριςτοφν μζςα από κάποια φράςθ (shared, private, firstprivate κλπ) προκειμζνου να καταλάβει ο μεταφραςτισ πϊσ να τισ χειριςτεί Το OpenMP επιτρζπει να ΜΗΝ προςδιοριςτοφν (ζμμεςοσ κακοριςμόσ χαρακτθριςτικϊν κοινοχρθςίασ). Όλεσ αυτζσ οι μεταβλθτζσ κεωροφνται shared Μπορεί να αλλάξει ο ζμμεςοσ κακοριςμόσ με τθ φράςθ default(). default(shared): όςεσ δεν ορίηονται ρθτά, κεωροφνται shared. default(private): όςεσ δεν ορίηονται ρθτά, κεωροφνται private. default(none): όςεσ δεν ορίηονται ρθτά, προκαλοφν ςυντακτικό λάκοσ κατά τθ μετάφραςθ αναγκάηει τον προγραμματιςτι να ορίςει ρθτά τα πάντα. 25

26 Παράδειγμα Είναι ςωςτόσ ο υπολογιςμόσ του π; Σωςτζσ επιλογζσ: #define N double pi = 0.0, W = 1.0/N; int main () { int i, mysum = 0.0; #pragma omp parallel { #pragma omp for for (i=0; i < N; i++) mysum += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); #pragma omp critical pi += mysum; printf("pi = %.10lf\n", pi); return 0; int main () { int i, mysum = 0.0; #pragma omp parallel private(i)\ firstprivate(mysum) { int main () { #pragma omp parallel shared(w,pi) { int i, mysum = 0.0; 26

27 Οδθγία threadprivate Μετατρζπει τα κοινόχρθςτα global δεδομζνα ςε ιδιωτικά για κάκε νιμα C: File scope και static variables Διαφορετικι ςυμπεριφορά από το private() Με το private() οι global μεταβλθτζσ αποκρφπτονται. Το threadprivate() διατθρεί το global scope ςε κάκε νιμα Οι μεταβλθτζσ threadprivate() μποροφν να αρχικοποιθκοφν χρθςιμοποιϊντασ τθ φράςθ copyin(). 27

28 Φράςθ δεδομζνων reduction Επθρεάηει ςτθν ουςία τον τρόπο «διαμοίραςθσ» των μεταβλθτϊν: reduction(op : list) Οι μεταβλθτζσ ςτο list πρζπει να είναι shared ςτο παράλλθλο τμιμα που βριςκόμαςτε. Εντόσ μια δομισ parallel ι διαμοίραςθσ εργαςίασ: Δθμιουργείται ιδιωτικό αντίγραφο κάκε μεταβλθτισ τθσ λίςτασ και αρχικοποιείται (ανάλογα με τθν πράξθ op π.χ. 0 για + ) Τα ιδιωτικά αντίγραφα ςυνδυάηονται και δίνουν τθν τελικι τιμι ςτθν αντίςτοιχθ (κοινόχρθςτθ) αρχικι μεταβλθτι ςτο τζλοσ τθσ δομισ. 28

29 Υπολογιςμόσ του π #define N double pi = 0.0, W = 1.0/N; #define N double pi = 0.0, W = 1.0/N; int main() { int i; for (i = 0; i < N; i++) pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); printf("pi = %.10lf\n", pi); return 0; int main () { #pragma omp parallel { int i, mysum = 0.0; #pragma omp for for (i=0; i < N; i++) mysum += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); #pragma omp critical pi += mysum; printf("pi = %.10lf\n", pi); return 0; 29

30 Υπολογιςμόσ του π #define N double pi = 0.0, W = 1.0/N; #define N double pi = 0.0, W = 1.0/N; int main() { int i; for (i = 0; i < N; i++) pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); printf("pi = %.10lf\n", pi); return 0; #define N double pi = 0.0, W = 1.0/N; int main () { #pragma omp parallel reduction(+: pi) { int i; #pragma omp for for (i=0; i < N; i++) pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); printf("pi = %.10lf\n", pi); return 0; int main () { #pragma omp parallel { int i, mysum = 0.0; #pragma omp for for (i=0; i < N; i++) mysum += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); #pragma omp critical pi += mysum; printf("pi = %.10lf\n", pi); return 0; 30

31 Υπολογιςμόσ του π #define N double pi = 0.0, W = 1.0/N; #define N double pi = 0.0, W = 1.0/N; int main() { int main () { int i; #pragma omp parallel for (i = 0; i < N; i++) { pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); int i, mysum = 0.0; printf("pi = %.10lf\n", pi); #pragma omp for return 0; for (i=0; i < N; i++) mysum += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); #pragma omp critical #define N pi += mysum; double pi = 0.0, W = 1.0/N; printf("pi = %.10lf\n", pi); int main () { return 0; int i; #pragma omp parallel for private(i) reduction(+:pi) for (i=0; i < N; i++) pi += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); printf("pi = %.10lf\n", pi); return 0; 31

32 Εξιςορρόπθςθ φόρτου Αποτελεί βαςικό παράγοντα απόδοςθσ Για ςυνθκιςμζνεσ λειτουργίεσ, π.χ. πρόςκεςθ διανυςμάτων, θ εξιςορρόπθςθ εργαςίασ δεν αποτελείται ηιτθμα Για λιγότερο ομαλζσ λειτουργίεσ πρζπει να δοκεί ιδιαίτερθ ςθμαςία ςτθν διαμοίραςθ τθσ εργαςίασ μεταξφ των νθμάτων Παράδειγμα μθ ομαλϊν (irregular) λειτουργιϊν: Πολλαπλαςιαςμόσ αραιϊν πινάκων Παράλλθλεσ αναηθτιςεισ ςε μία διαςυνδεδεμζνθ λίςτα Για τζτοιεσ περιπτϊςεισ, θ δομι διαμοίραςθ for χρθςιμοποιείται με τθν οδθγία schedule που κακορίηει διάφορουσ αλγορίκμουσ δρομολόγθςθσ των επαναλιψεων 32

33 Οδθγία schedule Χριςθ schedule ( static dynamic guided [, chunk] ) schedule (runtime) static [,chunk] Διαμοιράηει τισ επαναλιψεισ, που ζχουν χωριςτεί ςε τμιματα μεγζκουσ "chunk«, μεταξφ των νθμάτων με κυκλικό τρόπο Αν δεν ορίηεται το "chunk", αυτό ορίηεται κατά προςζγγιςθ ίςο με N/P και κάκε νιμα εκτελεί ζνα τμιμα επαναλιψεων dynamic [,chunk] Διαχωρίηει τισ επαναλιψεισ ςε τμιματα μεγζκουσ "chunk Κάκε νιμα μόλισ τελειϊςει ζνα τμιμα, παίρνει δυναμικά το επόμενο guided [,chunk] Παρόμοια με dynamic, αλλά το μζγεκοσ του τμιματοσ μειϊνεται εκκετικά ςε κάκε βιμα το μζγεκοσ του τμιματοσ είναι ανάλογο του (# unassigned iterations / # threads), αλλά όχι λιγότερο από chunk. runtime Ο αλγόρικμοσ δρομολόγθςθσ κακορίηεται κατά τον χρόνο εκτζλεςθσ ελζγχοντασ τθ μεταβλθτι περιβάλλοντοσ OMP_SCHEDULE 33

34 Παράδειγμα 34

35 Αμοιβαίοσ αποκλειςμόσ και ςυγχρονιςμόσ To OpenMP ορίηει τισ ακόλουκεσ οδθγίεσ: atomic Για ατομικι (αδιαίρετθ) πράξθ ςε μία μεταβλθτι (π.χ. αφξθςθ) critical Για οριςμό κρίςιμων περιοχϊν barrier Για ςυγχρονιςμό νθμάτων flush Για ςυνζπεια μνιμθσ (το μοντζλο του OpenMP υποκζτει εξαιρετικά χαλαρι ςυνζπεια) master Για εκτζλεςθ κϊδικα από τον αρχθγό μίασ ομάδασ νθμάτων (ςαν το single, μόνο που πάντα το εκτελεί το νιμα 0 και δεν υποννοεί barrier ςτο τζλοσ) 35

36 Συγχρονιςμόσ flush Η εντολι flush δθλϊνει ζνα ςθμείο ςτο οποίο το νιμα επιχειρεί να δθμιουργιςει ςυνεπι εικόνα τθσ μνιμθσ. Όλεσ οι πράξεισ μνιμθσ (αναγνϊςεισ και εγγραφζσ) που ορίηονται πριν από αυτό το ςθμείο πρζπει να ολοκλθρωκοφν. Όλεσ οι πράξεισ μνιμθσ (αναγνϊςεισ και εγγραφζσ) που ορίηονται μετά από αυτό το ςθμείο πρζπει να εκτελεςτοφν μετά το flush Οι μεταβλθτζσ ςε registers ι write buffers πρζπει να εγγραφοφν ςτθ μνιμθ Τα ορίςματα του flush είναι τα ονόματα των μεταβλθτϊν που κα πρζπει να γίνουν flush. Αν δεν υπάρχουν ορίςματα όλεσ οι ορατζσ ςτο νιμα μεταβλθτζσ γίνονται flush. Πρόκειται για memory fence που επιβάλλει ςυνζπεια μνιμθσ 36

37 Υπονοοφμενοσ ςυγχρονιςμόσ Barrier υπονοείται αμζςωσ μετά το τζλοσ των παρακάτω οδθγιϊν: parallel for (εκτόσ αν είχε δοκεί θ φράςθ nowait) sections (εκτόσ αν είχε δοκεί θ φράςθ nowait) single (εκτόσ αν είχε δοκεί θ φράςθ nowait) Flush υπονοείται αμζςωσ μετά το τζλοσ των παρακάτω οδθγιϊν: parallel for sections single critical barrier ordered 37

38 Συναρτιςεισ βιβλιοκικθσ Συναρτιςεισ locks omp_init_lock(), omp_set_lock(), omp_unset_lock(), omp_test_lock() Συναρτιςεισ περιβάλλοντοσ χρόνου εκτζλεςθσ: Αλλαγι/Ζλεγχοσ του αρικμοφ των νθμάτων omp_set_num_threads(), omp_get_num_threads(), omp_get_thread_num(), omp_get_max_threads() Ενεργοποίθςθ/απενεργοποίθςθ εμφωλευμζνου παραλλθλιςμοφ και dynamic mode omp_set_nested(), omp_set_dynamic(), omp_get_nested(), omp_get_dynamic() Ζλεγχοσ εκτζλεςθσ ςε παράλλθλο τμιμα omp_in_parallel() Αρικμόσ επεξεργαςτϊν ςτο ςφςτθμα omp_num_procs() 38

39 Συναρτιςεισ βιβλιοκικθσ Για να ελεγχκεί ο αρικμόσ των νθμάτων που εκτελοφν ζνα πρόγραμμα αρχικά απενεργοποιείται το dynamic mode και κατόπιν κακορίηεται ο αρικμόσ των νθμάτων. #include <omp.h> void main() { omp_set_dynamic(0); omp_set_num_threads(4); /* or num_threads() clause in parallel */ #pragma omp parallel { int id=omp_get_thread_num(); do_lots_of_stuff(id); 39

40 Χριςθ Κϊδικασ OpenMP #include <omp.h> #include <stdio.h> void main() { #pragma omp parallel { printf( Hello world from thread %d of %d\n, omp_get_thread_num(), omp_get_num_threads(); Παραγωγι εκτελζςιμου αρχείου για OMPi, GNU GCC 4.2, Intel Compiler) $ ompicc o hello hello.c $ gcc fopenmp o hello hello.c $ icc openmp o hello hello.c 40

41 Χριςθ Εκτζλεςθ $ export OMP_NUM_THREADS=4 $./hello Hello world from thread 0 of 4 Hello world from thread 2 of 4 Hello world from thread 1 of 4 Hello world from thread 3 of 4 $ export OMP_NUM_THREADS=1 $./hello Hello world from thread 0 of 1 41

42 Παράδειγμα (τι κα τυπϊςει;) #include <stdio.h> #include <omp.h> int main() { int x = 2; #pragma omp parallel num_threads(2) shared(x) { if (omp_get_thread_num() == 0) { x = 5; else { printf("1: Thread# %d: x = %d\n", omp_get_thread_num(),x ); #pragma omp barrier if (omp_get_thread_num() == 0) { printf("2: Thread# %d: x = %d\n", omp_get_thread_num(),x ); else { printf("3: Thread# %d: x = %d\n", omp_get_thread_num(),x ); return 0; 42

43 Παϋράδειγμα: πίνακασ επί πίνακα (4 CPUs) for (i = 0; i < Ν; i++) { for (j = 0; j < Ν; j++) for (k = sum = 0; k < N; k++) sum += Α[i][k]*B[k][j]; C[i][j] = sum; ΧΡΟΝΟΣ: 130msec #pragma omp parallel for for (i = 0; i < Ν; i++) { for (j = 0; j < Ν; j++) for (k = sum = 0; k < N; k++) sum += Α[i][k]*B[k][j]; C[i][j] = sum; ΧΡΟΝΟΣ: 700msec (λάκοσ ςτθν κοινοχρθςία μεταβλθτών) #pragma omp parallel for private(j,k,sum) for (i = 0; i < Ν; i++) { for (j = 0; j < Ν; j++) for (k = sum = 0; k < N; k++) sum += Α[i][k]*B[k][j]; C[i][j] = sum; ΧΡΟΝΟΣ: 40msec 43

44 OpenMP tasks

45 OpenMP 3.0 Στο OpenMP 3.0 ξεκακάριςαν κάποιεσ λεπτομζρειεσ, προςτζκθκαν κάποιεσ νζεσ ςυναρτιςεισ που μποροφν να κλθκοφν από τα προγράμματα (π.χ. εφρεςθ του nesting level). Το βαςικότερο όμωσ ιταν θ προςκικθ των tasks. 45

46 OpenMP Tasks Γενικι ιδζα: «οριςμόσ» μιασ δουλείασ που πρζπει να γίνει από κάποιο thread, κάποια ςτιγμι (και όχι οπωςδιποτε άμεςα από το νιμα που τθν όριςε) Βολεφει πολφ ςτθν παραλλθλοποίθςθ πολλϊν εφαρμογϊν Επίςθσ με αυτό τον τρόπο μπορεί ςε αρκετζσ περιπτϊςεισ να αποφευχκεί θ χριςθ εμφωλευμζνων παράλλθλων περιοχϊν που δεν τισ χειρίηονται καλά οι περιςςότεροι compilers 46

47 Απλι εφαρμογι: παραλλθλοποίθςθ λειτουργιϊν ςε ςυνδεδεμζνθ λίςτα Πϊσ παραλλθλοποιείται ςτο OpenMP 2.5? Πρϊτα ζνα πζραςμα για να βρεκεί το πλικοσ των επαναλιψεων Στθν ςυνζχεια #pragma omp parallel for Θα πρζπει να φυλάμε επίςθσ ζναν πίνακα με όλουσ τουσ pointers 47

48 Με tasks 48

49 OpenMP tasks Ζνα task ζχει: Κϊδικα που πρζπει να εκτελεςτεί: #pragma omp task { κϊδικασ Μεταβλθτζσ πάνω ςτισ οποίεσ κα δουλζψει Αφοφ κα εκτελεςτεί πικανϊσ αργότερα, κα πρζπει να «κουβαλάει» μαηί του και τισ τιμζσ των μεταβλθτϊν που υπιρχαν κατά τον οριςμό του Ζνα κακοριςμζνο νιμα Που κα το εκτελζςει τον κϊδικα Όχι όμωσ πάντα προ-κακοριςμζνο. 49

50 OpenMP tasks Δφο φάςεισ: (α) οριςμόσ/πακετάριςμα και (β) εκτζλεςθ To νιμα που ςυναντά το #pragma omp task πρζπει να δθμιουργιςει μία δομι που περιζχει τον κϊδικα αλλά και τα δεδομζνα με τισ τρζχουςεσ τιμζσ τουσ Κάποια ςτιγμι, κάποιο νιμα κα πάρει το «πακζτο» και κα το εκτελζςει (ο κόποσ για το πακετάριςμα δεν χρειάηεται αν το νιμα που ςυναντά το #pragma omp task εκτελζςει απευκείασ το task) 50

51 Γενικι ςφνταξθ 51

52 Φράςεισ Φράςθ if(ςυνθήκη) Αν θ ςυνκικθ είναι false τότε το νιμα εκτελεί άμεςα το task Π.χ. αν το κόςτοσ τθσ δθμιουργίασ ενόσ task είναι μεγάλο ςε ςχζςθ με τουσ υπολογιςμοφσ που περιλαμβάνει Ή π.χ. για να cache/memory affinity Φράςθ untied Κανονικά, ζνα task είναι «δεμζνο» ( tied ) με το νιμα που κα ξεκινιςει να το εκτελεί δθλαδι κα εκτελεςτεί από το νιμα αυτό μζχρι τζλουσ Σε ζνα ελεφκερο task ( untied ), θ εκτζλεςι του μπορεί να διακόπτεται και να ςυνεχίηει τθν εκτζλεςι του άλλο νιμα, κλπ. Λεπτομζρειεσ: Το πρόγραμμα είναι όλο ζνα task. Όταν ζνα νιμα ςυναντά μία παράλλθλθ περιοχι, φτιάχνει Ν tasks (implicit): Είναι tied, ζνα task ςε κάκε ζνα από τα N νιματα που κα δθμιουργθκοφν Ζνα task που εκτελείται μπορεί να δθμιουργιςει άλλα tasks 52

53 Συγχρονιςμόσ των tasks Στο τζλοσ ενόσ barrier, όλα τα tasks που ζχει δθμιουργιςει μία ομάδα νθμάτων κα ζχουν ολοκλθρωκεί. Το task που ςυναντάει task barrier (#pragma omp taskwait) μπλοκάρει μζχρι να ολοκλθρωκοφν όλα τα tasks που δθμιοφργθςε 53

54 Γενικι ςφνταξθ περιβάλλον δεδομζνων Αν δεν υπάρχει το default(), τότε οι global μεταβλθτζσ είναι κλαςικά shared. Οι υπόλοιπεσ κεωροφνται shared μόνο αν είναι shared ςε όλεσ τισ περιβάλλουςεσ περιοχζσ του κϊδικα μζχρι τθν πιο πρόςφατθ παράλλθλθ περιοχι. Αλλιϊσ είναι firstprivate. 54

55 fibonacci 55

56 fibonacci 56

57 fibonacci 57

58 fibonacci 58

59 Διάςχιςθ λίςτασ 59

60 Διάςχιςθ λίςτασ 60

61 Διάςχιςθ λίςτασ 61

62 Μερικά ακόμα για το OpenMP

63 Ελεφκεροι OpenMP compilers GCC Υποςτιριξθ tasks από τθν ζκδοςθ 4.3.x (όμωσ άςχθμθ υλοποίθςθ) Καλι υλοποίθςθ από ζκδοςθ 4.4.x ICC Intel compiler & tools Εξαιρετικά εργαλεία, ταχφτατα ςειριακά προγράμματα για x86 Ζχει εξαγοράςει τθν Cilk Arts SUNCC SUN C compiler (πλζον ORACLE) Γενικά καλζσ και ςτακερζσ επιδόςεισ, όχι όμωσ ο καλφτερεσ OMPi O «δικόσ» μασ, μζςα από πτυχιακζσ, μεταπτυχιακζσ και διδακτορικζσ εργαςίεσ Ανοιχτοφ κϊδικα, πολφ καλζσ επιδόςεισ, επεκτάςεισ κ.α. Άλλοι ερευνθτικοί, ελεφκερου κϊδικα: OpenUH Mercurium (Nanaos) 63

64 Εκδόςεισ του OpenMP V1.0 for Fortran V1.0 for C/C++ V1.1 for Fortran V2.0 for Fortran V2.0 for C/C++ V2.5 unified Fortran C/C++ V3.0 Tasks V3.1 Tasking enhancements V4.0 Devices Cancellations Dependencies SIMD Reductions V4.5 64

Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο)

Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κοινόχρηστος χώρος διευθύνσεων Μέρος IΙ: OpenMP Κεφάλαιο 4 (νέο βιβλίο) Shared address space / shared variables Τι χρειάζεται κανείς για να προγραμματίσει σε αυτό το μοντέλο: Οντότητες

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

Προγραμματισμός με το OpenMP Β. Δημακόπουλος

Προγραμματισμός με το OpenMP Β. Δημακόπουλος ΠΛE006 Παράλληλη Επεξεργασία Προγραμματισμός με το OpenMP Β. Δημακόπουλος Shared address space / shared variables Τι χρειάζεται κανείς για να προγραμματίσει σε αυτό το μοντέλο: Οντότητες εκτέλεσης (νήματα,

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

2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος

2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος Υ07 Παράλληλα Συστήματα 2011-12 2/4/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (ΙΙ) OpenMP Β. Δημακόπουλος Shared address space / shared variables Τι χρειάζεται κανείς για να προγραμματίσει σε

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

Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009

Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Μάθημα 3 ο 3/11/2009 Μάθημα 4 ο 10/11/2009 Προγραμματισμός με το OpenMP Β. Δημακόπουλος Δφο ακόμα κζματα με τα νιματα Πϊσ μπορϊ να εξαςφαλίςω ότι κάτι

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

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Διαμοίραση έργου και συγχρονισμός στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Παράλληλες Περιοχές Καθορίζονται

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

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

OpenMP. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων OpenMP 9 ο Εξάμηνο Προγραμματισμός σε μοιραζόμενη μνήμη void thread1(int *shared_var) int

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

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

OpenMP. Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων OpenMP 9 ο Εξάμηνο Προγραμματισμός σε μοιραζόμενη μνήμη void thread1(int *shared_var) int

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

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

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

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

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

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

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

Ορολογία. Παράδειγµα 3. Εξισορρόπηση Εργασίας. Ε-85: Ειδικά Θέµατα Λογισµικού. E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων 6

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

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

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

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών. OpenMP. Συστήματα Παράλληλης Επεξεργασίας 9 ο Εξάμηνο Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων OpenMP 9 ο Εξάμηνο Προγραμματισμός σε μοιραζόμενη μνήμη void thread1(int *shared_var) void

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

Συστήµατα Παράλληλης Επεξεργασίας. OpenMP

Συστήµατα Παράλληλης Επεξεργασίας. OpenMP OpenMP Προγραµµατισµός σε µοιραζόµενη µνήµη void thread1(int *shared_var) int i; for (i=0; i

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

OpenMP. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων. Αθήνα, Νοέµβριος /11/2004 Εισαγωγή στο OpenMP 1

OpenMP. Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων. Αθήνα, Νοέµβριος /11/2004 Εισαγωγή στο OpenMP 1 OpenMP Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2004 29/11/2004 Εισαγωγή στο OpenMP 1 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική κατανεµηµένης µνήµης (distributed

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

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

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

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

Η γλώςςα προγραμματιςμού C

Η γλώςςα προγραμματιςμού C Η γλώςςα προγραμματιςμού C Οι εντολζσ επανάλθψθσ (while, do-while, for) Γενικά για τισ εντολζσ επανάλθψθσ Συχνά ςτο προγραμματιςμό είναι επικυμθτι θ πολλαπλι εκτζλεςθ μιασ ενότθτασ εντολϊν, είτε για ζνα

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

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

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

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

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

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

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

Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp

Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Σχολή Τεχνολογικών Εφαρμογών Ακαδημαϊκό έτος 2016-2017 ΤΕΙ Ηπείρου - Άρτα Κατανεμημένα και Παράλληλα Συστήματα (εργαστήριο) Παραδείγματα με openmp Γκόγκος Χρήστος Παράδειγμα

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

Εισαγωγή στον Προγραµµατισµό Πολυεπεξεργαστικών Συστηµάτων Κοινής Μνήµης µε...

Εισαγωγή στον Προγραµµατισµό Πολυεπεξεργαστικών Συστηµάτων Κοινής Μνήµης µε... Εισαγωγή στον Προγραµµατισµό Πολυεπεξεργαστικών Συστηµάτων Κοινής Μνήµης µε... Λογισµικό & Προγραµµατισµός Συστηµάτων Υψηλής Επίδοσης Εργαστήριο Πληροφοριακών Συστηµάτων Υψηλών Επιδόσεων Τοµέας Λογικού

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

Προγραµµατισµός Νηµάτων. Αρχικοποίηση µιας Φοράς pthread_once_t once_block = PTHREAD_ONCE_INIT; pthread_mutex_t mutex;

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

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

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

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

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

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

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

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

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9 Δομθμζνοσ Προγραμματιςμόσ Βαγγζλθσ Οικονόμου Εργαςτιριο 9 Συναρτιςεισ Αφαιρετικότθτα ςτισ διεργαςίεσ Συνάρτθςεισ Διλωςθ, Κλιςθ και Οριςμόσ Εμβζλεια Μεταβλθτών Μεταβίβαςθ παραμζτρων ςε ςυναρτιςεισ Συναρτιςεισ

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

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Διαχείριςθ Μνιμθσ Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Κάκε μεταβλθτι ςχετίηεται με μία κζςθ ςτθν κφρια μνιμθ του υπολογιςτι. Κάκε κζςθ ςτθ μνιμθ ζχει τθ δικι τθσ ξεχωριςτι διεφκυνςθ. Με άμεςθ

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

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ 5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ Να γραφεί πρόγραμμα, το οποίο κα δίνει τισ τιμζσ 5 και 6 ςε δφο μεταβλθτζσ a και b και κα υπολογίηει και κα εμφανίηει το άκροιςμά τουσ sum. ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ a 5 b 6 sum a+b sum ΑΛΓΟΡΙΘΜΟ

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

17. Πολυδιάςτατοι πίνακεσ

17. Πολυδιάςτατοι πίνακεσ Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 17. Πολυδιάςτατοι πίνακεσ Ιωάννθσ Κατάκθσ Πολυδιάςτατοι πίνακεσ o Μζχρι τϊρα μιλοφςαμε για μονοδιάςτατουσ πίνακεσ ι int age[5]= 31,28,31,30,31; o Για παράλλθλουσ

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

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

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

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

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal

ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ. Κεφάλαιο 8 Η γλϊςςα Pascal ΠΡΟΓΡΑΜΜΑΣΙΜΌ ΤΠΟΛΟΓΙΣΏΝ Κεφάλαιο 8 Η γλϊςςα Pascal Παράγραφοσ 8.2 Βαςικοί τφποι δεδομζνων Σα δεδομζνα ενόσ προγράμματοσ μπορεί να: είναι αποκθκευμζνα εςωτερικά ςτθν μνιμθ είναι αποκθκευμζνα εξωτερικά

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

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι Λογιςμικό (Software), Πρόγραμμα (Programme ι Program), Προγραμματιςτισ (Programmer), Λειτουργικό Σφςτθμα (Operating

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

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό Βαγγζλθσ Οικονόμου Περιεχόμενα Πλθροφορίεσ Μακιματοσ Δομθμζνοσ Προγραμματιςμόσ (Οριςμοί, Γενικζσ Ζννοιεσ) Αλγόρικμοι και Ψευδοκϊδικασ Γλϊςςα προγραμματιςμοφ C Πλθροφορίεσ

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

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

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

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

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα

Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα Περιεχόμενα Ζννοια δομισ Οριςμόσ δομισ Διλωςθ μεταβλθτϊν Απόδοςθ Αρχικϊν τιμϊν Αναφορά ςτα μζλθ μιασ δομισ Ζνκεςθ Δομισ Πίνακεσ Δομϊν Η ζννοια τθσ δομισ Χρθςιμοποιιςαμε

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

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO Το Micro Worlds Pro είναι ζνα ολοκλθρωμζνο περιβάλλον προγραμματιςμοφ. Χρθςιμοποιεί τθ γλϊςςα προγραμματιςμοφ Logo (εξελλθνιςμζνθ) Το Micro Worlds Pro περιλαμβάνει

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

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while ) 3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while ) Στα πιο πολλά προγράμματα απαιτείται κάποια ι κάποιεσ εντολζσ να εκτελοφνται πολλζσ φορζσ για όςο ιςχφει κάποια ςυνκικθ. Ο αρικμόσ των επαναλιψεων μπορεί να είναι

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

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP (2 ο Μέρος)

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP (2 ο Μέρος) ΕΡΓΑΛΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΑΡΑΛΛΗΛΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΜΕ OpenMP (2 ο Μέρος) Νίκος Τρυφωνίδης Εφαρμογή 7: Ανισορροπία Το πρόγραμμα imbalance.c περιέχει ένα loop το οποίο έχει μεγαλύτερη εργασία

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν Τπόβακρο (1/3) τουσ παλαιότερουσ υπολογιςτζσ θ Κεντρικι Μονάδα Επεξεργαςίασ (Κ.Μ.Ε.) μποροφςε κάκε ςτιγμι να εκτελεί μόνο ζνα πρόγραμμα τουσ ςφγχρονουσ

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

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ Ειρινθ Φιλιοποφλου Ειςαγωγι Ο Παγκόςμιοσ Ιςτόσ (World Wide Web - WWW) ι πιο απλά Ιςτόσ (Web) είναι μία αρχιτεκτονικι για τθν προςπζλαςθ διαςυνδεδεμζνων εγγράφων

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

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν Τι είναι θ Γραμμι Εντολϊν (1/6) Στουσ πρϊτουσ υπολογιςτζσ, και κυρίωσ από τθ δεκαετία του 60 και μετά, θ αλλθλεπίδραςθ του χριςτθ με τουσ

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

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν: Μζθοδος Simplex Η πλζον γνωςτι και περιςςότερο χρθςιμοποιουμζνθ μζκοδοσ για τθν επίλυςθ ενόσ γενικοφ προβλιματοσ γραμμικοφ προγραμματιςμοφ, είναι θ μζκοδοσ Simplex θ οποία αναπτφχκθκε από τον George Dantzig.

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ελιδοποίθςθ (1/10) Σόςο θ κατάτμθςθ διαμεριςμάτων ςτακεροφ μεγζκουσ όςο και θ κατάτμθςθ διαμεριςμάτων μεταβλθτοφ και άνιςου μεγζκουσ δεν κάνουν

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 19. Αλφαριθμητικά II Ιωάννθσ Κατάκθσ Αλφαρικμθτικά ςτθ C Ζνα string είναι μία ακολουκία αλφαρικμθτικϊν χαρακτήρων, ςθμείων ςτίξθσ κτλ. Π.χ. Hello How are you?

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

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python

Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν Ειςαγωγι ςτθν Python Γ Μζροσ Modules, Αντικειμενοςτραφισ Προγραμματιςμόσ ςτθν Python, Classes, Objects, Αλλθλεπίδραςθ με αρχεία Ειςαγωγι αρκρωμάτων (modules): import

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

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε: ΔΟΜΗ ΑΠΟΦΑΗ Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε: Όταν το if που χρθςιμοποιοφμε παρζχει μόνο μία εναλλακτικι διαδρομι εκτζλεςθ, ο τφποσ δομισ

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

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι Παράςταςη κινητήσ υποδιαςτολήσ ςφμφωνα με το πρότυπο ΙΕΕΕ Δρ. Χρήστος Ηλιούδης το πρότυπο ΙΕΕΕ 754 ζχει χρθςιμοποιθκεί ευρζωσ ςε πραγματικοφσ υπολογιςτζσ. Το πρότυπο αυτό κακορίηει δφο βαςικζσ μορφζσ κινθτισ

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

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7) Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων (v.1.0.7) 1 Περίληψη Το ςυγκεκριμζνο εγχειρίδιο δθμιουργικθκε για να βοθκιςει τθν κατανόθςθ τθσ διαδικαςίασ διαχείριςθσ ςτθλών βιβλίου Εςόδων - Εξόδων.

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

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων» Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων» Το Πλθροφοριακό Σφςτθμα τθσ δράςθσ «e-κπαιδευτείτε» ζχει ςτόχο να αυτοματοποιιςει τισ ακόλουκεσ

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

16. Πίνακεσ και Συναρτήςεισ

16. Πίνακεσ και Συναρτήςεισ Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 16. Πίνακεσ και Συναρτήςεισ Ιωάννθσ Κατάκθσ Σιμερα o Κλιςθ με τιμι o Κλιςθ με αναφορά o Πίνακεσ και ςυναρτιςεισ o Παραδείγματα Ειςαγωγι o Στισ προθγοφμενεσ

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

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ. Ερωτήςεισ Προβλήματα Α. Σημειώςτε δεξιά από κάθε πρόταςη το γράμμα Σ αν η πρόταςη είναι ςωςτή και το γράμμα Λ αν είναι λάθοσ. 1. Θ περατότθτα ενόσ αλγορίκμου αναφζρεται ςτο γεγονόσ ότι καταλιγει ςτθ λφςθ

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ Υπεφκυνοι αςκιςεων: Αν. Κακθγθτισ Δ. Σοφντρθσ Μεταδιδάκτορασ Λάηαροσ Παπαδόπουλοσ Αςκήςεισ ςτη Βελτιςτοποίηςη Δυναμικϊν Δομϊν Δεδομζνων (Dynamic Data Type Refinement

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

Κατανεμημένος και Παράλληλος Προγραμματισμός

Κατανεμημένος και Παράλληλος Προγραμματισμός Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Παράλληλος προγραμματισμός OpenMP (2) Παραλληλοποίηση των βρόγχων

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

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format. Virtualization Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format. Το virtualization πρόκειται για μια τεχνολογία, θ οποία επιτρζπει το διαχωριςμό

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

Αρχέσ και λειτουργίεσ του OpenACC

Αρχέσ και λειτουργίεσ του OpenACC Πανεπιςτιμιο Δυτικισ Μακεδονίασ Σμιμα Μθχανικϊν Πλθροφορικισ & Σθλεπικοινωνιϊν Αρχέσ και λειτουργίεσ του OpenACC Παναγιωτίδου Παναγιϊτα ΑΜ:729 1 Επιβλζπων Κακθγθτισ: Δρ. Μθνάσ Δαςυγζνθσ Άδειεσ Χρήςησ Σο

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

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες) Ιούνιοσ 2013 Περιεχόμενα: Ειςαγωγή... 3 1. Περιφζρεια... 3 1.1 Διαχειριςτήσ Αιτήςεων Περιφζρειασ... 3 1.1.1. Είςοδοσ... 3 1.1.2. Αρχική

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

Διαχείριςη Αριθμοδεικτών (v.1.0.7)

Διαχείριςη Αριθμοδεικτών (v.1.0.7) Διαχείριςη Αριθμοδεικτών (v.1.0.7) Περιεχόμενα 1. Μενοφ... 5 1.1 Αρικμοδείκτεσ.... 5 1.1.1 Δθμιουργία Αρικμοδείκτθ... 6 1.1.2 Αντιγραφι Αρικμοδείκτθ... 11 2. Παράμετροι... 12 2.1.1 Κατθγορίεσ Αρικμοδεικτϊν...

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

Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων. 18. Αλφαριθμητικά. Ιωάννθσ Κατάκθσ. ΕΡΛ 032: Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων

Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων. 18. Αλφαριθμητικά. Ιωάννθσ Κατάκθσ. ΕΡΛ 032: Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων 18. Αλφαριθμητικά Ιωάννθσ Κατάκθσ Αλφαρικμθτικά o Ζνα string είναι μία ακολουκία χαρακτιρων, ςθμείων ςτίξθσ κτλ Hello How are you? 121212 *Apple#123*% Σιμερα

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

Δομζσ Δεδομζνων Πίνακεσ

Δομζσ Δεδομζνων Πίνακεσ Δομζσ Δεδομζνων Πίνακεσ Διάλεξθ 2 Περιεχόμενα Πίνακεσ: Οριςμοί, Γενικζσ ζννοιεσ Αποκικευςθ πινάκων Ειδικζσ μορφζσ πινάκων Αλγόρικμοι Αναηιτθςθσ Σειριακι Αναηιτθςθ Δυαδικι Αναηιτθςθ Οριςμοί, Γενικζσ ζννοιεσ

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

Υλοποίηση cancellation στον παραλληλοποιητικό μεταφραστή OMPi. Εμμανουήλ Φελουτζή. με Α.Μ: 1579 ΔΙΠΛΩΜΑΤΟΣ

Υλοποίηση cancellation στον παραλληλοποιητικό μεταφραστή OMPi. Εμμανουήλ Φελουτζή. με Α.Μ: 1579 ΔΙΠΛΩΜΑΤΟΣ Υλοποίηση cancellation στον παραλληλοποιητικό μεταφραστή OMPi από τον Εμμανουήλ Φελουτζή με Α.Μ: 1579 ως μέρος των Υποχρεώσεων για τη λήψη του ΔΙΠΛΩΜΑΤΟΣ ΤΟΥ ΤΜΗΜΑΤΟΣ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΡΤΙΟΣ

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 20. Αρχεία. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 20. Αρχεία. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 20. Αρχεία Ιωάννθσ Κατάκθσ Aποκικευςθ Για να αποκθκεφςουμε δεδομζνα από ζνα πρόγραμμα, πρζπει να χρθςιμοποιιςουμε τθ δευτερεφουςα μνιμθ Aποκικευςθ Η πιο ςυνθκιςμζνθ

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

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό. Κωδικοποιητές Ο κωδικοποιθτισ (nor) είναι ζνα κφκλωμα το οποίο διακζτει n γραμμζσ εξόδου και το πολφ μζχρι m = 2 n γραμμζσ ειςόδου και (m 2 n ). Οι ζξοδοι παράγουν τθν κατάλλθλθ λζξθ ενόσ δυαδικοφ κϊδικα

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

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν Κϊςτασ Αρβανιτάκθσ Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

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

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Δίκτυα Επικοινωνιών ΙΙ Διδάςκων: Απόςτολοσ Γκάμασ (Διδάςκων ΠΔ 407/80) Βοθκόσ Εργαςτθρίου: Δθμιτριοσ Μακρισ Ενδεικτική Λύση 3

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

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Δρ. Χρήζηος Ηλιούδης Μθ Προςθμαςμζνοι Ακζραιοι Εφαρμογζσ (ςε οποιαδιποτε περίπτωςθ δεν χρειάηονται αρνθτικοί αρικμοί) Καταμζτρθςθ. Διευκυνςιοδότθςθ.

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

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ Φιλιοποφλου Ειρινθ Προςθήκη νζων πεδίων Ασ υποκζςουμε ότι μετά τθ δθμιουργία του πίνακα αντιλαμβανόμαςτε ότι ζχουμε ξεχάςει κάποια πεδία. Είναι ζνα πρόβλθμα το οποίο

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

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ Αυτζσ οι οδθγίεσ ζχουν ςτόχο να βοθκιςουν τουσ εκπαιδευτικοφσ να καταςκευάςουν τισ δικζσ τουσ δραςτθριότθτεσ με το μοντζλο τθσ Αρικμογραμμισ.

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 8 θ Διάλεξθ Ιδεατι Μνιμθ Μζροσ Α Βαςικι Ορολογία Ιδεατή Μνήμη: χιμα ανάκεςθσ αποκθκευτικοφ χϊρου, ςτο οποίο θ δευτερεφουςα μνιμθ μπορεί να διευκυνςιοδοτθκεί ςαν να ιταν μζροσ τθσ κφριασ

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν Παράλλθλεσ Διεργαςίεσ (1/5) Δφο διεργαςίεσ λζγονται «παράλλθλεσ» (concurrent) όταν υπάρχει ταυτοχρονιςμόσ, δθλαδι οι εκτελζςεισ τουσ επικαλφπτονται

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

Παρουςίαςθ 2 θσ Άςκθςθσ:

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

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

Αποδοτική εκτέλεση προγραμμάτων OpenMP σε συστάδες Η/Υ

Αποδοτική εκτέλεση προγραμμάτων OpenMP σε συστάδες Η/Υ Πτυχιακή Εργασία Σιταράς Φώτιος Αύγουστος 2009 Αποδοτική εκτέλεση προγραμμάτων OpenMP σε συστάδες Η/Υ Επιβλέπων: Βασίλειος Δημακόπουλος 1 2 Περιεχόμενα Κεφάλαιο 1: Εισαγωγή...6 1.1 Η εξέλιξη των Η/Υ...6

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

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

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

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

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Αρχείο (File) Φάκελοσ (Folder) Διαχειριςτισ Αρχείων (File Manager) Τφποι Αρχείων Σε τι εξυπθρετεί θ οργάνωςθ των εργαςιϊν μασ ςτουσ υπολογιςτζσ; Πϊσ κα οργανϊςουμε

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 15. Πίνακεσ ΙI Ιωάννθσ Κατάκθσ Σιμερα o Ειςαγωγι o Διλωςθ o Αρχικοποίθςθ o Πρόςβαςθ o Παραδείγματα Πίνακεσ - Επανάλθψθ o Στθν προθγοφμενθ διάλεξθ κάναμε μια

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

ΥΛΟΠΟΙΗΣΗ ΣΥΝΤΑΚΤΙΚΟΥ ΑΝΑΛΥΤΗ ΓΙΑ ΤΟΝ ΠΑΡΑΛΛΗΛΟΠΟΙΗΤΙΚΟ ΜΕΤΑΦΡΑΣΤΗ OMPI Η ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΞΕΙ ΙΚΕΥΣΗΣ. Υποβάλλεται στην

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

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

ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΑΕΠΠ

ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΑΕΠΠ ΥΡΟΝΣΙΣΗΡΙΟ Μ. Ε. ΚΑΙ ΚΕΝΣΡΟ ΙΔΙΑΙΣΕΡΩΝ ΜΑΘΗΜΑΣΩΝ «ΚΤΡΙΣΗ» ΔΙΑΓΩΝΙΜΑ ΘΕΜΑΣΑ Β ΛΤΚΕΙΟΤ ΥΕΒΡΟΤΑΡΙΟ 2018 ΘΕΜΑ Α ΑΕΠΠ Α1. Για κακεμία από τισ παρακάτω προτάςεισ να χαρακτθρίςετε με ΣΩΣΤΟ ι ΛΑΘΟΣ 1. Η ζκφραςθ

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

Ονοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ

Ονοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ Ονοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ ΘΕΜΑ 1 Ο Α) Ερωτισεις τφπου ωστοφ-λάκους 1. Κάκε βρόχος Για μπορεί να μετατραπεί σε Όσο 2. Κάκε βρόχος που υλοποιείται με τθν εντολι Όσο...επανάλαβε μπορεί να γραφεί και

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

26/3/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (Ι) Β. Δημακόπουλος

26/3/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (Ι) Β. Δημακόπουλος Υ07 Παράλληλα Συστήματα 2011-12 26/3/2012 Προγραμματισμός συστημάτων κοινόχρηστης μνήμης (Ι) Β. Δημακόπουλος Από τα εισαγωγικά για να εκμεταλλευτούμε πολλαπλούς επεξεργαστές, έχουμε δύο βασικές τεχνικές:

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

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

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

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

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι Τλικό υπολογιςτι (Hardware), Προςωπικόσ Τπολογιςτισ (ΡC), υςκευι ειςόδου, υςκευι εξόδου, Οκόνθ (Screen), Εκτυπωτισ (Printer), αρωτισ

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

Κατανεμημένος και Παράλληλος Προγραμματισμός

Κατανεμημένος και Παράλληλος Προγραμματισμός Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr Παράλληλος προγραμματισμός OpenMP (3) Critical vs. Single Η

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

Πωσ δθμιουργώ φακζλουσ;

Πωσ δθμιουργώ φακζλουσ; Πωσ δθμιουργώ φακζλουσ; Για να μπορζςετε να δθμιουργιςετε φακζλουσ ςτο χαρτοφυλάκιό ςασ ςτο Mahara κα πρζπει να μπείτε ςτο ςφςτθμα αφοφ πατιςετε πάνω ςτο ςφνδεςμο Mahara profiles από οποιοδιποτε ςελίδα

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

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

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

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

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων Πανελλόνιεσ εξετϊςεισ Γ Τϊξησ 2011 Ανϊπτυξη Εφαρμογών ςε Προγραμματιςτικό Περιβϊλλον ΘΕΜΑ Α Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων Α1. Σ/Λ 1. Σωςτι 2. Σωςτι 3. Λάκοσ 4. Λάκοσ 5. Λάκοσ Α2. Σ/Λ 1. Σωςτι 2.

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

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων

Ιςοηυγιςμζνα δζντρα και Β- δζντρα. Δομζσ Δεδομζνων Ιςοηυγιςμζνα δζντρα και Β- δζντρα Δομζσ Δεδομζνων Περιεχόμενα Ιςοηυγιςμζνα δζντρα Μζκοδοι ιςοηφγιςθσ δζντρων Μονι Περιςτροφι Διπλι Περιςτροφι Β - δζντρα Ιςοηυγιςμζνα δζντρα Η μορφι ενόσ δυαδικοφ δζντρου

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

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον Γραπτι Εξζταςθ ςτο μάκθμα Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον Όνομα: Επϊνυμο: Τμιμα: Ημερομθνία: 20/02/11 Θζμα 1 ο Α. Να χαρακτθρίςετε κακεμιά από τισ παρακάτω προτάςεισ ωσ Σωςτι (Σ) ι Λάκοσ

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

MySchool Πρακτικζσ οδθγίεσ χριςθσ

MySchool Πρακτικζσ οδθγίεσ χριςθσ MySchool Πρακτικζσ οδθγίεσ χριςθσ 1) Δθμιουργία τμθμάτων (ΣΧΟΛΙΚΗ ΜΟΝΑΔΑ, Διαχείριςθ, Διαχείριςθ τμθμάτων) Το πρώτο που πρζπει να κάνουμε ςτο MySchool είναι να δθμιουργιςουμε τα τμιματα που υπάρχουν ςτο

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

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α)

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α) 50 Χρόνια ΦΡΟΝΣΙΣΗΡΙΑ ΜΕΗ ΕΚΠΑΙΔΕΤΗ ΑΒΒΑΪΔΗ-ΜΑΝΩΛΑΡΑΚΗ ΠΑΓΚΡΑΣΙ : Φιλολάου & Εκφαντίδου 26 : Σηλ.: 2107601470 ΔΙΑΓΩΝΙΣΜΑ : ΑΝΑΡΤΥΞΗ ΕΦΑΜΟΓΩΝ ΣΕ ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ Γϋ ΛΥΚΕΙΟΥ 2011 ΘΕΜΑ Α I. Η ςειριακι

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

Ιδιότθτεσ πεδίων Γενικζσ.

Ιδιότθτεσ πεδίων Γενικζσ. Οι ιδιότθτεσ των πεδίων διαφζρουν ανάλογα με τον τφπο δεδομζνων που επιλζγουμε. Ορίηονται ςτο κάτω μζροσ του παρακφρου ςχεδίαςθσ του πίνακα, ςτθν καρτζλα Γενικζσ. Ιδιότθτα: Μζγεκοσ πεδίου (Field size)

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

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΕΛΟΠΟΝΝΗΣΟΥ ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Δίκτυα Επικοινωνιϊν ΙΙ Διδάςκων: Απόςτολοσ Γκάμασ (Διδάςκων ΠΔ 407/80) Βοθκόσ Εργαςτθρίου: Δθμιτριοσ Μακρισ Ενδεικτική Λύση 2

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

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1 1. Εγκατάςταςη Xampp Προκειμζνου να γίνει θ εγκατάςταςθ κα πρζπει πρϊτα να κατεβάςετε και εγκαταςτιςετε το XAMPP ωσ ακολοφκωσ. 1.1. Πάμε ςτθν ακόλουκθ διεφκυνςθ https://www.apachefriends.org/download.html

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

Βάςεισ Δεδομζνων Ι. Ενότητα 12: Κανονικοποίηςη. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ

Βάςεισ Δεδομζνων Ι. Ενότητα 12: Κανονικοποίηςη. Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ Βάςεισ Δεδομζνων Ι Ενότητα 12: Κανονικοποίηςη Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικών Πλθροφορικισ ΤΕ Άδειεσ Χρήςησ Το παρόν εκπαιδευτικό υλικό υπόκειται ςε άδειεσ χριςθσ Creative Commons. Για εκπαιδευτικό

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

ΠΑΝΕΠΙΣΘΜΙΟ ΔΤΣΙΚΘ ΜΑΚΕΔΟΝΙΑ ΣΜΘΜΑ ΜΘΧΑΝΙΚΩΝ ΠΛΘΡΟΦΟΡΙΚΘ ΚΑΙ ΣΘΛΕΠΙΚΟΙΝΩΝΙΩΝ. Λειτουργικά υςτιματα, 4 ο Εξάμθνο Ψθφιακι χεδίαςθ ΙΙ, 4 ο Εξάμθνο

ΠΑΝΕΠΙΣΘΜΙΟ ΔΤΣΙΚΘ ΜΑΚΕΔΟΝΙΑ ΣΜΘΜΑ ΜΘΧΑΝΙΚΩΝ ΠΛΘΡΟΦΟΡΙΚΘ ΚΑΙ ΣΘΛΕΠΙΚΟΙΝΩΝΙΩΝ. Λειτουργικά υςτιματα, 4 ο Εξάμθνο Ψθφιακι χεδίαςθ ΙΙ, 4 ο Εξάμθνο ΠΑΝΕΠΙΣΘΜΙΟ ΔΤΣΙΚΘ ΜΑΚΕΔΟΝΙΑ ΣΜΘΜΑ ΜΘΧΑΝΙΚΩΝ ΠΛΘΡΟΦΟΡΙΚΘ ΚΑΙ ΣΘΛΕΠΙΚΟΙΝΩΝΙΩΝ Λειτουργικά υςτιματα, 4 ο Εξάμθνο Ψθφιακι χεδίαςθ ΙΙ, 4 ο Εξάμθνο Νικόλασ Κυπαριςςάσ, 414 Τπεφκυνοι Κακθγθτζσ: Δρ. Μθνάσ Δαςυγζνθσ,

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

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ 1 Περίληψη Το ςυγκεκριμζνο εγχειρίδιο δημιουργήθηκε για να βοηθήςει την κατανόηςη τησ διαδικαςίασ αυτόματησ δημιουργίασ ςτηλών και αντιςτοίχιςησ

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

Ειδικά Θζματα Βάςεων Δεδομζνων

Ειδικά Θζματα Βάςεων Δεδομζνων Ειδικά Θζματα Βάςεων Δεδομζνων Ενότητα 11: Αντικειμενοςτραφήσ και αντικείμενοςχεςιακζσ βάςεισ Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικϊν Πλθροφορικισ ΤΕ Άδειεσ Χρήςησ Το παρόν εκπαιδευτικό υλικό υπόκειται

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

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1 ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4. Να γίνει πρόγραμμα το οποίο να επιλφει το Διαγώνιο Σφςτθμα: A ι το ςφςτθμα : ι ςε μορφι εξιςώςεων το ςφςτθμα : Αλγόρικμοσ m(). Διαβάηουμε τθν τιμι του ( θ διάςταςθ του Πίνακα Α )..

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

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Ιοφνιοσ 2013 Περιεχόμενα: Ειςαγωγή... 3 1.Εθνικό Τυπογραφείο... 3 1.1. Είςοδοσ... 3 1.2. Αρχική Οθόνη... 4 1.3. Διεκπεραίωςη αίτηςησ...

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΗ. του ΙΑΣΡΟΦΑΡΜΑΚΕΤΣΙΚΟΤ ΦΑΚΕΛΟΤ ΑΘΕΝΩΝ Για τον ΟΙΚΟ ΝΑΤΣΟΤ ΕΡΓΑΣΗΡΙΑΚΟΙ ΓΙΑΣΡΟΙ. iknowhow Πληροφορική A.E

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΗ. του ΙΑΣΡΟΦΑΡΜΑΚΕΤΣΙΚΟΤ ΦΑΚΕΛΟΤ ΑΘΕΝΩΝ Για τον ΟΙΚΟ ΝΑΤΣΟΤ ΕΡΓΑΣΗΡΙΑΚΟΙ ΓΙΑΣΡΟΙ. iknowhow Πληροφορική A.E ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΗ του ΙΑΣΡΟΦΑΡΜΑΚΕΤΣΙΚΟΤ ΦΑΚΕΛΟΤ ΑΘΕΝΩΝ Για τον ΟΙΚΟ ΝΑΤΣΟΤ ΕΡΓΑΣΗΡΙΑΚΟΙ ΓΙΑΣΡΟΙ iknowhow Πληροφορική A.E ΕΡΓΑΣΗΡΙΑΚΟΙ ΓΙΑΣΡΟΙ... 3 Η ΕΦΑΡΜΟΓΗ... 3 ΧΡΗΣΕ... 3 ΠΡΟΒΑΗ ΣΗΝ ΕΦΑΡΜΟΓΗ... 3 ΑΡΧΙΚΗ

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

Modellus 4.01 Συ ντομοσ Οδηγο σ

Modellus 4.01 Συ ντομοσ Οδηγο σ Νίκοσ Αναςταςάκθσ 4.01 Συ ντομοσ Οδηγο σ Περιγραφή Σο είναι λογιςμικό προςομοιϊςεων που ςτθρίηει τθν λειτουργία του ςε μακθματικά μοντζλα. ε αντίκεςθ με άλλα λογιςμικά (π.χ. Interactive Physics, Crocodile

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

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ

Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ Ειςαγωγό Όπωσ είδαμε, ο χϊροσ εικονικϊν διευκφνςεων μνιμθσ που χρθςιμοποιεί κάκε διεργαςία, είναι αρκετά μεγαλφτεροσ από το χϊρο των φυςικϊν διευκφνςεων.

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

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα Αυτζσ οι οδθγίεσ ζχουν ςτόχο λοιπόν να βοθκιςουν τουσ εκπαιδευτικοφσ να καταςκευάςουν τισ δικζσ τουσ δραςτθριότθτεσ με το μοντζλο του Άβακα. Παρουςίαςη

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

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ Οδηγός Χρήσης Εφαρμογής Ελέγχου Προσφορών Αφοφ πιςτοποιθκεί ο λογαριαςμόσ που δθμιουργιςατε ςτο πρόγραμμα ωσ Πάροχοσ Προςφορϊν, κα λάβετε ζνα e-mail με

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

Βάρειπ Δεδξμέμωμ. Επγαστήπιο ΙΙ. Τμήμα Πλεπουοπικήρ ΑΠΘ

Βάρειπ Δεδξμέμωμ. Επγαστήπιο ΙΙ. Τμήμα Πλεπουοπικήρ ΑΠΘ Βάρειπ Δεδξμέμωμ Επγαστήπιο ΙΙ Τμήμα Πλεπουοπικήρ ΑΠΘ 2016-2017 2 Σκξπόπ ςξσ 2 ξσ εογαρςηοίξσ Σκοπόρ αςτού τος επγαστεπίος είναι: Η μελέτε επωτεμάτων σε μία μόνο σσέσε. Εξετάδοςμε τοςρ τελεστέρ επιλογήρ

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