Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός Μάθημα 8 ο & 9 ο 1 & 8/12/2009

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

Download "Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός Μάθημα 8 ο & 9 ο 1 & 8/12/2009"

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ΙΙ Β. Δημακόπουλος Μεταβίβαση μηνυμάτων Κεφάλαιο VIΙΙ Β. Δημακόπουλος Προγραμματίζοντας με μεταβίβαση μηνυμάτων Δεν υπάρχουν κοινές μεταβλητές διεργασίες και μηνύματα Θεωρείται το πιο δύσκολο Μπορεί, όμως, να γίνει πιο αποδοτικό

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

3/5/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (ΙI) Β. Δημακόπουλος

3/5/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (ΙI) Β. Δημακόπουλος Υ07 Παράλληλα Συστήματα 2011-12 3/5/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (ΙI) Β. Δημακόπουλος MPI συλλογικές επικοινωνίες Συλλογικές επικοινωνίες (collective communications) Εκτός

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

Υ07 Παράλληλα Συστήματα /5/2016 Προγραμματισμός με μεταβίβαση μηνυμάτων

Υ07 Παράλληλα Συστήματα /5/2016 Προγραμματισμός με μεταβίβαση μηνυμάτων Υ07 Παράλληλα Συστήματα 2015-16 10/5/2016 Προγραμματισμός με μεταβίβαση μηνυμάτων «Κατηγορίες» προγραμματισμού κατανεμημένης μνήμης Sockets Απλά το αναφέρουμε Message passing (μεταβίβαση μηνυμάτων) με

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων. Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις)

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων. Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις) ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Μεταβίβαση μηνυμάτων Κεφάλαιο 5 (νέο βιβλίο) Κεφάλαιο 8 (παλιές σημειώσεις) Προγραμματίζοντας με μεταβίβαση μηνυμάτων Δεν υπάρχουν κοινόχρηστες μεταβλητές διεργασίες και μηνύματα Θεωρείται

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

30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος

30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος Υ07 Παράλληλα Συστήματα 2011-12 30/4/2012 Συστήματα κατανεμημένης μνήμης και ο προγραμματισμός τους (Ι) Β. Δημακόπουλος multicomputers, MPPs, clusters Πολυεπεξεργαστές κατανεμημένης μνήμης Ανεξάρτητοι

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

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

Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Μάθημα 7 ο 24/11/2009 Οργάμωση & εισαγωγή στομ προγραμματισμό συστημάτωμ καταμεμημέμης μμήμης Β. Δημακόπουλος multicomputers, MPPs, clusters Πολυεπεξεργαςτζσ

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

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

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

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

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

Non-blocking Επικοινωνίεσ και Buffering. Κώςτασ Διαμαντάρασ ΤΕΙ Θεςςαλονίκθσ 2011 Non-blocking Επικοινωνίεσ και Buffering Κώςτασ Διαμαντάρασ ΤΕΙ Θεςςαλονίκθσ 2011 Η χριςθ buffer Ροφ πάνε τα δεδομζνα μετά το send? Διεργασία 1 Διεργασία 2 A Buffer Δίκτσο Buffer B 2 Κ. Διαμαντάρας ΤΕΙ

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

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

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

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

Προγραμματισμός με Μεταβίβαση Μηνυμάτων

Προγραμματισμός με Μεταβίβαση Μηνυμάτων 5 Προγραμματισμός με Μεταβίβαση Μηνυμάτων Σε αυτό το κεφάλαιο του βιβλίου θα ασχοληθούμε με το προγραμματιστικό μοντέλο μεταβίβασης μηνυμάτων (message passing model), κατά πολλούς το πιο ευρέως χρησιμοποιούμενο

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

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

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

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

Ανταλλαγι Μθνυμάτων. Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ

Ανταλλαγι Μθνυμάτων. Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Ανταλλαγι Μθνυμάτων Κϊςτασ Διαμαντάρασ Τμιμα Πλθροφορικισ ΤΕΙ Θεςςαλονίκθσ Στζλνω και λαμβάνω μθνφματα Θέματα: Προσ ποιόν ςτζλνονται τα δεδομζνα; Τι ςτζλνεται; Πϊσ ο δζκτθσ αναγνωρίηει τα δεδομζνα; 2 Πζραςμα

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

ςυςτιματα γραμμικϊν εξιςϊςεων

ςυςτιματα γραμμικϊν εξιςϊςεων κεφάλαιο 7 Α ςυςτιματα γραμμικϊν εξιςϊςεων αςικζσ ζννοιεσ Γραμμικά, λζγονται τα ςυςτιματα εξιςϊςεων ςτα οποία οι άγνωςτοι εμφανίηονται ςτθν πρϊτθ δφναμθ. Σα γραμμικά ςυςτιματα με δφο εξιςϊςεισ και δφο

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κατανεμημένος και Παράλληλος Προγραμματισμός MPI. MPI Απλές εντολές 03/13/2016. Οδηγίες αποστολής / παραλαβής μηνυμάτων, Υπολογισμός του π (

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Αςφάλεια και Προςταςία Δεδομζνων

Αςφάλεια και Προςταςία Δεδομζνων Αςφάλεια και Προςταςία Δεδομζνων Κρυπτογράφθςθ υμμετρικι και Αςφμμετρθ Κρυπτογραφία Αλγόρικμοι El Gamal Diffie - Hellman Σςιρόπουλοσ Γεώργιοσ ΣΙΡΟΠΟΤΛΟ ΓΕΩΡΓΙΟ 1 υμμετρικι Κρυπτογραφία υμμετρικι (Κλαςικι)

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

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

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

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

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Παράςταςη ςυμπλήρωμα ωσ προσ 1 Δρ. Χρήστος Ηλιούδης Θζματα διάλεξησ ΣΤ1 Προςθεςη αφαίρεςη ςτο ΣΤ1 2 ή ΣΤ1 Ονομάηουμε ςυμπλιρωμα ωσ προσ μειωμζνθ βάςθ R ενόσ μθ προςθμαςμζνου αρικμοφ Χ = ( Χ θ-1 Χ θ-2... Χ 0 ) R ζναν άλλον αρικμό Χ'

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

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

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

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

Message Passing Interface (MPI)

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

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

Κάνουμε κλικ ςτθν επιλογι του οριηόντιου μενοφ «Get Skype»για να κατεβάςουμε ςτον υπολογιςτι μασ το πρόγραμμα του Skype.

Κάνουμε κλικ ςτθν επιλογι του οριηόντιου μενοφ «Get Skype»για να κατεβάςουμε ςτον υπολογιςτι μασ το πρόγραμμα του Skype. ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΛΟΓΑΡΙΑΜΟΤ ΣΟ SKYPE Ανοίγουμε το πρόγραμμα περιιγθςθσ ιςτοςελίδων (εδϊ Internet Explorer). Κάνουμε κλικ ςτθ γραμμι διεφκυνςθσ του προγράμματοσ και πλθκτρολογοφμε: www.skype.com Κάνουμε

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

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

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

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

Multi Logo. Προγραμματιςμόσ Η/Υ με Multi Logo. Σχεδίαςη και ανάπτυξη εφαρμογήσ κίνηςησ αντικειμζνου

Multi Logo. Προγραμματιςμόσ Η/Υ με Multi Logo. Σχεδίαςη και ανάπτυξη εφαρμογήσ κίνηςησ αντικειμζνου Multi Logo Βαθμίδα Μάθημα Αντικείμενο Τίτλοσ Διάρκεια Μορφή Διδακτικοί ςτόχοι: Επιδιωκόμενο αποτζλεςμα: Προαπαιτούμενεσ γνώςεισ: Εργαλεία Μζςα: Γυμνάςιο Πληροφορική Προγραμματιςμόσ Η/Υ με Multi Logo Σχεδίαςη

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

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

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

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

Γράφοι. Δομζσ Δεδομζνων Διάλεξθ 9

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

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

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

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

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

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

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

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

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

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

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

Message Passing Interface (MPI)

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

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

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

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

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

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f.

ΑΝΣΙΣΡΟΦΗ ΤΝΑΡΣΗΗ. f y x y f A αντιςτοιχίηεται ςτο μοναδικό x A για το οποίο. Παρατθριςεισ Ιδιότθτεσ τθσ αντίςτροφθσ ςυνάρτθςθσ 1. Η. f A τθσ f. .. Αντίςτροφθ ςυνάρτθςθ Ζςτω θ ςυνάρτθςθ : A θ οποία είναι " ". Τότε ορίηεται μια νζα ςυνάρτθςθ, θ μζςω τθσ οποίασ το κάκε ιςχφει y. : A με Η νζα αυτι ςυνάρτθςθ λζγεται αντίςτροφθ τθσ. y y A αντιςτοιχίηεται

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

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

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

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

Άςκθςθ 1θ: Να γραφεί αλγόρικμοσ που κα δθμιουργεί με τθ βοικεια διπλοφ επαναλθπτικοφ βρόχου, τον ακόλουκο διςδιάςτατο πίνακα:

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

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

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

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

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

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

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 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ΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 3: Εργονομία ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ Εργονομία, ωςτι ςτάςθ εργαςίασ, Εικονοςτοιχείο (pixel), Ανάλυςθ οκόνθσ (resolution), Μζγεκοσ οκόνθσ Ποιεσ επιπτϊςεισ μπορεί να ζχει θ πολφωρθ χριςθ του υπολογιςτι ςτθν

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

ΘΕΜΑ Α /25 (A1)Χαρακτηρίςτε τισ παρακάτω προτάςεισ ωσ (Σ)ωςτζσ ή (Λ)άθοσ

ΘΕΜΑ Α /25 (A1)Χαρακτηρίςτε τισ παρακάτω προτάςεισ ωσ (Σ)ωςτζσ ή (Λ)άθοσ Μάθημα: ΔΙΚΣΤΑ Τάξη Γ Λυκείου, ΕΠΑΛ Καθηγητήσ : ιαφάκασ Γιϊργοσ Ημερομηνία : 21/02/2016 Διάρκεια: 3 ϊρεσ ΘΕΜΑ Α /25 (A1)Χαρακτηρίςτε τισ παρακάτω προτάςεισ ωσ (Σ)ωςτζσ ή (Λ)άθοσ 1. Σο πρωτόκολλο RARP μετατρζπει

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

MPI: Message Passing Interface

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

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

Δζντρα. Δομζσ Δεδομζνων

Δζντρα. Δομζσ Δεδομζνων Δζντρα Δομζσ Δεδομζνων Περιεχόμενα Δζντρα Γενικζσ ζννοιεσ Κόμβοσ ενόσ δζντρου Δυαδικά δζντρα αναηιτθςθσ Αναηιτθςθ Κόμβου Ειςαγωγι ι δθμιουργία κόμβου Δζντρα Γενικζσ ζννοιεσ Οι προθγοφμενεσ δομζσ που εξετάςτθκαν

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

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. Statisticum collegium V

Σ ΤΑΤ Ι Σ Τ Ι Κ Η. 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 ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΕΚΔΟΣΗ 1.0 ΟΚΤΩΒΡΙΟΣ, 2017 ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΣΤO MESSAGE PASSING INTERFACE - MPI ΕΠΙΜΕΛΕΙΑ: Β. ΤΣΑΚΑΝΙΚΑΣ, Β. ΤΑΜΠΑΚΑΣ CONTENTS ΕΙΣΑΓΩΓΗ ΣΤΑ ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ... 2 Εισαγωγή...

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

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

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

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

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

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

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

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

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

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

Επικοινωνία. Message-Passing Interface (MPI) Βασικές Κλήσεις για Sockets. Μοντέλο Μεταβίβασης Μηνυµάτων. Μοντέλα Παράλληλου Υπολογισµού

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

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

ΕΡΓΑΣΗΡΙΟ ΕΦΑΡΜΟΜΕΝΗ ΠΛΗΡΟΦΟΡΙΚΗ

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

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

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

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

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

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

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

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

Εγχειρίδιο Χρήςησ Support

Εγχειρίδιο Χρήςησ Support Εγχειρίδιο Χρήςησ Support Περιεχόμενα 1) Αρχικι Σελίδα...2 2) Φόρμα Σφνδεςθσ...2 3) Μετά τθ ςφνδεςθ...2 4) Λίςτα Υποκζςεων...3 5) Δθμιουργία Νζασ Υπόκεςθσ...4 6) Σελίδα Υπόκεςθσ...7 7) Αλλαγι Κωδικοφ...9

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

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

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

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

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

Εισαγωγή. E-03: Λειτουργικά Συστήµατα ΙΙ 6. Εαρινό Εξάµηνο SUN RPC. Κλήση Αποµακρυσµένων ιαδικασιών (RPC) Σύνδεση: Port Mapper. Εισαγωγή Ε-03: Λειτουργικά Συστήµατα ΙΙ Εαρινό Εξάµηνο 2005-06 Sun RPC MPI «Sun RPC & MPI» ρ. Παναγιώτης Χατζηδούκας (Π..407/80) E-03: Λειτουργικά Συστήµατα ΙΙ 1 E-03: Λειτουργικά Συστήµατα ΙΙ 2 Κλήση

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

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

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

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

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

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

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

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ ΕΙΑΓΩΓΗ Ο νζοσ δικτυακόσ τόποσ τθσ Δ.Δ.Ε. Θεςπρωτίασ παρζχει πλζον τθ δυνατότθτα τθσ καταχϊρθςθσ νζων, ειδιςεων και

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

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1

Πολυπλέκτες. 0 x 0 F = S x 0 + Sx 1 1 x 1 Πολυπλέκτες Ο πολυπλζκτθσ (multipleer - ) είναι ζνα ςυνδυαςτικό κφκλωμα που επιλζγει δυαδικι πλθροφορία μιασ από πολλζσ γραμμζσ ειςόδου και τθν κατευκφνει ςε μια και μοναδικι γραμμι εξόδου. Η επιλογι μιασ

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

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

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

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

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

Διαχείριςθ του φακζλου public_html ςτο ΠΣΔ Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ Οι παρακάτω οδθγίεσ αφοροφν το χριςτθ webdipe. Για διαφορετικό λογαριαςμό χρθςιμοποιιςτε κάκε φορά το αντίςτοιχο όνομα χριςτθ. = πατάμε αριςτερό κλικ ςτο Επιςκεφκείτε

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

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

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

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

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

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

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

Πανεπιςτιμιο Κφπρου ΟΙΚ 223: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων:

Πανεπιςτιμιο Κφπρου ΟΙΚ 223: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων: Πανεπιςτιμιο Κφπρου ΟΙΚ 3: Μακθματικά για οικονομολόγουσ ΙΙ Διδάςκων: Φάμπιο Αντωνίου τοιχεία Επικοινωνίασ: email: fantoniou@aueb.gr ; fabio@ucy.ac.cy Σθλ:893683 Προςωπικι Ιςτοςελίδα: fantoniou.wordpress.com

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

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

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

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

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

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

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

Οδηγίεσ για την πρόςβαςη των δικαιοφχων ςτο ΟΠΣΑΑ

Οδηγίεσ για την πρόςβαςη των δικαιοφχων ςτο ΟΠΣΑΑ Οδηγίεσ για την πρόςβαςη των δικαιοφχων ςτο ΟΠΣΑΑ 1. Ειςαγωγή Για κάκε Δικαιοφχο που κα πρζπει να ζχει πρόςβαςθ ςτο ΟΠΣΑΑ τθσ περιόδου 2014-2020, απαιτείται η εγγραφή του Φορζα ςτο Σφςτημα Διαχείριςησ

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

MPI: Message Passing Interface

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

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

HY437 Αλγόριθμοι CAD

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 Express - Οδηγός Χρήσης Visual C++ 2008 Express - Οδηγός Χρήσης Ζερβός Μιχάλης, Πρίντεζης Νίκος Σκοπόσ του οδθγοφ αυτοφ είναι να παρουςιάςει τισ βαςικζσ δυνατότθτεσ του Visual C++ 2008 Express Edition και πωσ μπορεί να χρθςιμοποιθκεί

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

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

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

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

ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL)

ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL) ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL) Ανοίγουμε το πρόγραμμα περιιγθςθσ ιςτοςελίδων (εδϊ Internet Explorer). Αν θ αρχικι ςελίδα του προγράμματοσ δεν είναι θ ςελίδα

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

Εγκατάσταση & Διαχείριση Joomla στο Π.Σ.Δ. ΣΥΜΒΟΥΛΟ ΡΛΗΟΦΟΙΚΗΣ Ν. ΣΕΩΝ & ΚΕ.ΡΛΗ.ΝΕ.Τ. Ν. ΣΕΩΝ

Εγκατάσταση & Διαχείριση Joomla στο Π.Σ.Δ. ΣΥΜΒΟΥΛΟ ΡΛΗΟΦΟΙΚΗΣ Ν. ΣΕΩΝ & ΚΕ.ΡΛΗ.ΝΕ.Τ. Ν. ΣΕΩΝ στο Π.Σ.Δ. ΣΥΜΒΟΥΛΟ ΡΛΗΟΦΟΙΚΗΣ Ν. ΣΕΩΝ & Ν. ΣΕΩΝ Ιςτορικι Αναδρομι 1 Σεπτεμβρίου 2005: Γεννικθκε το όνομα Joomla, προιλκε από τθ λζξθ Jumla που ςτα Σουαχίλι ςθμαίνει «όλοι μαηί» 15 Σεπτεμβρίου 2005: Κυκλοφορεί

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

ΧΗΥΙΑΚΟ ΔΚΠΑΙΔΔΤΣΙΚΟ ΒΟΗΘΗΜΑ «ΥΤΙΚΗ ΘΔΣΙΚΗ ΚΑΙ ΣΔΦΝΟΛΟΓΙΚΗ ΚΑΣΔΤΘΤΝΗ» ΦΥΣΙΚΗ ΘΔΤΙΚΗΣ ΚΑΙ ΤΔΧΝΟΛΟΓΙΚΗΣ ΚΑΤΔΥΘΥΝΣΗΣ ΘΔΜΑ Α ΘΔΜΑ Β

ΧΗΥΙΑΚΟ ΔΚΠΑΙΔΔΤΣΙΚΟ ΒΟΗΘΗΜΑ «ΥΤΙΚΗ ΘΔΣΙΚΗ ΚΑΙ ΣΔΦΝΟΛΟΓΙΚΗ ΚΑΣΔΤΘΤΝΗ» ΦΥΣΙΚΗ ΘΔΤΙΚΗΣ ΚΑΙ ΤΔΧΝΟΛΟΓΙΚΗΣ ΚΑΤΔΥΘΥΝΣΗΣ ΘΔΜΑ Α ΘΔΜΑ Β 4 o ΔΙΓΩΝΙΜ ΠΡΙΛΙΟ 04: ΔΝΔΔΙΚΣΙΚΔ ΠΝΣΗΔΙ ΦΥΣΙΚΗ ΘΔΤΙΚΗΣ ΚΙ ΤΔΧΝΟΛΟΓΙΚΗΣ ΚΤΔΥΘΥΝΣΗΣ 4 ο ΔΙΓΩΝΙΣΜ ΔΝΔΔΙΚΤΙΚΔΣ ΠΝΤΗΣΔΙΣ ΘΔΜ. β. β 3. α 4. γ 5. α.σ β.σ γ.λ δ.σ ε.λ. ΘΔΜ Β Σωςτι είναι θ απάντθςθ γ. Έχουμε ελαςτικι

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

Διαδικασία με βήματα. 1. Αλλάηω το χρϊμα ςκθνικοφ ςε γκρι(#3333).

Διαδικασία με βήματα. 1. Αλλάηω το χρϊμα ςκθνικοφ ςε γκρι(#3333). Διαδικασία με βήματα 1. Αλλάηω το χρϊμα ςκθνικοφ ςε γκρι(#3333). 2. Διαλζγω το Polystar Tool. Από τα Options κάνω το Polygon ςε Star και τα υπόλοιπα όπωσ είναι. Ζωγραφίηω ζνα αςτζρι πάνω αριςτερά. Fill

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

ΦΤΛΛΟ ΕΡΓΑΙΑ ΤΠΗΡΕΙΑ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΥΤΔΡΟΜΕΙΟΤ

ΦΤΛΛΟ ΕΡΓΑΙΑ ΤΠΗΡΕΙΑ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΥΤΔΡΟΜΕΙΟΤ ΦΤΛΛΟ ΕΡΓΑΙΑ ΤΠΗΡΕΙΑ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΥΤΔΡΟΜΕΙΟΤ E-MAIL Ε ΣΟΠΙΚΟ ΔΙΚΣΤΟ LAN ( ΠΡΟΟΜΕΙΩΗ ΜΕ ΣΟ ΛΟΓΙΜΙΚΟ FILIUS ) ΔΗΜΙΟΤΡΓΟ: ΑΡΑΜΠΑΣΖΗ ΠΑΝΑΓΙΩΣΗ ΒΗΜΑ 1. Ανοίξτε τθ εφαρμογι προςομοίωςθσ δικτφων Filius ςτον

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

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

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

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