Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός Μάθημα 8 ο & 9 ο 1 & 8/12/2009
|
|
- Ἀπόλλωνιος Νικολαΐδης
- 6 χρόνια πριν
- Προβολές:
Transcript
1 Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Μάθημα 8 ο & 9 ο 1 & 8/12/2009 Προγραμματισμός με MPI Β. Δημακόπουλος
2 Τα βασικά
3 Βαςικζσ δομζσ Διεργαςίεσ Η πιο κοινι περίπτωςθ είναι να δθμιουργοφνται εξωτερικά mpirun np 10 a.out «SPMD» Για διαφοροποίθςθ των διεργαςιϊν: MPI_Comm_rank(MPI_COMM_WORLD, &myid); Ακολουκιακι αρίκμθςθ (0, 1, 2, ) MPI_Comm_size(MPI_COMM_WORLD, &nproc); Πλικοσ διεργαςιϊν ςυνολικά (το -np που δόκθκε παραπάνω) Αποςτολι μθνυμάτων MPI_Send(buf, n, dtype, torank, tag, MPI_COMM_WORLD); Λιψθ μθνυμάτων MPI_Recv(buf, n, dtype, fromrank, tag, MPI_COMM_WORLD, status); Παραλαβι ΜΟΝΟ ΕΦΟΟΝ: το μινυμα όντωσ ιρκε από τθ διεργαςία fromtag το μινυμα είχε όντωσ τθν ετικζτα tag #3
4 Βαςικι τεχνικι Επειδι δεν υπάρχει τίποτε κοινό ανάμεςα ςτισ διεργαςίεσ, κα υπάρχει αναγκαςτικά μία διεργαςία θ οποία: αρχικοποιεί τισ δομζσ μοιράηει τα δεδομζνα ςε άλλεσ ςυλλζγει τα επιμζρουσ αποτελζςματα και ίςωσ τα δείχνει ςτον χριςτθ τυλ προγραμματιςμοφ SPMD (Single-Program Multiple Data) Όλεσ οι διεργαςίεσ εκτελοφν το ίδιο πρόγραμμα Τπάρχει διαφοροποίθςθ μόνο με βάςθ το ID (rank) τθσ κάκε διεργαςίασ Λόγω τθσ διαμοίραςθσ των δεδομζνων, κάκε μία εργάηεται ςε διαφορετικά δεδομζνα #4
5 Παράδειγμα: υπολογιςμόσ του π #include <mpi.h> /* Μετάφραςη με mpicc */ main(int argc, char *argv[]) { float W, result = 0.0, temp; int N, i, myid, nproc; MPI_status status; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &nproc); /* Αρχικοποίηςη διαμοίραςη */ if (myid == 0) { printf( Enter number of divisions: ); scanf( %d\n, &N); for (i = 1; i < nproc; i++) MPI_Send(&N, 1, MPI_INT, i, 0, MPI_COMM_WORLD); else MPI_Recv(&N, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &status); /* Ο υπολογιςμόσ τησ κάθε διεργαςίασ */ W = 1.0 / N; for (i = myid; i < N; i += nproc) result += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); /* Συλλογή αποτελεςμάτων */ if (myid == 0) { for (i = 1; i < nproc; i++) { MPI_Recv(&temp, 1, MPI_FLOAT, i, 0, MPI_COMM_WORLD, &status); result += temp; printf( pi = %f\n, result); else MPI_Send(&temp, 1, MPI_FLOAT, 0, 0, MPI_COMM_WORLD); MPI_Finalize(); #5
6 Τπολογιςμόσ του π Βελτίωςθ: Παραλαβι μθνυμάτων όπωσ καταφκάνουν Βελτίωςθ ςτθν ταχφτθτα, μείωςθ ανάγκθσ για buffering κλπ., αρκεί να το επιτρζπει ο αλγόριθμοσ. /* Συλλογή αποτελεςμάτων */ if (myid == 0) { for (i = 1; i < nproc; i++) { MPI_Recv(&temp, 1, MPI_FLOAT, i, 0, MPI_COMM_WORLD, &status); result += temp; printf( pi = %f\n, result); else MPI_Send(&temp, 1, MPI_FLOAT, 0, 0 MPI_COMM_WORLD); /* Συλλογή αποτελεςμάτων */ if (myid == 0) { for (i = 1; i < nproc; i++) { MPI_Recv(&temp, 1, MPI_FLOAT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); result += temp; printf( pi = %f\n, result); else MPI_Send(&result, 1, MPI_FLOAT, 0, MPI_COMM_WORLD); MPI_Finalize(); MPI_Finalize(); #6
7 Παράδειγμα: πίνακασ επί διάνυςμα ειριακά: float A[N][N], v[n], res; for (i = 0; i < Ν; i++) { sum = 0.0; for (j = 0; j < Ν; j++) sum += Α[i][j]*v[j]; res[i] = sum; Θα χρθςιμοποιιςουμε τμθματικι δρομολόγθςθ ςτον βρόχο του i Όπωσ και ςτο μοντζλο κοινοφ χϊρου διευκφνςεων, θ κάκε διεργαςία κα εκτελζςει το παρακάτω: WORK = N / nprocs; /* Στοιχεία ανά διεργαςία */ sum = 0.0; for (i = 0; i < WORK; i++) { for (j = 0; j < Ν; j++) sum += Α[myid*WORK+i][j]*v[j]; #7
8 Πίνακασ επί διάνυςμα, ςυνζχεια Επίςθσ θ διεργαςία 0 κα «ςυλλζξει» όλα τα επιμζρουσ ςτοιχεία του αποτελζςματοσ από τισ άλλεσ διεργαςίεσ για να ςχθματίςει τθν τελικι απάντθςθ. Επομζνωσ, κάκε διεργαςία κα πρζπει ςτο τζλοσ να κάνει: /* Το sum έχει το (myid*work+i)-οςτό ςτοιχείο του αποτελέςματοσ */ MPI_Send(&sum, 1, MPI_FLOAT, 0, myid*work+i, MPI_COMM_WORLD); Σζλοσ, θ διεργαςία 0 κα πρζπει να κάνει τθν αρχικοποίθςθ, δθλαδι: να αρχικοποιιςει (π.χ. να διαβάςει από το πλθκτρολόγιο, από αρχείο) τα Α*+*+ και v[]. Να τα ςτείλει ςε όλεσ τισ άλλεσ διεργαςίεσ (υπενκφμιςθ: δεν υπάρχουν κοινζσ μεταβλθτζσ!) #8
9 Σελικόσ κϊδικασ: πίνακασ επί διάνυςμα (Ι) #define N 100 /* Η διάςταςη του πίνακα */ matrix_times_vector() { int i, j; int WORK = N / nprocs; /* Στοιχεία ανά διεργαςία */ float sum, v[ν]; MPI_Status status; if (myid == 0) /* Διεργαςία 0 */ { float A[N][N], res[n]; else /* του if (myid == 0) */ /* Υπόλοιπεσ διεργαςίεσ */ { float B[WORK][N]; initialize_elements(a, v); /* Κάποια αρχικοποίηςη */ for (i = 1; i < numprocs(); i++) { MPI_Send(A[i*WORK], WORK*N, MPI_FLOAT, i, 0, MPI_COMM_WORLD); MPI_Send(v, N, MPI_FLOAT, i, 0, MPI_COMM_WORLD); for (i = 0; i < WORK; i++) { for (sum = 0.0, j = 0; j < Ν; j++) sum += Α[i][j]*v[j]; res[i] = sum; /* Συλλογή των ςτοιχείων του αποτελέςματοσ */ for (i = WORK; i < WORK*nprocs; i++) { MPI_Recv(&sum, 1, MPI_FLOAT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); res[ status.mpi_tag ] = sum; /* Εξαγωγή τησ ετικέτασ */ show_result(res); /* Παρουςίαςη αποτελέςματοσ */ MPI_Recv(B, WORK*N, MPI_FLOAT, 0, 0, MPI_COMM_WORLD, &status); MPI_Recv(v, N, MPI_FLOAT, 0, 0, MPI_COMM_WORLD, &status); for (i = 0; i < WORK; i++) { for (j = 0; j < Ν; j++) sum += B[i][j]*v[j]; /* Το sum έχει το (myid*work+i)-οςτό ςτοιχείο του αποτελ. */ MPI_Send(&sum, 1, MPI_FLOAT, 0, myid*work+i, MPI_COMM_WORLD); #9
10 Βελτιςτοποίθςθ Οι επικοινωνίεσ είναι ο εχκρόσ τθσ ταχφτθτασ! Κοιτάμε να τισ αποφεφγουμε όςο γίνεται. Καλφτερα λίγα και μεγάλα μθνφματα, παρά πολλά και μικρά. Ομαδοποίθςθ μθνυμάτων όςο γίνεται. Διεργαςίεσ εκτόσ τθσ 0: { float B[WORK][N], mypart[n]; MPI_Recv(B, WORK*N, MPI_FLOAT, 0, 0, MPI_COMM_WORLD, &status); MPI_Recv(v, N, MPI_FLOAT, 0, 0, MPI_COMM_WORLD, status); for (i = 0; i < WORK; i++) { for (j = 0; j < Ν; j++) sum += B[i][j]*v[j]; mypart[i] = sum; /* Το mypart περιέχει WORK ςτοιχεία, αρχίζοντασ από το (myid*work)-οςτό */ MPI_Send(mypart, WORK, MPI_FLOAT, 0, myid*work, MPI_COMM_WORLD); Διεργαςία 0: if (myid == 0) {... /* Συλλογή ςτοιχείων του αποτελέςματοσ */ for (i = 1; i < nprocs; i++) { /* Παραλαβή και εξαγωγή WORK ςτοιχείων */ MPI_Recv(v, WORK, MPI_FLOAT, MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &status); for (j = 0; j < WORK; j++) res[ j + status.mpi_tag ] = v[j]; show_result(res); #10
11 Τα συλλογικά
12 υλλογικζσ επικοινωνίεσ (collective communications) Εκτόσ από τθν επικοινωνία ενόσ ηεφγουσ διεργαςιϊν ( unicast communication ), υπάρχει πολφ ςυχνά ανάγκθ για επικοινωνία μεταξφ όλων των διεργαςιϊν μαηί. collective communications διάφορων ειδϊν Εκπομπι (broadcasting, one-to-all) ίδιο μινυμα από μία διεργαςία προσ όλεσ τισ άλλεσ #12
13 υλλογικζσ επικοινωνίεσ Διαςκόρπιςθ (scattering, personalized one-to-all) διαφορετικά μθνφματα από μία διεργαςία προσ όλεσ τισ άλλεσ υλλογι (gathering, personalized all-to-one) ( αντίκετο τθσ διαςκόρπιςθσ ) μία διεργαςία λαμβάνει ζνα μινυμα από κάκε μία από τισ υπόλοιπεσ #13
14 υλλογικζσ επικοινωνίεσ??? Πολλά πικανά ονόματα: πολλαπλι εκπομπι (multinode ι all-to-all broadcasting) Όλεσ εκτελοφν εκπομπι (ι όλεσ εκτελοφν το ίδιο gather) το MPI λζγεται allgather #14
15 υλλογικζσ επικοινωνίεσ??? Πικανά ονόματα: ολικι ανταλλαγι (multinode gather/scatter ι all-to-all personalized ι total exchange) ( όλεσ οι διεργαςίεσ εκτελοφν τθ δικι τουσ διαςκόρπιςθ ) κάκε διεργαςία ζχει διαφορετικό μινυμα για κάκε άλλθ το MPI λζγεται alltoall #15
16 Παράδειγμα ε πολλζσ εφαρμογζσ απαιτείται θ λφςθ ενόσ ςυςτιματοσ εξιςϊςεων και θ ςυνικθσ τακτικι για τθ λφςθ του είναι οι λεγόμενεσ «επαναλθπτικζσ μζκοδοι». Αυτζ πολφ απλά προςεγγίηουν ςταδιακά τθ λφςθ x(), μζςω επαναλιψεων τθσ μορφισ: x(t+1) = A x(t) ξεκινϊντασ από μία αρχικι εκτίμθςθ x(0). To x() είναι διάνυςμα με Ν ςτοιχεία και το Α είναι πίνακασ ΝxΝ. Άρα ςε κάκε επανάλθψθ απαιτείται πολλαπλαςιαςμόσ πίνακα επί διάνυςμα. #16
17 Παράδειγμα, ςυνζχεια Μία ςτρατθγικι αποκικευςθσ των Α και x(): Κατά γραμμζσ ο Α (π.χ. θ διεργαςία i ζχει τθ γραμμι i του Α) Κάκε διεργαςία ζχει όλο το τρζχον x() Αρχικά, κάποια διεργαςία πρζπει: να ςτείλει ςε όλεσ τισ άλλεσ τθν αρχικι εκτίμθςθ (το x(0)). (εκπομπή) να ςτείλει ςτθν διεργαςία i τθν i-οςτι γραμμι του Α (για κάκε i). (διαςκόρπιςη) #17
18 Παράδειγμα, ςυνζχεια ε κάκε επανάλθψθ: Η διεργαςία i πολλαπλαςιάηει τθ γραμμι του A που ζχει με το x(t) που επίςθσ ζχει και υπολογίηει το i-οςτό ςτοιχείο του νζου x, δθλαδι το x i (t+1). Θα πρζπει να ςχθματίςει ολόκλθρο το x(t), προφανϊσ από τα ςτοιχεία που υπολόγιςαν οι άλλεσ διεργαςίεσ (πολλαπλή εκπομπή ή allgather) Αν απαιτθκεί αναςτροφή του Α (οι γραμμζσ να γίνουν ςτιλεσ και οι ςτιλεσ γραμμζσ), τότε θ διεργαςία i κα ζχει μόνο το ςτοιχείο A ii. Σο Α 0i το ζχει θ διεργαςία 0, το Α 1i το ζχει θ διεργαςία 1, το Α ki το ζχει θ διεργαςία k. Πρζπει να ςυλλζξει αυτά τα ςτοιχεία από όλεσ τισ άλλεσ διεργαςίεσ Σο ίδιο κάνουν, όμωσ, όλεσ, για τισ δικζσ τουσ ςτιλεσ (ολική ανταλλαγή ή alltoall) #18
19 Άλλεσ ςυλλογικζσ επικοινωνίεσ/υπολογιςμοί Λειτουργίεσ υποβίβαςθσ (reduction operations) Από ζνα μζγεκοσ μεγαλφτερθσ διάςταςθσ (π.χ. διάνυςμα) «υποβιβαηόμαςτε» ςε μζγεκοσ μικρότερθσ διάςταςθσ (π.χ. βακμωτό) global sum, product, εφρεςθ max, min κλπ Κλιςθσ φραγισ (barrier calls) Μερικι εμπομπι (multicast) Εκπομπι μόνο ςε μερικζσ διεργαςίεσ, όχι ςε όλεσ Είναι πιο «δφςκολθ» επικοινωνία από τθν ολικι εκπομπι (!) και άλλεσ... #19
20 Κλιςεισ Σθν ίδια κλιςθ κάνουν όλεσ οι διεργαςίεσ MPI_Bcast(buf, n, dtype, rootrank,mpi_comm_world); το rootrank δθλϊνει ποιοσ κάνει τθν εκπομπι MPI_Scatter(sbuf, sn, stype, rbuf, rn, rtype, rootrank, MPI_COMM_WORLD); Μόνο για τθν πθγι μετράνε τα 3 πρϊτα ορίςματα Σο sn είναι ο # ςτοιχείων που κα ςταλεί ςε κάκε διεργαςία (περιλαμβανομζνης και της πηγής) και πρζπει να είναι ίδιοσ με το rn. Άρα αν υπάρχουν Ν διεργαςίεσ, το sbuf πρζπει να ζχει Ν*sn ςτοιχεία. Κάκε διεργαςία παραλαμβάνει τα ςτοιχεία τθσ ςτο rbuf MPI_Gather(sbuf, sn, stype, rbuf, rn, rtype, targetrank, MPI_COMM_WORLD); Μόνο για τθ διεργαςία-αποδζκτθ μετράνε τα ορίςματα 4-6 Σο sn είναι ο # ςτοιχείων που κα ςταλεί θ κάκε διεργαςία (περιλαμβανομζνης και του αποδζκτη). MPI_Allgather(sbuf, sn, stype, rbuf, rn, rtype, MPI_COMM_WORLD); Κδια με MPI_Gather() μόνο που όλεσ οι διεργαςίεσ πρζπει να ζχουν receive buffer #20
21 Κλιςεισ, ςυνζχεια MPI_Alltoall(sbuf, sn, stype, rbuf, rn, rtype, MPI_COMM_WORLD); Παρόμοιεσ παράμετροι με με MPI_Allgather() MPI_Reduce(sbuf, rbuf, n, dtype, op, targetrank, MPI_COMM_WORLD); το op είναι MPI_MAX/MIN/SUM/PROD/LAND/BAND/LOR/BOR/LXOR/BXOR (αν και μπορεί κανείσ να ορίςει και δικά του) τζλοσ υπάρχουν και τα MPI_MINLOC και MPI_MAXLOC που μαηί με το min/max επιςτρζφουν το rank τθσ διεργαςίασ που το διακζτει Όλες οι διεργαςίεσ πρζπει να διακζτουν send & receive buffer (sbuf & rbuf) Η λειτουργία, αν το n είναι > 1, γίνεται ςε κάκε ςτοιχείο ξεχωριςτά MPI_Allreduce(sbuf, rbuf, n, dtype, op, MPI_COMM_WORLD); Κδια με MPI_Reduce() μόνο που όλεσ οι διεργαςίεσ παίρνουν το αποτζλεςμα και άλλεσ #21
22 Παράδειγμα: «κυριλζ» ( )υπολογιςμόσ του π #include <mpi.h> /* Μετάφραςη με mpicc */ main(int argc, char *argv[]) { float W, result = 0.0, temp; pi; int N, i, myid, nproc; MPI_status status; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myid); MPI_Comm_size(MPI_COMM_WORLD, &nproc); /* Αρχικοποίηςη διαμοίραςη */ if (myid == 0) { printf( Enter number of divisions: ); scanf( %d\n, &N); for (i = 1; i < nproc; i++) MPI_Bcast(&N, MPI_Send(&N, 1, MPI_INT, 1, MPI_INT, 0, MPI_COMM_WORLD); i, 0, MPI_COMM_WORLD); else /* Ο υπολογιςμόσ τησ κάθε διεργαςίασ */ W = MPI_Recv(&N, 1.0 / N; 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &status); for (i = myid; i < N; i += nproc) /* result Ο υπολογιςμόσ += 4*W / τησ (1 + κάθε (i+0.5)*(i+0.5)*w*w); διεργαςίασ */ W = 1.0 / N; for (i = myid; i < N; i += nproc) result += 4*W / (1 + (i+0.5)*(i+0.5)*w*w); /* Συλλογή αποτελεςμάτων */ MPI_Reduce(&result, if (myid == 0) { &pi, 1, MPI_FLOAT, for (i = 1; MPI_SUM, i < nproc; 0, MPI_COMM_WORLD); i++) { if (myid MPI_Recv(&temp, == 0) 1, MPI_FLOAT, i, 0, printf( pi = %f\n, MPI_COMM_WORLD, result); &status); result += temp; MPI_Finalize(); printf( pi = %f\n, result); else MPI_Send(&temp, 1, MPI_FLOAT, 0, 0, MPI_COMM_WORLD); MPI_Finalize(); #22
23 Παράδειγμα: πίνακασ επί διάνυςμα (ΙΙ) ςυλλογικά matrix_times_vector() { int i, j; int WORK = N / nprocs; /* Στοιχεία ανά διεργαςία */ float sum, v[ν], A[N][N], **B; if (myid == 0) initialize_elements(a, v, N); B = allocmatrix(work, N); mypart = allocvector(work); MPI_Scatter(Α, WORK*N, MPI_FLOAT, B, WORK*N, MPI_FLOAT, 0, MPI_COMM_WORLD); MPI_Bcast(v, N, MPI_FLOAT, 0, MPI_COMM_WORLD); for (i = 0; i < WORK; i++) { for (sum = 0.0, j = 0; j < Ν; j++) sum += B[i][j]*v[j]; mypart[i] = sum; MPI_Gather(mypart, WORK, MPI_FLOAT, res, WORK, MPI_FLOAT, 0, MPI_COMM_WORLD); if (myid == 0) show_result(res); #23
24 Τα ασφαλή
25 Προβλιματα; Δφο διεργαςίεσ ανταλλάςουν δεδομζνα: P0: MPI_Send(&a, 1, MPI_INT, 1, 0, MPI_COMM_WORLD); MPI_Recv(&b, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, &status); P1: MPI_Recv(&a, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &status); MPI_Send(&b, 1, MPI_INT, 0, 0, MPI_COMM_WORLD); Μία χαρά! Σο επόμενο; P0: MPI_Recv(&b, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, &status); MPI_Send(&a, 1, MPI_INT, 1, 0, MPI_COMM_WORLD); P1: MPI_Recv(&a, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &status); MPI_Send(&b, 1, MPI_INT, 0, 0, MPI_COMM_WORLD); deadlock! #25
26 Αςφάλεια Αυτό; P0: MPI_Send(&a, 1, MPI_INT, 1, 0, MPI_COMM_WORLD); MPI_Recv(&b, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, &status); P1: MPI_Send(&b, 1, MPI_INT, 0, 0, MPI_COMM_WORLD); MPI_Recv(&a, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &status); Είναι εντάξει ΜΟΝΟ εφόςον υπάρχουν αρκετοί buffers (ςτθ μεριά του παραλιπτθ) να φυλάνε τα μθνφματα που ςτάλκθκαν (μζχρι να τθν οριςτικι παραλαβι τουσ) Αν δεν υπάρχει χϊροσ, τότε το MPI «μπλοκάρει» μζχρι να βρεκεί χϊροσ ςτον παραλιπτθ Αν οι buffers και των δφο διεργαςιϊν είναι «γεμάτοι», τότε DEADLOCK! Άρα θ ορκότθτα / αςφάλεια του κϊδικα εξαρτάται από το ποςό των διακζςιμων buffers ΜΗ ΑΦΑΛΕ ΠΡΟΓΡΑΜΜΑ Παρόμοια περίπτωςθ είναι και όταν Ν διεργαςίεσ ανταλλάςουν κυκλικά από ζνα δεδομζνο (θ i ςτζλνει ςτθν i+1 και λαμβάνει από τθν i-1). Ποιά είναι θ αςφαλζςτερθ υλοποίθςθ; Οι άρτιεσ διεργαςίεσ αρχικά λαμβάνουν και ςτθ ςυνζχεια ςτζλνουν Οι περιττζσ κάνουν το ανάποδο odd-even rule #26
27 υναρτιςεισ που παρζχουν αςφάλεια Όταν κάκε διεργαςία ςτζλνει & λαμβάνει, το MPI παρζχει μία ςυνάρτθςθ ϊςτε να μθν τίκεται κζμα αςφάλειασ: MPI_Sendrecv(sbuf, sn, sdtype, torank, stag, rbuf, rn, rdtype, fromrank, rtag, MPI_COMM_WORLD, status); Αυτι θ ςυνάρτθςθ μπορεί επίςθσ να παραλάβει και μθνφματα που ςτάλκθκαν με απλό MPI_Send(), ενϊ το μινυμα που ςτζλνεται από αυτιν μπορεί να παραλθφκεί και με απλό MPI_Recv() Αν κζλουμε ο buffer αποςτολισ & λιψθσ να είναι ο ίδιοσ, τότε: MPI_Sendrecv_replace(buf, n, dtype, torank, stag, fromrank, rtag, MPI_COMM_WORLD, status); #27
28 Τα προχωρημέμα
29 Communicators Αν κζλω να ορίςω γκρουπ διεργαςιϊν τότε δθμιουργϊ ζναν communicator και οι επικοινωνίεσ που γίνονται με αυτόν αφοροφν μόνο διεργαςίεσ του γκρουπ. O MPI_COMM_WORLD αφορά το γκρουπ ΟΛΩΝ των διεργαςιϊν που υπάρχουν. ε όλεσ τισ κλιςεισ που είδαμε, μπορεί κανείσ να αντικαταςτιςει το MPI_COMM_WORLD με όποιον άλλον δικόν του ζχει δθμιουργιςει τα send/receive με άλλον communicator απευκφνονται μόνο ςτισ διεργαςίεσ του αντίςτοιχου γκρουπ. ε κάκε γκρουπ/communicator, οι διεργαςίεσ ζχουν ακολουκιακό rank. Κάκε διεργαςία ανικει ςτο MPI_COMM_WORLD και πικανϊσ ςε πολλά άλλα communicators Αν μία διεργαςία ανικει ςε ζναν communicator comm, τότε δεν ςθμαίνει ότι τα myid1 και myid2 είναι οπωςδιποτε ίδια: MPI_Comm_rank(MPI_COMM_WORLD, &myid1); MPI_Comm_rank(comm, &myid2); #29
30 Άλλθ μία ανάγκθ Εκτόσ από τθν μεριά του χριςτθ, υπάρχει και άλλθ μία ανάγκθ για communicators: Σο MPI εγγυάται ότι τα μθνφματα φτάνουν ςτθν διεργαςία-παραλιπτθ, με τθ ςειρά που ςτάλκθκαν από τθ διεργαςία-αποςτολζα. Και οι δφο διεργαςίεσ χρθςιμοποιοφν μία βιβλιοκικθ θ οποία ςτζλνει/λαμβάνει τα δικά τθσ μθνφματα. Φανταςτείτε ότι ο αποςτολζσ κάνει μία κλιςθ ςε αυτιν μετά το send ενϊ ο παραλιπτθσ κάτι χρειάςτθκε από τθ βιβλιοκικθ πριν το receive. Σι κα γίνει; #30
31 βιβλιοκικεσ που δεν ελζγχονται από τον χριςτθ Δεν μπορείσ να βαςιςτείσ ςτα tags διότι δεν γνωρίηεισ τι tags χρθςιμοποιεί θ βιβλιοκικθ. Επίςθσ δεν μπορείσ να βαςιςτείσ ςτα ranks μιασ και οι διεργαςίεσ καλοφν ςυναρτιςεισ τθσ βιβλιοκικθσ (θ βιβλιοκικθ δεν είναι ξεχωριςτι διεργαςία είναι απλά ζνα ςφνολο ρουτινϊν) Λφςθ: communicators Οι βιβλιοκικεσ, για αυτοφσ τουσ λόγουσ, εςωτερικά δθμιουργοφν «ιδιωτικό» communicator και όλεσ οι αποςτολζσ/λιψεισ γίνονται μζςω αυτοφ Ζτςι δεν υπάρχει περίπτωςθ να «μπερδευτοφν» με τα μθνφματα των διεργαςιϊν του χριςτθ. #31
32 Φτιάχνοντασ communicators Νζοσ communicator φτιάχνεται (αυτόματα) όταν δθμιουργοφνται τοπολογίεσ (παρακάτω ) Ζνασ άλλοσ τρόποσ είναι να «χωρίςεισ» τισ διεργαςίεσ από ζναν υπάρχοντα communicator: MPI_Comm_split(oldcomm, int color, int key, &newcomm); Π.χ. MPI_Comm_split(MPI_COMM_WORLD, int color, int key, &newcomm); Είναι ςυλλογική διαδικαςία. Πρζπει ΟΛΕ οι διεργαςίεσ του oldcomm να τθν καλζςουν! Όςεσ διεργαςίεσ δϊςουν το ίδιο color κα είναι ςτον ίδιο νζο communicator Άρα φτιάχνονται τόςοι νζοι communicators όςα και τα διαφορετικά colors Σο rank κάκε διεργαςίασ ςτον νζο communicator που κα ανικει κακορίηεται από το key. ε ιςοπαλία, χρθςιμοποιείται θ κατάταξθ ςτον παλιό communicator #32
33 Σοπολογίεσ διεργαςιϊν Κανονικά οι διεργαςίεσ αρικμοφνται ακολουκιακά (γραμμικά) 0, 1, Ν-1. Πολλζσ φορζσ κζλουμε μία διαφορετικι αρίκμθςθ το MPI μποροφμε να ορίςουμε εικονικζσ «τοπολογίεσ» Η κάκε διεργαςία ζχει τθ δικι τθσ αρίκμθςθ (ετικζτα) ςτθν κάκε τοπολογία Σοπολογίεσ καρτεςιανοφ γινομζνου μόνο (πλζγματα και tori) Η νζα τοπολογία ΔΕΝ είναι πλζον αυτι του MPI_COMM_WORLD! Ορίηεται ζνασ νζοσ communicator για τθν τοπολογία αυτι Επίςθσ, μπορεί το MPI να τισ χρθςιμοποιιςει ϊςτε να κάνει καλφτερο mapping με τθν τοπολογία του δικτφου (ο χριςτθσ δεν ζχει ζλεγχο πάνω ςε αυτι τθν αντιςτοίχιςθ) #33
34 Δθμιουργία καρτεςιανϊν τοπολογιϊν Δθμιουργοφμε καρτεςιανζσ τοπολογίεσ (πλζγματα) με: MPI_Cart_create(MPI_Comm comm_old, int ndims, int *dims, int *periods, int reorder, MPI_Comm *comm_cart) Οι διεργαςίεσ που ανικουν ςτον παλιό communicator δθμιουργοφν ζνα νζο communicator με τοπολογία πλζγματοσ ndims διαςτάςεων. Αν το periods[i] είναι 1, τότε θ διάςταςθ i κα είναι δακτφλιοσ (κφκλοσ) Αν το reorder είναι 0, οι διεργαςίεσ κα κρατιςουν το ίδιο (ακολουκιακό) rank που είχαν και ςτον παλιό communicator. Κάκε διεργαςία κα ζχει ωσ «ταυτότθτα» μία ndims-άδα, δθλαδι ζνα διάνυςμα ndims ςτοιχείων («ςυντεταγμζνεσ» ςε κάκε διάςταςθ). ζχοντασ φυςικά και το κλαςικό ακολουκιακό ranks τθσ #34
35 Σοπολογίεσ (0,0) (0,1) (0,2) (0,3) (0,0) (0,1) (0,2) (0,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) (1,0) (1,1) (1,2) (1,3) (2,0) (2,1) (2,2) (2,3) (3,0) (3,1) (3,2) (3,3) (με μπλε τα ranks) ndims =2 dims[0]=4, dims[1]=4 periods[0]=1, periods[1]=1 ndims =2 dims[0]=3, dims[1]=4 periods[0]=0, periods[1]=0 #35
36 Χρθςιμοποιϊντασ καρτεςιανζσ τοπολογίεσ Μιασ και τα send/receive εξακολουκοφν να απαιτοφν ranks ωσ ορίςματα, το MPI παρζχει ρουτίνεσ μετατροπισ μεταξφ ranks και πολυδιάςτατων ςυντεταγμζνων: MPI_Cart_coords(MPI_Comm cartcomm, int rank, int ndims, int *coords) MPI_Cart_rank(MPI_Comm cartcomm, int *coords, int *rank) για «περιοδικζσ» διαςτάςεισ, αν θ ςυντεταγμζνθ είναι εκτόσ ορίων, υπολογίηεται modulo ςτο μζγεκοσ τθσ διάςταςθσ Από τισ πιο ςυνθκιςμζνεσ ενζργειεσ ςε καρτεςιανζσ τοπολογίεσ είναι θ κυκλικι μεταφορά δεδομζνων (shift). Κάκε διεργαςία μπορεί να υπολογίςει άμεςα τον προοριςμό και τθν πθγι που τθν αφοροφν με: MPI_Cart_shift(MPI_Comm cartcomm, int dir, int s_step, int *rank_source, int *rank_dest) Σο direction είναι θ διάςταςθ ςτθν οποία κα γίνει το shift (αρίκμθςθ από το 0). Σο s_step είναι το μζγεκοσ (# κζςεων) του shift (κετικό ι αρνθτικό). Τα αποτελζςματα μποροφν να χρηςιμοποιηθοφν άμεςα ςε MPI_Sendrecv(). #36
37 Εφαρμογή: ο αλγόριθμος του Cannon για πολλαπλασιασμό πιμάκωμ
38 Πολλαπλαςιαςμόσ Α*v Αρχικι τοποκζτθςθ ςτοιχείων (πλζγμα/torus) Α 00 V0 A 01 A 02 A 03 A 10 V1 A 11 A 12 A 13 A 20 V2 A 21 A 22 A 23 A 30 V3 A 31 A 32 A 33 #38
39 Τπολογιςμόσ 1 ου ςτοιχείου του A*v Α 00 V 0 A 01 A 02 A 03 Α 01 V 1 A 02 A 03 A 00 V 1 V 2 (α) (β) V 2 V 3 V 3 V 0 Α 02 V 2 A 03 A 00 A 01 Α 03 V 3 A 00 A 01 A 02 (γ) V 3 (δ) V 0 V 0 V 1 V 1 V 2 #39
40 Σι λείπει για να υπολογιςτεί το 2 ο ςτοιχείο; Να γίνει το αντίςτοιχο με τθν γραμμι 1 του Α Όμωσ πρζπει να ξεκινιςουμε από το A[1][1]*v[1], μιασ και το v[1] είναι αυτό που υπάρχει ςτθν γραμμι 1. Πϊσ; Απάντθςθ: *πριν* ξεκινιςει ο αλγόρικμοσ, κάνουμε τθ γραμμι 1 SHIFT (rotate) 1 κζςθ προσ τα αριςτερά. Από εκεί και φςτερα, ο υπολογιςμόσ του v[1] γίνεται ταυτόχρονα με αυτόν του v[0]! Γενικά: Φάςθ 1: προετοιμαςία Η γραμμι i ολιςκάνει i κζςεισ αριςτερά (ϊςτε το Α*i][i] να βρεκεί μαηί με το v[i]) Φάςθ 2: υπολογιςμόσ LOOP (N φορζσ): 1. ε κάκε επεξεργαςτι (i, 0) υπολογίηεται το γινόμενο του υπάρχοντοσ ςτοιχείου του πίνακα Α με το υπάρχον ςτοιχείο του διανφςματοσ v. 2. Ολίςκθςθ του διανφςματοσ v προσ τα πάνω 3. Ολίςκθςθ κάκε γραμμισ του Α προσ τα αριςτερά #40
41 A*v αρχικζσ τοποκετιςεισ & 1 ο βιμα Α 00 V 0 A 01 A 02 A 03 Α 01 V 1 A 02 A 03 A 00 Α 11 V 1 Α 12 Α 13 Α 10 Α 12 V 2 Α 13 Α 10 Α 11 Α 22 V 2 Α 23 Α 20 Α 21 Α 23 V 3 Α 20 Α 21 Α 22 Α 33 V 3 Α 30 Α 31 Α 32 Α 30 V 0 Α 31 Α 32 Α 33 #41
42 Γενίκευςθ ςε Α*Β (αλγόρικμοσ Cannon) Αρχικά, κάκε γραμμι i του πίνακα Α ολιςκαίνει κατά i κζςεισ αριςτερά και Α 00 Β00 A 01 Β11 A 02 B22 A 03 B33 κάκε ςτιλθ j του πίνακα Β ολιςκαίνει κατά j κζςεισ προσ τα πάνω Α 11 Β10 Α 12 Β21 Α 13 B32 Α 10 B03 τθ ςυνζχεια γίνονται n επαναλιψεισ, όπου ςε κάκε επανάλθψθ, κάκε επεξεργαςτισ πολλαπλαςιάηει τα δφο ςτοιχεία που διακζτει, ακροίηει και Α 22 Β20 Α 23 Β31 Α 20 B02 Α 21 B13 κάκε γραμμι (ςτιλθ) ολιςκαίνει προσ τα αριςτερά (πάνω). Α 33 Β30 Α 30 Β01 Α 31 B12 Α 32 B23 Σελικά ςτον επεξεργαςτι (i, j) κα βρεκεί το ςτοιχείο C ij του αποτελζςματοσ. #42
43 Τλοποίθςθ ςε MPI Σοπολογία πλζγματοσ 2D απαραίτθτθ για τον εφκολο χειριςμό Χρθςιμοποιεί blocks του πίνακα (όχι απλά ςτοιχεία). Δθλαδι θ κάκε διεργαςία ςε κάκε βιμα δεν πολλαπλαςιάηει ζνα ςτοιχείο του Α με ζνα ςτοιχείο του Β αλλά ζναν υποπίνακα του Α με ζναν υποπίνακα του Β (δεν αλλάηει ςε κάτι ο αλγόρικμοσ) τθν επόμενθ ςελίδα Σα a και b είναι οι υποπίνακεσ που διακζτει αρχικά κάκε διεργαςία #43
44 MatrixMatrixMultiply(int n, double *a, double *b, double *c, MPI_Comm comm) { int i, nlocal; int npes, dims[2], periods[2]; int myrank, my2drank, mycoords[2]; int uprank, downrank, leftrank, rightrank, coords[2]; int shiftsource, shiftdest; MPI_Status status; MPI_Comm comm_2d; /* Get the communicator related information */ MPI_Comm_size(comm, &npes); MPI_Comm_rank(comm, &myrank); /* Set up the Cartesian topology */ dims[0] = dims[1] = sqrt(npes); /* Set the periods for wraparound connections */ periods[0] = periods[1] = 1; /* Create the Cartesian topology, with rank reordering */ MPI_Cart_create(comm, 2, dims, periods, 1, &comm_2d); /* Get the rank and coordinates in he new topology */ MPI_Comm_rank(comm_2d, &my2drank); MPI_Cart_coords(comm_2d, my2drank, 2, mycoords); /* Compute ranks of the up and left shifts */ MPI_Cart_shift(comm_2d, 0, -1, &rightrank, &leftrank); MPI_Cart_shift(comm_2d, 1, -1, &downrank, &uprank); /* Determine the dimension of the local matrix block */ nlocal = n/dims[0]; /* Perform the initial matrix alignment B */ MPI_Cart_shift(comm_2d, 0, -mycoords[0], &shiftsource, &shiftdest); MPI_Sendrecv_replace(a, nlocal*nlocal, MPI_DOUBLE, shiftdest, 1, shiftsource, 1, comm_2d, &status); MPI_Cart_shift(comm_2d, 1, -mycoords[1], &shiftsource, &shiftdest); MPI_Sendrecv_replace(b, nlocal*nlocal, MPI_DOUBLE, shiftdest, 1, shiftsource, 1, comm_2d, &status); /* Get into the main computation loop */ for (i=0; i<dims[0]; i++) { MatrixMultiply(nlocal, a, b, c); /*c=c+a*b*/ /* Shift matrix a left by one */ MPI_Sendrecv_replace(a, nlocal*nlocal, MPI_DOUBLE, leftrank, 1, rightrank, 1, comm_2d, &status); /* Shift matrix b up by one */ MPI_Sendrecv_replace(b, nlocal*nlocal, MPI_DOUBLE, uprank, 1, downrank, 1, comm_2d, &status); /* Restore the original distribution of a and b */ MPI_Cart_shift(comm_2d, 0, +mycoords[0], &shiftsource, &shiftdest); MPI_Sendrecv_replace(a, nlocal*nlocal, MPI_DOUBLE, shiftdest, 1, shiftsource, 1, comm_2d, &status); MPI_Cart_shift(comm_2d, 1, +mycoords[1], &shiftsource, &shiftdest); MPI_Sendrecv_replace(b, nlocal*nlocal, MPI_DOUBLE, shiftdest, 1, shiftsource, 1, comm_2d, &status); MPI_Comm_free(&comm_2d); /* Free up communicator */ MatrixMultiply(int n, double *a, double *b, double *c) { /* matrix-matrix multiplication c = a*b */ int i, j, k; for (i=0; i<n; i++) for (j=0; j<n; j++) for (k=0; k<n; k++) c[i*n+j] += a[i*n+k]*b[k*n+j];
45 Μη εμποδιστικές (non-blocking) επικοιμωμίες
46 Λιψθ Μζχρι τϊρα υποκζςαμε ότι μια διεργαςία που κάνει MPI_Recv() «κολλάει» και περιμζνει μζχρι να ζρκει το μινυμα (blocking) τθν μθ εμποδιςτικι λιψθ: MPI_Irecv(buf, m, dtype, frank, tag, comm, &status, &req); Παραλαβι μόνο εάν ζχει ζρκει το μινυμα Αλλιϊσ άμεςη επιςτροφή Πρζπει να γνωρίηουμε αν παραλιφκθκε μινυμα ι όχι! MPI_Test(&req, &flag, &status); το flag επιςτρζφεται 0 (false) αν όχι, αλλιϊσ 1. Προφανϊσ ο ζλεγχοσ πρζπει να μπει ςε κάποιο loop μζχρι να παραλθφκεί το μινυμα. Για αναμονι (block) μζχρι να ζρκει το μινυμα: MPI_Wait(&req, &status); #46
47 Αποςτολι Τπάρχει και εδϊ θ ζννοια τθσ εμποδιςτικότθτασ αλλά όχι τόςο εμφανϊσ (δεν μιλάμε για ςυγχρονιςμζνεσ επικοινωνίεσ τφπου rendezvous όπου ο αποςτολζασ περιμζνει μζχρι ο παραλιπτθσ να κάνει receive) Η MPI_Send() επιςτρζφει μόλισ φφγει και το τελευταίο byte από τον κόμβο. Δθλαδι, περιμζνει μζχρι να ολοκλθρωκεί θ εξισ διαδικαςία: Η βιβλιοκικθ MPI παίρνει το μινυμα από τον χϊρο του χριςτθ (user space), το τοποκετεί πικανϊσ ςε δικοφσ τθσ buffers Σο λειτουργικό ςφςτθμα αντιγράφει από τον χϊρο τθσ βιβλιοκικθσ ςε buffers ςτον χϊρο του πυρινα (kernel space) Από τουσ buffers τθσ μνιμθσ του πυρινα μεταφζρεται ςτουσ buffers του υποςυςτιματοσ επικοινωνιϊν (π.χ. κάρτασ δικτφου) Από τουσ buffers τθσ κάρτασ «βγαίνουν» όλα τα bytes ςτο καλϊδιο και ταξιδεφουν προσ τον προοριςμό τθ μθ εμποδιςτικι αποςτολι: MPI_Isend(buf, n, dtype, trank, tag, comm, &req); Επιςτρζφει αμζςωσ Επομζνωσ, κάποια από τισ μεταφορζσ ςτουσ διάφορουσ buffers του τοπικοφ κόμβου ίςωσ να μθν ζχει ολοκλθρωκεί! Μία νζα MPI_Isend() «ςτο καπάκι» μπορεί να καταςτρζψει το προηγοφμενο μήνυμα που δεν ζχει προλάβει ακόμα να φφγει Πρζπει να ςιγουρευτοφμε ότι το προθγοφμενο μινυμα ζχει φφγει πριν ςτείλουμε το επόμενο: MPI_Test(&req, &flag, &status); MPI_Wait(&req, &status); #47
48 Γιατί μθ εμποδιςτικζσ επικοινωνίεσ; Κυρίωσ για βελτίωςθ επιδόςεων επικάλυψθ υπολογιςμϊν και επικοινωνιϊν εκκίνηςη όςο πιο νωρίς γίνεται ξεκίνα το send μόλισ ζχεισ τα δεδομζνα, ξεκίνα το receive μόλισ ζχεισ άδειο buffer και ολοκλήρωςη όςο πιο αργά γίνεται ολοκλιρωςθ του send μόλισ είναι να ξαναςτείλεισ κάτι, ολοκλιρωςθ του receive μόλισ είναι να χρθςιμοποιιςεισ τα δεδομζνα Δευτερευόντωσ λόγων μείωςθσ πικανότθτασ deadlock P0: MPI_Irecv(&b, 1, MPI_INT, 1, 0, MPI_COMM_WORLD, &status, &req); MPI_Send(&a, 1, MPI_INT, 1, 0, MPI_COMM_WORLD); P1: MPI_Recv(&a, 1, MPI_INT, 0, 0, MPI_COMM_WORLD, &status); MPI_Send(&b, 1, MPI_INT, 0, 0, MPI_COMM_WORLD); Δεν ζχει deadlock! #48
49 Ο αλγόρικμοσ του Cannon με μθ εμποδιςτικζσ επικοινωνίεσ Θζλει διπλά πινακάκια a και b ϊςτε ςε άλλον buffer να παραλαμβάνει και από άλλον να ςτζλνει MatrixMatrixMultiply(int n, double *a, double *b, double *c, MPI_Comm comm) {... MPI_Request reqs[4]; double *a_buffers[2], *b_buffers[2]; /* Get the communicator related information */ /* Set up the Cartesian topology */ /* Set the periods for wraparound connections */ /* Create the Cartesian topology, with rank reordering */ /* Get the rank and coordinates in he new topology */ /* Compute ranks of the up and left shifts */ /* Determine the dimension of the local matrix block */ /* Perform the initial matrix alignment B */... /* Setup the a_buffers and b_buffers arrays */ a_buffers[0] = a; a_buffers[1] = malloc(nlocal*nlocal*sizeof(double)); b_buffers[0] = b; b_buffers[1] = malloc(nlocal*nlocal*sizeof(double)); /* Get into the main computation loop */ for (i=0; i<dims[0]; i++) { /* Shift up & left post early */ MPI_Isend(a_buffers[i%2], nlocal*nlocal, MPI_DOUBLE, leftrank, 1, comm_2d, &reqs[0]); MPI_Isend(b_buffers[i%2], nlocal*nlocal, MPI_DOUBLE, uprank, 1, comm_2d, &reqs[1]); MPI_Irecv(a_buffers[(i+1)%2], nlocal*nlocal, MPI_DOUBLE, rightrank, 1, comm_2d, &reqs[2]); MPI_Irecv(b_buffers[(i+1)%2], nlocal*nlocal, MPI_DOUBLE, downrank, 1, comm_2d, &reqs[3]); /* c = c + a*b * / MatrixMultiply(nlocal, a_buffers[i%2], b_buffers[i%2], c); /* Wait for completion before continuing */ for (j=0; j<4; j++) MPI_Wait(&reqs[j], &status); /* Restore the original distribution of a and b */... #49
Κεφάλαιο VIΙΙ Β. Δημακόπουλος
Μεταβίβαση μηνυμάτων Κεφάλαιο VIΙΙ Β. Δημακόπουλος Προγραμματίζοντας με μεταβίβαση μηνυμάτων Δεν υπάρχουν κοινές μεταβλητές διεργασίες και μηνύματα Θεωρείται το πιο δύσκολο Μπορεί, όμως, να γίνει πιο αποδοτικό
Διαβάστε περισσότερα3/5/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (ΙI) Β. Δημακόπουλος
Υ07 Παράλληλα Συστήματα 2011-12 3/5/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (ΙI) Β. Δημακόπουλος MPI συλλογικές επικοινωνίες Συλλογικές επικοινωνίες (collective communications) Εκτός
Διαβάστε περισσότεραΥ07 Παράλληλα Συστήματα /5/2016 Προγραμματισμός με μεταβίβαση μηνυμάτων
Υ07 Παράλληλα Συστήματα 2015-16 10/5/2016 Προγραμματισμός με μεταβίβαση μηνυμάτων «Κατηγορίες» προγραμματισμού κατανεμημένης μνήμης Sockets Απλά το αναφέρουμε Message passing (μεταβίβαση μηνυμάτων) με
Διαβάστε περισσότεραΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων. Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις)
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις) Προγραμματίζοντας με μεταβίβαση μηνυμάτων Δεν υπάρχουν κοινόχρηστες μεταβλητές διεργασίες και μηνύματα Θεωρείται
Διαβάστε περισσότερα30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος
Υ07 Παράλληλα Συστήματα 2011-12 30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος multicomputers, MPPs, clusters Πολυεπεξεργαστές κατανεμημένης μνήμης Ανεξάρτητοι
Διαβάστε περισσότεραΛ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009
Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Μάθημα 7 ο 24/11/2009 Οργάμωση & εισαγωγή στομ προγραμματισμό συστημάτωμ καταμεμημέμης μμήμης Β. Δημακόπουλος multicomputers, MPPs, clusters Πολυεπεξεργαςτζσ
Διαβάστε περισσότεραMPI: Βαςικζσ Εντολζσ Επικοινωνίασ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011
MPI: Βαςικζσ Εντολζσ Επικοινωνίασ Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 2011 Εντολζσ Επικοινωνίασ ςθμείο προσ ςθμείο (point-to-point) MPI_Send, MPI_Recv MPI_Isend, MPI_Irecv 2 Κώςτασ Διαμαντάρασ
Διαβάστε περισσότεραNon-blocking Επικοινωνίεσ και Buffering. Κώςτασ Διαμαντάρασ ΤΕΙ Θεςςαλονίκθσ 2011
Non-blocking Επικοινωνίεσ και Buffering Κώςτασ Διαμαντάρασ ΤΕΙ Θεςςαλονίκθσ 2011 Η χριςθ buffer Ροφ πάνε τα δεδομζνα μετά το send? Διεργασία 1 Διεργασία 2 A Buffer Δίκτσο Buffer B 2 Κ. Διαμαντάρας ΤΕΙ
Διαβάστε περισσότεραύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών
Υπολογισμός με βάση το πέρασμα μηνυμάτων Προγραμματισμός με πέρασμα μηνυμάτων ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών που θα εκτελούνται σε διαφορετικούς υπολογιστές. 2.
Διαβάστε περισσότεραΠρογραμματισμός με Μεταβίβαση Μηνυμάτων
5 Προγραμματισμός με Μεταβίβαση Μηνυμάτων Σε αυτό το κεφάλαιο του βιβλίου θα ασχοληθούμε με το προγραμματιστικό μοντέλο μεταβίβασης μηνυμάτων (message passing model), κατά πολλούς το πιο ευρέως χρησιμοποιούμενο
Διαβάστε περισσότερα17. Πολυδιάςτατοι πίνακεσ
Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 17. Πολυδιάςτατοι πίνακεσ Ιωάννθσ Κατάκθσ Πολυδιάςτατοι πίνακεσ o Μζχρι τϊρα μιλοφςαμε για μονοδιάςτατουσ πίνακεσ ι int age[5]= 31,28,31,30,31; o Για παράλλθλουσ
Διαβάστε περισσότεραΑνταλλαγι Μθνυμάτων. Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ
Ανταλλαγι Μθνυμάτων Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Στζλνω και λαμβάνω μθνφματα Θέματα: Προσ ποιόν ςτζλνονται τα δεδομζνα; Τι ςτζλνεται; Πϊσ ο δζκτθσ αναγνωρίηει τα δεδομζνα; 2 Πζραςμα
Διαβάστε περισσότεραςυςτιματα γραμμικϊν εξιςϊςεων
κεφάλαιο 7 Α ςυςτιματα γραμμικϊν εξιςϊςεων αςικζσ ζννοιεσ Γραμμικά, λζγονται τα ςυςτιματα εξιςϊςεων ςτα οποία οι άγνωςτοι εμφανίηονται ςτθν πρϊτθ δφναμθ. Σα γραμμικά ςυςτιματα με δφο εξιςϊςεισ και δφο
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΔείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8
Δείκτεσ Διαχείριςθ Μνιμθσ Βαγγζλθσ Οικονόμου Διάλεξθ 8 Δείκτεσ Κάκε μεταβλθτι ςχετίηεται με μία κζςθ ςτθν κφρια μνιμθ του υπολογιςτι. Κάκε κζςθ ςτθ μνιμθ ζχει τθ δικι τθσ ξεχωριςτι διεφκυνςθ. Με άμεςθ
Διαβάστε περισσότεραΤφποι δεδομζνων MPI. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ
Τφποι δεδομζνων MPI Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ MPI datatypes Σκοπόσ MPI datatypes: θ ςυνεργαςία μεταξφ ετερογενών υπολογιςτών και αρχιτεκτονικών Η χριςθ μθ ςυνεχών κζςεων μνιμθσ.
Διαβάστε περισσότεραΑρχιτεκτονική κοινής μνήμης
Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν κοινή μνήμη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών μνημών Συνήθως η διασύνδεση γίνεται μέσω διαδρόμου μνήμης (memory bus) Αλλά και πιο εξελιγμένα
Διαβάστε περισσότερα16. Πίνακεσ και Συναρτήςεισ
Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 16. Πίνακεσ και Συναρτήςεισ Ιωάννθσ Κατάκθσ Σιμερα o Κλιςθ με τιμι o Κλιςθ με αναφορά o Πίνακεσ και ςυναρτιςεισ o Παραδείγματα Ειςαγωγι o Στισ προθγοφμενεσ
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: OpenMPI Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΚατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1
ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4. Να γίνει πρόγραμμα το οποίο να επιλφει το Διαγώνιο Σφςτθμα: A ι το ςφςτθμα : ι ςε μορφι εξιςώςεων το ςφςτθμα : Αλγόρικμοσ m(). Διαβάηουμε τθν τιμι του ( θ διάςταςθ του Πίνακα Α )..
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης
Διαβάστε περισσότεραΔομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9
Δομθμζνοσ Προγραμματιςμόσ Βαγγζλθσ Οικονόμου Εργαςτιριο 9 Συναρτιςεισ Αφαιρετικότθτα ςτισ διεργαςίεσ Συνάρτθςεισ Διλωςθ, Κλιςθ και Οριςμόσ Εμβζλεια Μεταβλθτών Μεταβίβαςθ παραμζτρων ςε ςυναρτιςεισ Συναρτιςεισ
Διαβάστε περισσότεραΈνα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:
Μζθοδος Simplex Η πλζον γνωςτι και περιςςότερο χρθςιμοποιουμζνθ μζκοδοσ για τθν επίλυςθ ενόσ γενικοφ προβλιματοσ γραμμικοφ προγραμματιςμοφ, είναι θ μζκοδοσ Simplex θ οποία αναπτφχκθκε από τον George Dantzig.
Διαβάστε περισσότεραΑςφάλεια και Προςταςία Δεδομζνων
Αςφάλεια και Προςταςία Δεδομζνων Κρυπτογράφθςθ υμμετρικι και Αςφμμετρθ Κρυπτογραφία Αλγόρικμοι El Gamal Diffie - Hellman Σςιρόπουλοσ Γεώργιοσ ΣΙΡΟΠΟΤΛΟ ΓΕΩΡΓΙΟ 1 υμμετρικι Κρυπτογραφία υμμετρικι (Κλαςικι)
Διαβάστε περισσότερα5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ
5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ Να γραφεί πρόγραμμα, το οποίο κα δίνει τισ τιμζσ 5 και 6 ςε δφο μεταβλθτζσ a και b και κα υπολογίηει και κα εμφανίηει το άκροιςμά τουσ sum. ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ a 5 b 6 sum a+b sum ΑΛΓΟΡΙΘΜΟ
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 4: MPI_ANY_TAG,MPI_ANY_SOURCE,MPI_Bcast, MPI_Wtime, MPI_Wait, MPI_Test, MPI_Scatter Δρ. Μηνάς Δασυγένης
Διαβάστε περισσότεραΣυστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας
Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ No:05 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν
ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν Παράλλθλεσ Διεργαςίεσ (1/5) Δφο διεργαςίεσ λζγονται «παράλλθλεσ» (concurrent) όταν υπάρχει ταυτοχρονιςμόσ, δθλαδι οι εκτελζςεισ τουσ επικαλφπτονται
Διαβάστε περισσότεραΠαράςταςη ςυμπλήρωμα ωσ προσ 1
Δρ. Χρήστος Ηλιούδης Θζματα διάλεξησ ΣΤ1 Προςθεςη αφαίρεςη ςτο ΣΤ1 2 ή ΣΤ1 Ονομάηουμε ςυμπλιρωμα ωσ προσ μειωμζνθ βάςθ R ενόσ μθ προςθμαςμζνου αρικμοφ Χ = ( Χ θ-1 Χ θ-2... Χ 0 ) R ζναν άλλον αρικμό Χ'
Διαβάστε περισσότεραΠωσ δθμιουργώ φακζλουσ;
Πωσ δθμιουργώ φακζλουσ; Για να μπορζςετε να δθμιουργιςετε φακζλουσ ςτο χαρτοφυλάκιό ςασ ςτο Mahara κα πρζπει να μπείτε ςτο ςφςτθμα αφοφ πατιςετε πάνω ςτο ςφνδεςμο Mahara profiles από οποιοδιποτε ςελίδα
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, εκέµβριος 2002 Τι είναι το MPI; Είναι πρότυπο, όχι συγκεκριµένη υλοποίηση Βιβλιοθήκη ανταλλαγής
Διαβάστε περισσότεραΚάνουμε κλικ ςτθν επιλογι του οριηόντιου μενοφ «Get Skype»για να κατεβάςουμε ςτον υπολογιςτι μασ το πρόγραμμα του Skype.
ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΛΟΓΑΡΙΑΜΟΤ ΣΟ SKYPE Ανοίγουμε το πρόγραμμα περιιγθςθσ ιςτοςελίδων (εδϊ Internet Explorer). Κάνουμε κλικ ςτθ γραμμι διεφκυνςθσ του προγράμματοσ και πλθκτρολογοφμε: www.skype.com Κάνουμε
Διαβάστε περισσότεραΠαράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2
Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2 Δρ. Χρήζηος Ηλιούδης Μθ Προςθμαςμζνοι Ακζραιοι Εφαρμογζσ (ςε οποιαδιποτε περίπτωςθ δεν χρειάηονται αρνθτικοί αρικμοί) Καταμζτρθςθ. Διευκυνςιοδότθςθ.
Διαβάστε περισσότεραMulti Logo. Προγραμματιςμόσ Η/Υ με Multi Logo. Σχεδίαςη και ανάπτυξη εφαρμογήσ κίνηςησ αντικειμζνου
Multi Logo Βαθμίδα Μάθημα Αντικείμενο Τίτλοσ Διάρκεια Μορφή Διδακτικοί ςτόχοι: Επιδιωκόμενο αποτζλεςμα: Προαπαιτούμενεσ γνώςεισ: Εργαλεία Μζςα: Γυμνάςιο Πληροφορική Προγραμματιςμόσ Η/Υ με Multi Logo Σχεδίαςη
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 5: MPI_Reduce Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής
Διαβάστε περισσότεραΓράφοι. Δομζσ Δεδομζνων Διάλεξθ 9
Γράφοι Δομζσ Δεδομζνων Διάλεξθ 9 Περιεχόμενα Γράφοι Γενικζσ ζννοιεσ, οριςμόσ, κτλ Παραδείγματα Γράφων Αποκικευςθ Γράφων Βαςικοί Οριςμοί Γράφοι και Δζντρα Διάςχιςθ Γράφων Περιοδεφων Πωλθτισ Γράφοι Οριςμόσ:
Διαβάστε περισσότεραΠρογραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων
Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 15. Πίνακεσ ΙI Ιωάννθσ Κατάκθσ Σιμερα o Ειςαγωγι o Διλωςθ o Αρχικοποίθςθ o Πρόςβαςθ o Παραδείγματα Πίνακεσ - Επανάλθψθ o Στθν προθγοφμενθ διάλεξθ κάναμε μια
Διαβάστε περισσότεραΔιαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)
Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων (v.1.0.7) 1 Περίληψη Το ςυγκεκριμζνο εγχειρίδιο δθμιουργικθκε για να βοθκιςει τθν κατανόθςθ τθσ διαδικαςίασ διαχείριςθσ ςτθλών βιβλίου Εςόδων - Εξόδων.
Διαβάστε περισσότεραΔομζσ Αφαιρετικότθτα ςτα Δεδομζνα
Δομζσ Αφαιρετικότθτα ςτα Δεδομζνα Περιεχόμενα Ζννοια δομισ Οριςμόσ δομισ Διλωςθ μεταβλθτϊν Απόδοςθ Αρχικϊν τιμϊν Αναφορά ςτα μζλθ μιασ δομισ Ζνκεςθ Δομισ Πίνακεσ Δομϊν Η ζννοια τθσ δομισ Χρθςιμοποιιςαμε
Διαβάστε περισσότεραMessage Passing Interface (MPI)
Message Passing Interface (MPI) Συστήµατα Παράλληλης Επεξεργασίας Εργαστήριο Υπολογιστικών Συστηµάτων Αθήνα, Νοέµβριος 2003 24/11/2003 Message Passing Interface (MPI) 1 Παράλληλες αρχιτεκτονικές Αρχιτεκτονική
Διαβάστε περισσότεραΥπολογισμοί Μεταβίβασης Μηνυμάτων
Υπολογισμοί Μεταβίβασης Μηνυμάτων Κ.Γ. Μαργαρίτης προσαρμογή από το μάθημα του Barry Wilkinson ITCS 4145/5145 2006 Cluster Computing Univ. of North Carolina at Charlotte 2.1 2.2 Προγραμματισμός μεταβίβασης
Διαβάστε περισσότεραΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ
ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ Φιλιοποφλου Ειρινθ Προςθήκη νζων πεδίων Ασ υποκζςουμε ότι μετά τθ δθμιουργία του πίνακα αντιλαμβανόμαςτε ότι ζχουμε ξεχάςει κάποια πεδία. Είναι ζνα πρόβλθμα το οποίο
Διαβάστε περισσότεραΣυστήµατα Παράλληλης Επεξεργασίας. Message Passing Interface (MPI)
Message Passing Interface (MPI) Αρχιτεκτονική κοινής µνήµης Οι επεξεργαστές έχουν κοινή µνήµη Κάθε επεξεργαστής διαθέτει τοπική ιεραρχία κρυφών µνηµών Συνήθως η διασύνδεση γίνεται µέσω διαδρόµου µνήµης
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι
ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι Λογιςμικό (Software), Πρόγραμμα (Programme ι Program), Προγραμματιςτισ (Programmer), Λειτουργικό Σφςτθμα (Operating
Διαβάστε περισσότεραΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.
.. Αντίςτροφθ ςυνάρτθςθ Ζςτω θ ςυνάρτθςθ : A θ οποία είναι " ". Τότε ορίηεται μια νζα ςυνάρτθςθ, θ μζςω τθσ οποίασ το κάκε ιςχφει y. : A με Η νζα αυτι ςυνάρτθςθ λζγεται αντίςτροφθ τθσ. y y A αντιςτοιχίηεται
Διαβάστε περισσότεραΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ
ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ Οδηγός Χρήσης Εφαρμογής Ελέγχου Προσφορών Αφοφ πιςτοποιθκεί ο λογαριαςμόσ που δθμιουργιςατε ςτο πρόγραμμα ωσ Πάροχοσ Προςφορϊν, κα λάβετε ζνα e-mail με
Διαβάστε περισσότεραΆςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:
2 ο Σετ Ασκήσεων Δομές Δεδομένων - Πίνακες Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα: 2 3 4 5 3 4 5 6 4 5 6 7 5 6 7 8
Διαβάστε περισσότεραΕγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)
Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Ιοφνιοσ 2013 Περιεχόμενα: Ειςαγωγή... 3 1.Εθνικό Τυπογραφείο... 3 1.1. Είςοδοσ... 3 1.2. Αρχική Οθόνη... 4 1.3. Διεκπεραίωςη αίτηςησ...
Διαβάστε περισσότεραΠρογραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων
Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων 19. Αλφαριθμητικά II Ιωάννθσ Κατάκθσ Αλφαρικμθτικά ςτθ C Ζνα string είναι μία ακολουκία αλφαρικμθτικϊν χαρακτήρων, ςθμείων ςτίξθσ κτλ. Π.χ. Hello How are you?
Διαβάστε περισσότεραΗ γλώςςα προγραμματιςμού C
Η γλώςςα προγραμματιςμού C Οι εντολζσ επανάλθψθσ (while, do-while, for) Γενικά για τισ εντολζσ επανάλθψθσ Συχνά ςτο προγραμματιςμό είναι επικυμθτι θ πολλαπλι εκτζλεςθ μιασ ενότθτασ εντολϊν, είτε για ζνα
Διαβάστε περισσότεραΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ
ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ ελιδοποίθςθ (1/10) Σόςο θ κατάτμθςθ διαμεριςμάτων ςτακεροφ μεγζκουσ όςο και θ κατάτμθςθ διαμεριςμάτων μεταβλθτοφ και άνιςου μεγζκουσ δεν κάνουν
Διαβάστε περισσότεραΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου
ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ Ειρινθ Φιλιοποφλου Ειςαγωγι Ο Παγκόςμιοσ Ιςτόσ (World Wide Web - WWW) ι πιο απλά Ιςτόσ (Web) είναι μία αρχιτεκτονικι για τθν προςπζλαςθ διαςυνδεδεμζνων εγγράφων
Διαβάστε περισσότεραΕγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες)
Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Περιφέρειες) Ιούνιοσ 2013 Περιεχόμενα: Ειςαγωγή... 3 1. Περιφζρεια... 3 1.1 Διαχειριςτήσ Αιτήςεων Περιφζρειασ... 3 1.1.1. Είςοδοσ... 3 1.1.2. Αρχική
Διαβάστε περισσότεραΕγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)
Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο) Πάτρα, 2013 Περιεχόμενα: Ειςαγωγή... 4 1. Επιμελητήριο... Error! Bookmark not defined. 1.1 Διαχειριςτήσ Αιτήςεων Επιμελητηρίου...
Διαβάστε περισσότεραΜάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ
Μάκθςθ Κατανομϊν Πικανότθτασ και Ομαδοποίθςθ Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ 1 Μάκθςθ κατανομισ πικανότθτασ Σε όλθ τθν ανάλυςθ μζχρι τϊρα ζγινε ςιωπθρά θ παραδοχι ότι γνωρίηουμε
Διαβάστε περισσότεραΔομζσ Δεδομζνων Πίνακεσ
Δομζσ Δεδομζνων Πίνακεσ Διάλεξθ 2 Περιεχόμενα Πίνακεσ: Οριςμοί, Γενικζσ ζννοιεσ Αποκικευςθ πινάκων Ειδικζσ μορφζσ πινάκων Αλγόρικμοι Αναηιτθςθσ Σειριακι Αναηιτθςθ Δυαδικι Αναηιτθςθ Οριςμοί, Γενικζσ ζννοιεσ
Διαβάστε περισσότεραΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία
ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ Εργονομία, ωςτι ςτάςθ εργαςίασ, Εικονοςτοιχείο (pixel), Ανάλυςθ οκόνθσ (resolution), Μζγεκοσ οκόνθσ Ποιεσ επιπτϊςεισ μπορεί να ζχει θ πολφωρθ χριςθ του υπολογιςτι ςτθν
Διαβάστε περισσότεραΘΕΜΑ Α /25 (A1)Χαρακτηρίςτε τισ παρακάτω προτάςεισ ωσ (Σ)ωςτζσ ή (Λ)άθοσ
Μάθημα: ΔΙΚΣΤΑ Τάξη Γ Λυκείου, ΕΠΑΛ Καθηγητήσ : ιαφάκασ Γιϊργοσ Ημερομηνία : 21/02/2016 Διάρκεια: 3 ϊρεσ ΘΕΜΑ Α /25 (A1)Χαρακτηρίςτε τισ παρακάτω προτάςεισ ωσ (Σ)ωςτζσ ή (Λ)άθοσ 1. Σο πρωτόκολλο RARP μετατρζπει
Διαβάστε περισσότεραMPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9 ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές
Διαβάστε περισσότεραΔζντρα. Δομζσ Δεδομζνων
Δζντρα Δομζσ Δεδομζνων Περιεχόμενα Δζντρα Γενικζσ ζννοιεσ Κόμβοσ ενόσ δζντρου Δυαδικά δζντρα αναηιτθςθσ Αναηιτθςθ Κόμβου Ειςαγωγι ι δθμιουργία κόμβου Δζντρα Γενικζσ ζννοιεσ Οι προθγοφμενεσ δομζσ που εξετάςτθκαν
Διαβάστε περισσότεραΣ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V
Σ ΤΑΤ Ι Σ Τ Ι Κ Η i Statisticum collegium V Στατιςτική Συμπεραςματολογία Ι Σημειακζσ Εκτιμήςεισ Διαςτήματα Εμπιςτοςφνησ Στατιςτική Συμπεραςματολογία (Statistical Inference) Το πεδίο τθσ Στατιςτικισ Συμπεραςματολογία,
Διαβάστε περισσότεραΥπολογιστικές Μέθοδοι Ανάλυσης και Σχεδιασµού Υπολογιστικό Εργαστήριο Μάθηµα 1 Εισαγωγή στο MPI http://ecourses.chemeng.ntua.gr/courses/computational_methods Αρχιτεκτονικές Παράλληλων Υπολογιστών Shared
Διαβάστε περισσότεραΗλεκτρονικι Υπθρεςία Ολοκλθρωμζνθσ Διαχείριςθσ Συγγραμμάτων και Λοιπϊν Βοθκθμάτων
Ηλεκτρονικι Υπθρεςία Ολοκλθρωμζνθσ Διαχείριςθσ Συγγραμμάτων και Λοιπϊν Βοθκθμάτων ΟΔΗΓΟΣ ΕΦΑΡΜΟΓΗΣ ΒΙΒΛΙΟΘΗΚΩΝ ΙΔΡΥΜΑΤΩΝ 1/13 2/13 Οδθγίεσ Χριςθσ Εφαρμογισ Βιβλιοκθκϊν Ιδρυμάτων 1. Είςοδοσ ςτθν Εφαρμογι
Διαβάστε περισσότεραΤοπολογίεσ. Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ
Τοπολογίεσ Κώςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Τοπολογίεσ ςτο MPI Γιατί να ορίςω τοπολογία; Βολεφει ςε ςυγκεκριμζνουσ αλγορίκμουσ (πχ. Επεξεργαςία εικόνασ ι ςιματοσ) Ποιοί είναι οι γείτονζσ
Διαβάστε περισσότεραΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β.
ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Εισαγωγή...
Διαβάστε περισσότεραΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι
ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Αρχείο (File) Φάκελοσ (Folder) Διαχειριςτισ Αρχείων (File Manager) Τφποι Αρχείων Σε τι εξυπθρετεί θ οργάνωςθ των εργαςιϊν μασ ςτουσ υπολογιςτζσ; Πϊσ κα οργανϊςουμε
Διαβάστε περισσότεραΚατανεμημένος και Παράλληλος Προγραμματισμός MPI. Γρήγορος οδηγός αναφοράς 1/4/2017
Κατανεμημένος και Παράλληλος Προγραμματισμός Ηλίας Κ. Σάββας Καθηγητής Τμήμα Μηχανικών Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας Email: savvas@teilar.gr MPI Διαμοίραση (MPI_Scatter) και συλλογή δεδομένων (MPI_Gather)
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «Εισαγωγή στο MPI» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων Υψηλών
Διαβάστε περισσότεραΕπικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 Επικοινωνία Πολλάκατανεµηµένα συστήµατα υλοποιούνται πάνω από ένα απλό µοντέλο µηνυµάτων επικοινωνίας,
Διαβάστε περισσότεραΕΡΓΑΣΗΡΙΟ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ
Στο εργαςτιριο αυτό κα δοφμε πωσ μποροφμε να προςομοιϊςουμε μια κίνθςθ χωρίσ τθ χριςθ εξειδικευμζνων εργαλείων, παρά μόνο μζςω ενόσ προγράμματοσ λογιςτικϊν φφλλων, όπωσ είναι το Calc και το Excel. Τα δφο
Διαβάστε περισσότεραVirtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.
Virtualization Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format. Το virtualization πρόκειται για μια τεχνολογία, θ οποία επιτρζπει το διαχωριςμό
Διαβάστε περισσότεραΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι
Παράςταςη κινητήσ υποδιαςτολήσ ςφμφωνα με το πρότυπο ΙΕΕΕ Δρ. Χρήστος Ηλιούδης το πρότυπο ΙΕΕΕ 754 ζχει χρθςιμοποιθκεί ευρζωσ ςε πραγματικοφσ υπολογιςτζσ. Το πρότυπο αυτό κακορίηει δφο βαςικζσ μορφζσ κινθτισ
Διαβάστε περισσότεραΕγχειρίδιο Χρήςησ Support
Εγχειρίδιο Χρήςησ Support Περιεχόμενα 1) Αρχικι Σελίδα...2 2) Φόρμα Σφνδεςθσ...2 3) Μετά τθ ςφνδεςθ...2 4) Λίςτα Υποκζςεων...3 5) Δθμιουργία Νζασ Υπόκεςθσ...4 6) Σελίδα Υπόκεςθσ...7 7) Αλλαγι Κωδικοφ...9
Διαβάστε περισσότεραΜάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ
Μάθημα 9 ο ΤΕΧΝΙΚΕΣ ΔΙΑΧΕΙΡΙΣΗΣ ΕΙΚΟΝΙΚΗΣ ΜΝΗΜΗΣ Ειςαγωγό Όπωσ είδαμε, ο χϊροσ εικονικϊν διευκφνςεων μνιμθσ που χρθςιμοποιεί κάκε διεργαςία, είναι αρκετά μεγαλφτεροσ από το χϊρο των φυςικϊν διευκφνςεων.
Διαβάστε περισσότεραΕισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper.
Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση
Διαβάστε περισσότεραΕιςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου
Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό Βαγγζλθσ Οικονόμου Περιεχόμενα Πλθροφορίεσ Μακιματοσ Δομθμζνοσ Προγραμματιςμόσ (Οριςμοί, Γενικζσ Ζννοιεσ) Αλγόρικμοι και Ψευδοκϊδικασ Γλϊςςα προγραμματιςμοφ C Πλθροφορίεσ
Διαβάστε περισσότεραΟδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ
Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ Αυτζσ οι οδθγίεσ ζχουν ςτόχο να βοθκιςουν τουσ εκπαιδευτικοφσ να καταςκευάςουν τισ δικζσ τουσ δραςτθριότθτεσ με το μοντζλο τθσ Αρικμογραμμισ.
Διαβάστε περισσότεραΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ
ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ ΕΙΑΓΩΓΗ Ο νζοσ δικτυακόσ τόποσ τθσ Δ.Δ.Ε. Θεςπρωτίασ παρζχει πλζον τθ δυνατότθτα τθσ καταχϊρθςθσ νζων, ειδιςεων και
Διαβάστε περισσότεραΠολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1
Πολυπλέκτες Ο πολυπλζκτθσ (multipleer - ) είναι ζνα ςυνδυαςτικό κφκλωμα που επιλζγει δυαδικι πλθροφορία μιασ από πολλζσ γραμμζσ ειςόδου και τθν κατευκφνει ςε μια και μοναδικι γραμμι εξόδου. Η επιλογι μιασ
Διαβάστε περισσότεραΕιδικά Θζματα Βάςεων Δεδομζνων
Ειδικά Θζματα Βάςεων Δεδομζνων Ενότητα 11: Αντικειμενοςτραφήσ και αντικείμενοςχεςιακζσ βάςεισ Δρ. Τςιμπίρθσ Αλκιβιάδθσ Τμιμα Μθχανικϊν Πλθροφορικισ ΤΕ Άδειεσ Χρήςησ Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΔιαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ
Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ Οι παρακάτω οδθγίεσ αφοροφν το χριςτθ webdipe. Για διαφορετικό λογαριαςμό χρθςιμοποιιςτε κάκε φορά το αντίςτοιχο όνομα χριςτθ. = πατάμε αριςτερό κλικ ςτο Επιςκεφκείτε
Διαβάστε περισσότεραΡρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων. 18. Αλφαριθμητικά. Ιωάννθσ Κατάκθσ. ΕΡΛ 032: Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων
Ρρογραμματιςμόσ Μεκόδων Επίλυςθσ Ρροβλθμάτων 18. Αλφαριθμητικά Ιωάννθσ Κατάκθσ Αλφαρικμθτικά o Ζνα string είναι μία ακολουκία χαρακτιρων, ςθμείων ςτίξθσ κτλ Hello How are you? 121212 *Apple#123*% Σιμερα
Διαβάστε περισσότεραΕιςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν. Ειςαγωγι ςτθν Python
Ειςαγωγι ςτθν Επιςτιμθ Υπολογιςτϊν Ειςαγωγι ςτθν Python Γ Μζροσ Modules, Αντικειμενοςτραφισ Προγραμματιςμόσ ςτθν Python, Classes, Objects, Αλλθλεπίδραςθ με αρχεία Ειςαγωγι αρκρωμάτων (modules): import
Διαβάστε περισσότεραΠανεπιςτιμιο Κφπρου ΟΙΚ 223: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων:
Πανεπιςτιμιο Κφπρου ΟΙΚ 3: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων: Φάμπιο Αντωνίου τοιχεία Επικοινωνίασ: email: fantoniou@aueb.gr ; fabio@ucy.ac.cy Σθλ:893683 Προςωπικι Ιςτοςελίδα: fantoniou.wordpress.com
Διαβάστε περισσότεραΟδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα
Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα Αυτζσ οι οδθγίεσ ζχουν ςτόχο λοιπόν να βοθκιςουν τουσ εκπαιδευτικοφσ να καταςκευάςουν τισ δικζσ τουσ δραςτθριότθτεσ με το μοντζλο του Άβακα. Παρουςίαςη
Διαβάστε περισσότεραΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν
ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν Τι είναι θ Γραμμι Εντολϊν (1/6) Στουσ πρϊτουσ υπολογιςτζσ, και κυρίωσ από τθ δεκαετία του 60 και μετά, θ αλλθλεπίδραςθ του χριςτθ με τουσ
Διαβάστε περισσότεραΟδηγίεσ για την πρόςβαςη των δικαιοφχων ςτο ΟΠΣΑΑ
Οδηγίεσ για την πρόςβαςη των δικαιοφχων ςτο ΟΠΣΑΑ 1. Ειςαγωγή Για κάκε Δικαιοφχο που κα πρζπει να ζχει πρόςβαςθ ςτο ΟΠΣΑΑ τθσ περιόδου 2014-2020, απαιτείται η εγγραφή του Φορζα ςτο Σφςτημα Διαχείριςησ
Διαβάστε περισσότεραMPI: Message Passing Interface
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων MPI: Message Passing Interface 9ο Εξάμηνο Αρχιτεκτονική κοινής μνήμης Οι επεξεργαστές έχουν
Διαβάστε περισσότεραHY437 Αλγόριθμοι CAD
HY437 Αλγόριθμοι CAD Διδάςκων: Χ. Σωτηρίου http://inf-server.inf.uth.gr/courses/ce437/ 1 Περιεχόμενα Κανονικζσ Μορφζσ Οριςμόσ των Δυαδικών Διαγραμμάτων Αποφάςεων (Binary Decision Diagrams BDDs) Αναπαράςταςθ
Διαβάστε περισσότεραΟνοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ
Ονοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ ΘΕΜΑ 1 Ο Α) Ερωτισεις τφπου ωστοφ-λάκους 1. Κάκε βρόχος Για μπορεί να μετατραπεί σε Όσο 2. Κάκε βρόχος που υλοποιείται με τθν εντολι Όσο...επανάλαβε μπορεί να γραφεί και
Διαβάστε περισσότεραVisual C Express - Οδηγός Χρήσης
Visual C++ 2008 Express - Οδηγός Χρήσης Ζερβός Μιχάλης, Πρίντεζης Νίκος Σκοπόσ του οδθγοφ αυτοφ είναι να παρουςιάςει τισ βαςικζσ δυνατότθτεσ του Visual C++ 2008 Express Edition και πωσ μπορεί να χρθςιμοποιθκεί
Διαβάστε περισσότεραΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν
ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν Τπόβακρο (1/3) τουσ παλαιότερουσ υπολογιςτζσ θ Κεντρικι Μονάδα Επεξεργαςίασ (Κ.Μ.Ε.) μποροφςε κάκε ςτιγμι να εκτελεί μόνο ζνα πρόγραμμα τουσ ςφγχρονουσ
Διαβάστε περισσότεραΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL)
ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL) Ανοίγουμε το πρόγραμμα περιιγθςθσ ιςτοςελίδων (εδϊ Internet Explorer). Αν θ αρχικι ςελίδα του προγράμματοσ δεν είναι θ ςελίδα
Διαβάστε περισσότεραΕγκατάσταση & Διαχείριση Joomla στο Π.Σ.Δ. ΣΥΜΒΟΥΛΟ ΡΛΗΟΦΟΙΚΗΣ Ν. ΣΕΩΝ & ΚΕ.ΡΛΗ.ΝΕ.Τ. Ν. ΣΕΩΝ
στο Π.Σ.Δ. ΣΥΜΒΟΥΛΟ ΡΛΗΟΦΟΙΚΗΣ Ν. ΣΕΩΝ & Ν. ΣΕΩΝ Ιςτορικι Αναδρομι 1 Σεπτεμβρίου 2005: Γεννικθκε το όνομα Joomla, προιλκε από τθ λζξθ Jumla που ςτα Σουαχίλι ςθμαίνει «όλοι μαηί» 15 Σεπτεμβρίου 2005: Κυκλοφορεί
Διαβάστε περισσότεραΧΗΥΙΑΚΟ ΔΚΠΑΙΔΔΤΣΙΚΟ ΒΟΗΘΗΜΑ «ΥΤΙΚΗ ΘΔΣΙΚΗ ΚΑΙ ΣΔΦΝΟΛΟΓΙΚΗ ΚΑΣΔΤΘΤΝΗ» ΦΥΣΙΚΗ ΘΔΤΙΚΗΣ ΚΑΙ ΤΔΧΝΟΛΟΓΙΚΗΣ ΚΑΤΔΥΘΥΝΣΗΣ ΘΔΜΑ Α ΘΔΜΑ Β
4 o ΔΙΓΩΝΙΜ ΠΡΙΛΙΟ 04: ΔΝΔΔΙΚΣΙΚΔ ΠΝΣΗΔΙ ΦΥΣΙΚΗ ΘΔΤΙΚΗΣ ΚΙ ΤΔΧΝΟΛΟΓΙΚΗΣ ΚΤΔΥΘΥΝΣΗΣ 4 ο ΔΙΓΩΝΙΣΜ ΔΝΔΔΙΚΤΙΚΔΣ ΠΝΤΗΣΔΙΣ ΘΔΜ. β. β 3. α 4. γ 5. α.σ β.σ γ.λ δ.σ ε.λ. ΘΔΜ Β Σωςτι είναι θ απάντθςθ γ. Έχουμε ελαςτικι
Διαβάστε περισσότεραΔιαδικασία με βήματα. 1. Αλλάηω το χρϊμα ςκθνικοφ ςε γκρι(#3333).
Διαδικασία με βήματα 1. Αλλάηω το χρϊμα ςκθνικοφ ςε γκρι(#3333). 2. Διαλζγω το Polystar Tool. Από τα Options κάνω το Polygon ςε Star και τα υπόλοιπα όπωσ είναι. Ζωγραφίηω ζνα αςτζρι πάνω αριςτερά. Fill
Διαβάστε περισσότεραΦΤΛΛΟ ΕΡΓΑΙΑ ΤΠΗΡΕΙΑ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΥΤΔΡΟΜΕΙΟΤ
ΦΤΛΛΟ ΕΡΓΑΙΑ ΤΠΗΡΕΙΑ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΥΤΔΡΟΜΕΙΟΤ E-MAIL Ε ΣΟΠΙΚΟ ΔΙΚΣΤΟ LAN ( ΠΡΟΟΜΕΙΩΗ ΜΕ ΣΟ ΛΟΓΙΜΙΚΟ FILIUS ) ΔΗΜΙΟΤΡΓΟ: ΑΡΑΜΠΑΣΖΗ ΠΑΝΑΓΙΩΣΗ ΒΗΜΑ 1. Ανοίξτε τθ εφαρμογι προςομοίωςθσ δικτφων Filius ςτον
Διαβάστε περισσότεραΙδιότθτεσ πεδίων Γενικζσ.
Οι ιδιότθτεσ των πεδίων διαφζρουν ανάλογα με τον τφπο δεδομζνων που επιλζγουμε. Ορίηονται ςτο κάτω μζροσ του παρακφρου ςχεδίαςθσ του πίνακα, ςτθν καρτζλα Γενικζσ. Ιδιότθτα: Μζγεκοσ πεδίου (Field size)
Διαβάστε περισσότερα