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

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

Download "ΠΛΗΡΟΦΟΡΙΚΗ ΥΕΤ ΕΠΙΣΤΗΜΕΣ/ΤΕΧΝΟΛΟΓΙΑ"

Transcript

1 Υπολογιστική Επιστήµη και Τεχνολογία Μιχ. ρακόπουλος Τµήµα Μαθηµατικών Εαρινό εξάµηνο 2004

2 Κεφάλαιο 1 Εισαγωγή 1.1 Προσοµοίωση Η κλασσική επιστήµη και τεχνολογία στηρίζεται : 1. Θεωρία/σχεδιασµός. 2. Πείραµα/κατασκευή. Περιορισµοί : υσκολία κατασκευή µεγάλων αεροδυναµικών σηράγγων. Κόστος κατασκευή αεροσκαφών µόνο για πειραµατισµό. Χρόνος αναµονή για κλιµατολογικές ή γαλαξιακές µεταβολές. Επικινδυνότητα νέα ϕάρµακα, κλιµατολογικά πειράµατα. Υπολογιστική επιστήµη και τεχνολογία : 3. Προσοµοίωση ϕυσικών ϕαινοµένων σε ισχυρούς υπολογιστές µε ϐάση γνωστούς ϕυσικούς νόµους και αποτελεσµατικές αριθµητικές µεθόδους. 1.2 Υπολογιστική επιστήµη και τεχνολογία (ΥΕΤ) Συνδυάζει και συµπληρώνει τη γνώση από άλλες εφαρµοσµένες επιστήµες. Συγκεκριµένα η ΥΕΤ προυποθέτει/περιλαµβάνει : γνώση περιοχής του προβλήµατος κατασκευή µαθηµατικών µοντέλων αριθµητική ανάλυση 1

3 ΕΦΑΡΜ. ΜΑΘΗΜΑΤΙΚΑ ΠΛΗΡΟΦΟΡΙΚΗ ΥΕΤ ΕΠΙΣΤΗΜΕΣ/ΤΕΧΝΟΛΟΓΙΑ Σχήµα 1.1: Η ϑέση της υπολογιστικές επιστήµης στις εφαρµοσµένες/θετικές επιστήµες. ανάπτυξη αλγορίθµων προγραµµατισµός, ανάπτυξη λογισµικού υπολογιστική προσοµοίωση (εκτέλεση προγραµµάτων) ανάλυση, αξιολόγηση και γραφική επεξεργασία αποτελεσµάτων 1.3 Πεδία εφαρµογών Μετεωρολογικές και κλιµατολογικές προβλέψεις. Καύση : σχεδιασµός µηχανών. Ρευστοδυναµική : σχεδιασµός αεροσκαφών. Αυτοµατοποίηση ηλεκτρονικού σχεδιασµού Τεχνολογία νέων υλικών οκιµές σύγκρουσης αυτοκινήτων Αστροφυσική : κοσµικά µοντέλα. Βιολογία : γονιδίωµα, δοµή πρωτεινών, σχεδιασµός ϕαρµάκων. Οικονοµικά µοντέλα αγορών Κρυπτογραφία 2

4 Υπηρεσίες διαδικτύου, µηχανές αναζήτησης. Σεισµικά µοντέλα, εξόρυξη πετρελαίου. 1.4 Μονάδες µέτρησης υπολογισµών και µνήµης Flop: αριθµητική πράξη µε πραγµατικούς (floating point operation) Flop/s: αριθµός flop ανά δευτερόλεπτο. Bytes: µέγεθος δεδοµένων ( Τυπικά µεγέθη : για πραγµατικούς διπλής ακρίβειας) Mega Mflops/s = flop/sec Mbyte = bytes Giga Gflops/s = flop/sec Gbyte = bytes Tera Tflops/s = flop/sec Tbyte = bytes Peta Pflops/s = flop/sec Pbyte = bytes Exa Eflops/s = flop/sec Ebyte = bytes 1.5 Κλιµατολογική πρόβλεψη Κλασσικό παράδειγµα µοντέλων µε πολύ υψηλές υπολογιστικές απαιτήσεις (χρόνος και µνήµη). Πρόβληµα : Υπολογισµός της συνεχούς συνάρτησης κλίµατος C x, y, z, t T, p, h, v, v, v εδοµένα : x, y, z γεωγραφικό µήκος, γεωγραφικό πλάτος και υψόµετρο t χρόνος T ϑερµοκρασία p ατµοσφαιρική πίεση h υγρασία v, v, v συνιστώσες της ταχύτητας του ανέµου. Αντιµετώπιση : ιακριτοποίηση του συνεχούς προβλήµατος : Υπολογισµός των τι- µών της συνάρτησεις σε διαθριτά σηµεία/κόµβους του πεδίου ορισµού της C, π.χ. ενός ορθογωνίου πλέγµατος που καλύπτει την επιφάνεια της γής και εκτείνεται µέχρι κάποιο ύψος στην ατµόσφαιρα (Σχ. 1.2) Αλγόριθµος πρόβλεψης για χρόνο t dt µε δεδοµένες τις συνθήκες για t. 3

5 Σχήµα 1.2: ιακριτοποίηση 1.6 Υπολογισµοί για κλιµατολογικές προβλέψεις Ενα µόνο µέρος του προβλήµατος είναι το µοντέλο της ϱοής αερίων µαζών (µε αριθµητική επίλυση των εξισώσεων Navier-Stokes). Για κάλυψη της επιφάνειας της Γης ανά 1km 1km σε 10 υψοµετρικά επίπεδα σηµεία. Αποθήκευση 6 πραγµατικών ανά σηµείο. ΤΒ 100Flop για κάθε διακριτό σηµείο. Υπολογιστικές απαιτήσεις για πρόβλεψη : σε πραγµατικό χρόνο : flop/ sec µετεωρολογική (7 ηµέρες σε 24 ώρες Gflop/s Gflop/s κλιµατολογική (50 χρόνια σε 30 ηµέρες). Tflop/s Για διπλάσια πυκνότητα σηµείων, υπολογιστικός χρόνος Ακριβή µοντέλα χρειάζονται επιπλέον να συµπεριλάβουν και άλλους πα- ϱάγοντες (ατµόσφαιρα, ωκεανοί, ϑάλασσα-πάγοι, συνθήκες ξηράς, κύκλος του άνθρακα, όζον, γεωθερµία κ.α.). Τα σηµέρινά µοντέλα της τάξης km km. 1.7 Γρήγοροι υπολογιστές/υπολογισµοί Για την αντιµετώπιση προβληµάτων αυτής της τάξης µεγέθους, χρειάζονται προφανώς γρηγορότεροι υπολογιστές, αλλά και η όσο κατά το δυνατόν καλύτερη αξιοποίηση των δυνατοτήτων τους. 4

6 Για παράδειγµα, αν ένα πρόγραµµα P κλιµατολογικής πρόβλεψης είναι 10 ϕορές αργότερο (λόγω ανεπαρκούς προγραµµατισµού) από ένα πρόγραµ- µα P, είναι προφανές ότι στο ίδιο υπολογιστικό σύστηµα, το P µπορεί να αντιµετωπίσει µεγαλύτερα (άρα και ακριβέστερα) µοντέλα. 1.8 Απόδοση υπολογιστικών συστηµάτων Ταχύτητα : Χρόνος ή καλύτερα Mflop/s. 1 Mflop/s = floating point operations / sec Benchmarks: Προγράµµατα για µέτρηση υπολογιστικών επιδόσεων (ταχύτητα επεξεργασίας, µνήµης, προσπέλασης περιφερειακών κ.λ.π) Peak: Μέγιστη ϑεωρητική ταχύτητα επεξεργασίας (δίνεται από τον κατασκευαστή) Linpack: Benchmark για ταχύτητα επεξεργασίας (επίλυση γραµµικών συστηµάτων µε µ. Gauss) Στην πράξη : PEAK >> LINPACK > πραγµατικές εφαρµογές 1.9 NEC Earth Simulator Ο ισχυρότερος υπολογιστής σήµερα (Ιαπωνία) Αρχισε να κατασκευάζεται το 1997 µε στόχο την διερεύνηση παγκόσµιων κλιµατολογικών και περιβαλλοντολογικών µοντέλων. Ολοκληρώθηκε και άρχισε να λειτουργεί το Tflop/s (87.5% της µέγιστης ϑεωρητικά απόδοσης του) σύµφωνα µε το Linpack benchmark (µόλις 700Mflop/s για ένα Pentium 4, 2GHz) Tflop/s από κώδικα ατµοσφαιρικών µοντέλων Benchmark: επίλυση γραµµικών συστηµάτων Το παρακάτω πρόγραµµα Matlab, υλοποιεί ένα τυπικό benchmark τύπου Linpack (ταχύτητα επίλυσης γραµµικών συστηµάτων). function megaflops = bench(n) A=rand(n,n); b=rand(n,1); flops(0); tic; x=a\b; t=toc; megaflops = flops/t/1.e6 ; 5

7 1.11 Benchmark: αποτελέσµατα 250 MATLAB A\b benchmark 1.2GHz x86 CPU, 256K cache Mflop/s n Παρατηρούµε ότι ϱυθµός υπολογισµού (Mflop/s) δεν είναι σταθερός (παρά µόνο για n > ) όπως ϑα περίµενε κανείς (ο αριθµός των πράξεων κινητής υποδιαστολής που εκτελεί ένας επεξεργαστής σε ένα δευτερόλεπτο, αλλάζει ανάλογα µε το µέγεθος του προβλήµατος!) Η συµπεριφορά αυτή οφείλεται στην ύπαρξη ιεραρχιών µνήµης στα σύγχρονα υπολογιστικά συστήµατα. 6

8 Κεφάλαιο 2 Ιεραρχίες µνήµης 2.1 Κατηγορίες υπολογιστικής µνήµης Ανάλογα µε την ταχύτητα προσπέλασης και την χωρητικότητα τους σχηµατί- Ϲουν την ιεραρχία που ϕαίνεται στο Σχ BYTES 100s Ks Ms Gs ΜΕΓΑΛΥΤΕΡΗ ΧΩΡΗΤΙΚΟΤΗΤΑ (bytes) ΚΜΕ ΚΑΤΑΧΩΡΗΤΕΣ CACHE RAM ΙΣΚΟΣ ΜΕΓΑΛΥΤΕΡΗ ΤΑΧΥΤΗΤΑ (nanosec) XPONOS 1s 10s 100s 10,000,000s Σχήµα 2.1: Ιεραρχίες µνήµης 2.2 Μνήµη Cache Γρήγορη µνήµη, συνήθως ενσωµατωµένη στον επεξεργαστή. Cache hit Αναφορά σε διεύθυνση µνήµης που ϐρίσκεται ήδη στο cache - ελάχιστο κόστος. Cache miss Η διέυθυνση µνήµης ΕΝ ϐρίσκεται στο cache, πρέπει να ϕέ- ϱουµε τα δεδοµένα από άλλη µνήµη (RAM, δίσκο, κλπ) - υψηλό κόστος 7

9 Η λειτουργίας της µνήµης cache (αλλά και άλλων κατηγοριών µνήµης) ϐασί- Ϲεται στην αρχή της τοπικότητας της αναφοράς (locality of reference). Σε ενα πρόγραµµα είναι πολύ µεγάλη, η πιθανότητατα αναφοράς σε δεδοµένα D: που χρησιµοποίησε προσφάτως (χρονική αναφορά), ή που ϐρίσκονται σε γειτονικές στη µνήµη ϑέσης µε τα δεδοµένα D (τοπική αναφορά). Παράδειγµα χρονικής αναφοράς είναι τα δεδοµένα σε µια επαναληπτική δοµή (for loop) που χρησιµοποιούνται πολλές ϕορές στο ίδιο χρονικό διάστηµα. Παράδειγµα τοπικής αναφοράς είναι η χρησιµοποίηση διανυσµάτων. Αν ένα πρόγραµµα, επεξεργάζεται το στοιχείο w i ένος διανύσµατος, είναι πολύ πιθανό στο επόµενο ϐήµα να χρειάζεται το w i. Οταν µεταφέρονται δεδοµένα στη µνήµη cache από την RAM, µεταφέρονται σε οµάδες (ϕορτώνονται και γειτονικές ϑέσεις στη µνήµη), µε σκοπό την πιθανή αξιοποίηση τοπικών αναφορών. 2.3 Αποθήκευση πινάκων στη µνήµη Απεικόνιση 2 πινάκων στην ΜΟΝΟ ΙΑΣΤΑΤΗ µνήµη : Fortran, Matlab C MNHMH Βέλτιστη πρόσθεση πινάκων ιαστάσεις A(n,n), B(n,n), C(n,n) Αποθήκευση κατά στήλες (Fortran, Matlab) Αλγόριθµος 1 for i=1:n, for j=1:n, A(i,j) = B(i,j) + C(i,j); 8

10 Αλγόριθµος 2 for j=1:n, for i=1:n, A(i,j)= B(i,j) + C(i,j); Πως διατρέχει την µνήµη ο κάθε αλγόριθµος? Ποιός από τους 2 είναι ποιό αποτελεσµατικός (γρήγορος) στη Fortran? Ο αλγόριθµος 2, γιατί διαχειρίζεται στοιχεία που ϐρίσκονται σε συνεχόµενες ϑέσεις της µνήµης (άρα έχουν κατά πάσα πιθανότητα ϕορτωθεί και στην cache). Τι συµβαίνει στη C (σε αποθήκευση των A, B, C κατά γραµµές)? 2.5 Ιεραρχίες µνήµης και υπολογιστικοί πυρήνες Αναγνώριση ϐασικών, σχετικά απλών πυρήνων (πράξεων) ικανών να διατυπώσουν πολύπλοκους αλγορίθµους. Π.χ. πράξεις γραµµικής άλγε- ϐρας αποτελούν τη ϐάση αριθµητικών υπολογισµών. Καθορισµός κατάλληλου interface (τρόπος κλήσης) των συναρτήσεων που υλοποιούν τους πυρήνες, και συνφωνία πάνω σε αυτό (standard). Αποτελεσµατικός προγραµµατισµός των πυρήνων σε συναρτήσεις, µε εκ- µετάλλευση των ιεραρχιών µνήµης για συγκεκριµένο υπολογιστή! (συνήθως παρέχονται από τον κατασκευαστή). BLAS: Basic Linear Algebra Subprograms: συναρτήσεις για ϐασικές πράξεις γραµµικής άλγεβρας (υπολογιστικοί πυρήνες). Σύνθετοι αριθµητικοί αλγόριθµοι προγραµµατίζονται µε κλήση σε συναρτήσεις BLAS Υπάρχουν 3 επίπεδα συναρτήσεων BLAS. 2.6 BLAS 1 Πράξεις µεταξύ διανυσµάτων (1 πίνακες) Για διανύσµατα n στοιχείων : O n πράξεις Επιστρέφουν διάνυσµα ή αριθµό Βασικές πράξεις (x, y διανύσµατα, α αριθµός): saxpy: y scal: y αx αx y (daxpy, caxpy, zaxpy) rot: x cx sy και y sx cy µε c, s κάποιο συνηµίτονο και ηµίτονο αντίστοιχα. dot: Εσωτερικό γινόµενο x T y 9

11 2.7 BLAS 2 Πράξεις µεταξύ ενός πίνακα (2 ) και διανύσµατος (ή διανυσµάτων). Για πίνακα n n: O n πράξεις Επιστρέφουν διάνυσµα ή πίνακα Βασικές πράξεις (x, y διανύσµατα, A πίνακας): Γινόµενο πίνακα µε διάνυσµα : y y Ax, γενικά ο A είναι m n. (sgemv, dgemv,...) A A yx T Επίλυση τριγωνικών συστηµάτων : Επιλύει Tx y ως προς το x, όπου T τριγωνικός πίνακας. 2.8 BLAS 3 Πράξεις µεταξύ πινάκων που επιστρέφουν πίνακες. διανυσµάτων). Βασικές πράξεις (A, B, C πίνακες): Γινόµενο πινάκων : C C AB (συµφωνία διαστάσεων). Ο πυρήνας gemm στην πράξη είναι πιο γενικός και υπολογίζει C ϐc α A B µε α, beta αριθµούς και για δυνατότητα αναστρο- ϕής. Επίλυση τριγωνικών συστηµάτων µε πίνακες : Επιλύει TX Y ως προς το X, για τριγωνικό πίνακα T. 2.9 Ιστορική ανάπτυξη των πυρήνων BLAS Μαθηµατικά οι αλγόριθµοι είναι ισοδύναµοι (BLAS1 BLAS2 BLAS3). Αλλά η υπολογιστική τους απόδοση διαφέρει όπως ϕαίνεται και από το παρακάτω σχήµα. Mflop/s BLAS3 BLAS2 BLAS1 k n 10

12 Ιστορικά αναπτύχθηκαν για µέγιστη απόδοση στους υπολογιστές της εποχής τους (BLAS1 (ca 1970), BLAS2 (ca. 1985), BLAS3 (1990)) 2.10 Ενα απλό µοντέλο µνήµης Εστω ιεραρχία µνήµς 2 επιπέδων : µόνο γρήγορη (ΓΜ) και αργή µνήµη (ΑΜ). Ολα τα δεδοµένα αρχικά στην αργή µνήµη. m αριθµός δεδοµένων που κινούνται ανάµεσα στις 2 µνήµες t m χρόνος για πράξεις µε δεδοµένα στην αργή µνήµη f αριθµός αριθµητικών πράξεων t f χρόνος ανά αριθµητική πράξη (στη γρήγορη µνήµη) << t m. q f/m µέσος όρος flop ανά προσπέλαση της αργής µνήµης. Ελάχιστος δυνατός χρόνος : τ ft f όταν όλα τα δεδοµένα είναι στη γρήγορη µνήµη. Πραγµατικός χρόνος : T ft f nt m τ t m / t f q q T τ 2.11 Ανάλυση ταχύτητας στους πυρήνες BLAS m Αιτιολογία για m f q saxpy n ιάβασε x, y, γράψε y n 2/3 sgemv n O n ιάβασε A n 2 sgemm n ιάβασε A, B, C, γράψε C n n/ Η σηµασία του q: για κάθε λέξη που ϕέρνουµε απο ΑΜ, µπορούµε να κάνουµε το πολύ q πράξεις στη γρήγορη µνήµη. Οσο µεγαλύτερο το q τόσο περισσότερο ο αλγόριθµος δουλεύει στην ΓΜ. Αν κάθε flop χρειάζεται 2 αναφορές στη µνήµη (ΑΜ ή ΓΜ): miss ratio q πλήθος αναφορών στην ΑΜ σύνολο αναφορών σε ΑΜ και ΓΜ m f q 2.12 Παράδειγµα Ο υπολογισµός της συνάρτησης H στα στοιχεία του διανύσµατος x, και εύρεση του αθροίσµατος των τιµών i H x i : 11

13 Παραδοχές : s = 0; for i = 1:n, s = s + H(x(i)); end t f Mflop/s στη γρήγορη µνήµη t m H κοστίζει q flops Το διάνυσµα x ϐρίσκεται στην ΑΜ Συµπεράσµατα : m n και f qn T διάβασµαx υπολογισµοί n qn Mflop/s f/t q/ q q T τ 2.13 Πολ/σµός πίνακα µε διάνυσµα y = y + A*x y(i) A(i,:) = + * y(i) x(:) Αλγόριθµος : Ανάλυση : for i=1:n for j=1:n y(i) = y(i) + A(i,j)*x(j) end end 12

14 % read x(1:n) into fast memory % read y(1:n) into fast memory for i = 1:n % read A(i,:) into fast memory for j=1:n y(i) = y(i) + A(i,j)*x(j) end end % write y(1:n) back to slow memory m αναφορές στην ΑΜ n n f αριθµός flops n q f/m. Ο αλγόριθµος περιορίζεται από την προσπέλαση σε ΑΜ Πολ/σµός πινάκων C = C + A*B C(i,j) C(i,j) A(i,:) B(:,j) Αλγόριθµος : Ανάλυση : = + for i=1:n for j=1:n for k=1:n C(i,j) = C(i,j) + A(i,k)*B(k,j) end end end for i=1:n % read A(i,:) into fast memory for j=1:n % read C(i,j) into fast memory % read B(:,j) into fast memory for k=1:n C(i,j) = C(i,j) + A(i,k)*B(k,j) end % write C(i,j) back to slow memory end end * 13

15 Αναφορές σε ΑΜ ιάβασε κάθε στήλη του B n ϕορές ιάβασε κάθε στήλη του A µια ϕορά για κάθε i ιάβασε και γράψε κάθε στοιχείο του C µια ϕορά n n m n n q f/m n / n n εν υπάρχει ϐελτίωση σε σχε ση µε πολ/σµο πίνακα µε διάνυσµα. n 2.15 Πολ/σµός πινάκων - µε χρήση υποπινάκων Εστω A, B, C N N πίνακες από b b υποπίνακες µε b n/n (blocksize) b n C(i,j) C(i,j) A(i,k) = + * B(k,j) n = b*n Μαθηµατικά ισοδύναµος τρόπος 2.16 Πολ/σµός πινάκων - µε χρήση υποπινάκων for i=1:n for j=1:n % read C(i,j) into fast memory for k=1:n % read A(i,:) into fast memory % read B(:,j) into fast memory C(i,j) = C(i,j) + A(i,k)*B(k,j) %blocks end % write C(i,j) back to slow memory end end Αναφορές σε ΑΜ ιάβασε κάθε block του B, N ϕορές (N n/n n/n) ιάβασε κάθε block του A, N ϕορές ιάβασε και γράψε κάθε block του C µια ϕορά m N n N n n N n 14

16 q f/m n / N n n/n b για n >>> Βελτίωση της απόδοσης µε αύξηση του b (σύγκρ. µε πολ/σµό πίνακα διάνυσµα, η πίνακα πίνακα χωρίς blocks, q ). Περιορισµός : Και οι 3 υποπίνακες των A, B, C πρέπει να «χωράνε» στην ΓΜ (cache): b < M, άρα q b M/ Θεώρηµα : Οποιαδήποτε προσεταιριστική αναδιοργάνωση του παραπάνω αλγορίθµου περιορίζεται από q O M 2.17 Ο αλγόριθµος του Strassen Ο συνήθης αλγόριθµος πολ/σµού πινάκων (µε ή χωρίς χρήση υποπινάκων) έχει O n flop Ο Strassen ανακάλυψε ένα ασυµπτωτικά καλύτερο αλγόριθµο µε O n. flop Για πίνακες (σύνήθως απαιτούνται 8 πολ/σµοί), Εστω M AB και Τότε p a a b b p a b b p a a b b p a b b p a a b b p a a b p a a b m p p p p m p p m p p m p p p p Γενίκευση για n n πίνακες µε υποπίνακες : χωρισµός σε υποπίνακες κάθε ϕορά και χρήση αναδροµικής συνάρτησης, για n, n/, n/,..., Αλγόριθµος : function M = strassen(a, B, n) if n==1, M = A*B; return else % partition A = [A11 A12; A21 A22] % partition B = [B11 B12; B21 B22] P1 = strassen(a12-a22, B21+B22, n/2); P2 = strassen(a11+a22, B11+B22, n/2); P3 = strassen(a11-a21, B11+B12, n/2); 15

17 Ανάλυση : P4 = strassen(a11+a12, B22, n/2); P5 = strassen(a11, B21-B11, n/2); P6 = strassen(a22, B21-B11, n/2); P7 = strassen(a21+a22, B11, n/2); M = [P1+P2-P4+P6, P4+P5; P6+P7, P2-P3+P5-P7]; return end T n Κόστος για πίνακες n n T n/ Με αλλαγή µεταβλητής m n, και T m T n : T m T m m n/ δίνει τελικά T n O n log O n. 100δες ϕορές γρηγορότερος για µεγάλα n. ιαθέσιµος σε πολλές ϐιβλιοθήκες Λιγότερο ακριβής (σφάλµατα στρογγύλευσης) Αλλοι αλγόριθµοι πολ/σµου (παγκόσµιο record O n Τεχνικές για ϐελτίωση απόδοσης επεξεργαστών A B C D t Σχήµα 2.2: Pipelining Ιεραρχίες µνήµης 16

18 Παράλληλη επεξεργασία µέσα σε ένα επεξεργαστή Πολλαπλές λειτουργικές µονάδες που δουλεύουν παράλληλα. Π.χ. αν ένας επεξεργαστής διαθέτει δύο µονάδες για πολλαπλασιασµούς, τότε ο υπολογισµός των γινοµένων ac και bd στην έκφραση D ac bd γίνεται παράλληλα. Pipelining Αν ένας υπολογισµός αποτελείται από διακριτές ϕάσεις που εκτελούνται πολλές ϕορές και από διαφορετικές µονάδες επεξεργασίας, τότε είναι δυνατή η ταυτόχρονη λειτουργία διαφορετικών µονάδων από διαφορετικές διεργασίες ή δεδοµένα. Για παράδειγµα αν καθένας από τους υπολογισµούς A, B, C, D του Σχ. 2.2 εκτελείται σε 3 στάδια µε χρονική διάρκεια 30, 40 και 20 µονάδες χρόνου σε κάθε στάδιο, τότε : Αν για παράδειγµα ο B ξεκίναγε µόνο όταν ο προηγούµενος του A είχε ολοκληρώσει ΚΑΙ τα 3 στάδια, τότε ο D ϑα τέλειωνε 360 µονάδες χρόνου µετά την έναρξη του A (ή µε άλλα λόγια η εκτέλεση των A, B, C, D ϑα διαρκούσε 360 µ.χ.) Αν όµως εκµεταλλευτούµε την επικάλυψη υπολογισµών σε διαφο- ϱετικές µονάδες (pipelining) τότε και οι 4 υπολογισµοί ολοκληρώνονται σε 180 µονάδες χρόνου. Συνήθως τα παραπάνω αξιοποιούνται απο compilers αλλά ϐοηθάει και η «αν- ϑρώπινη» επέµβαση (ϐλ. ιεραρχίες µνήµης) MOORE S LAW Pentium x1000s transistors Pentium Pentium Pentium Pro Pentium 0 386DX Year Σχήµα 2.3: Ο νόµος του Moore 17

19 2.19 Η εξέλιξη των υπολογιστών Ο νόµος του Moore: Ο αριθµός των transistors σε ένα επεξεργαστή (άρα και η υπολογιστική ισχύς του) διπλασιάζεται καθε 18 περίπου µήνες. Υπάρχει όριο ταχύτητας σε συµβατικούς υπολογιστές? Για ϱεαλιστικά µοντέλα χρειαζόµαστε απόδοση στην τάξη τουtera (π.χ. στην κλιµατολογική πρόβλεψη) 1 Tflop/s, 1Tbyte r = 0.3mm Σχήµα 2.4: Επεξεργαστής δυνατοτήτων Tera Για συµβατικό υπολογιστή 1Tflop/s Τα δεδοµένα πρέπει να ταξιδέψουν απόσταση r από τη µνήµη στον επεξεργαστή. Για ένα δεδοµένο ανά κύκλο : ϕορές το δευτερόλεπτο µε την ταχύτητα του ϕωτός c m/s, άρα r < c/. mm Αν ϐάλουµε 1Tbyte µνήµης σε εµβαδό. mm. mm: Μια λέξη (4bytes) καταλαµβάνει 3 τετραγωνικά Angstroms, δηλ. το µέγεθος ενός µικρού ατόµου! ΛΥΣΗ: Παράλληλοι υπολογιστές / Παράλληλη επεξεργασία 18

20 Κεφάλαιο 3 Παράλληλοι υπολογιστές Η ιδέα πίσω από την παράλληλη επεξεργασία είναι απλή : δύο ή περισσόεροι επεξεργαστές που συνεργάζονται επιλύουν δεδοµένο πρόβληµα γρηγορότερα από ότι ένας. 3.1 Αρχιτεκτονικές παράλληλων επεξεργαστών Ανάλογα µε τη ϑέση/ρόλο της µνήµης του παράλληλου υπολογιστικού συστή- µατος διακρίνουµε δυο µεγάλες κατηγορίες : Υπολογιστές µε κοινή µνήµη. Ολοι οι επεξεργαστές έχουν πρόσβαση σε κοινή µνήµη µέσω κάποιου δικτύου διασύνδεσης. Οι επεξεργαστές επικοινωνούν µεταξύ τους γράφοντας σε κοινές µεταβλητές στην κοινή µνήµη (Σχ. 3.1). Υπολογιστές µε κατανεµηµένη µνήµη. Κάθε επεξεργαστής έχει αποκλειστική πρόσβαση στη µνήµη του. Οι επεξεργαστές επικοινωνούν (συνδέονται) µεταξύ τους µέσω κάποιου δικτύου διασύνδεσης (Σχ. 3.2). Ανάµεσα στα δύο αυτά άκρα υπάρχουν διάφορες παραλλαγές (π.χ. επεξεργαστές µε δική τους µνήµη αλλά και πρόσβαση σε κάποιο είδος κοινής µνήµης). Μια κατηγορία παράλληλων υπολογιστών που αξίζει να αναφερθεί είναι οι Beowulf clusters. Οι υπολογιστές αυτοί δεν είναι τίποτα άλλο από προσωπικοί υπολογιστές και σταθµοί εργασίας (workstations) που συνδέονται µεταξύ τους µε κάποιο δίκτυο και λειτουργούν σαν ένας παράλληλος υπολογιστής. Οι clusters έχουν πολύ χαµηλό κόστος (αφού αποτελούνται στην ουσία από συµβατικούς υπολογιστές) και προγραµµατίζονται σχεδόν αποκλειστικά µε ελεύθερο λογισµικό (πράγµα που µειώνει ακόµα περισσότερο το κόστος του συστήµατος). Παρά το χαµηλό κόστος τους, συναγωνίζονται σε απόδοση ειδικευµένους παράλληλους υπερυπλογιστές που κοστίζουν πολύ περισσότερο. Το δίκτυο διασύνδεσης συνδέει µεταξύ τους είτε Ϲεύγη επεξεργαστών/µνη- µών, είτε επεξεργαστές µε µνήµες. Μερικά από τα πιο συνηθισµένα δίκτυα διασύνδεσης ϕαίνονται στο Σχ

21 P0 P1 Pn ΙΚΤΥΟ ΙΑΣΥΝ ΕΣΗΣ MNHMH Σχήµα 3.1: Παράλληλοι υπολογιστές κοινής µνήµης ΙΚΤΥΟ ΙΑΣΥΝ ΕΣΗΣ P0 P1 Pn M0 M1 Mn Σχήµα 3.2: Παράλληλοι υπολογιστές κατανεµηµένης µνήµης 20

22 Σχήµα 3.3: Παραδείγµατα δικτύων διασύνδεσης Μια ιδιαίτερη κατηγορία δικτύων διασύνδεσης είναι η οικογένεια των υπερκύβων (Σχ. 3.4). Ενας υπερκύβος διάστασης d αποτελείται από d επεξεργαστές. Κάθε επεξεργαστής συνδέεται άµεσα µε d γειτονικούς του επεξεργαστές. Υπολογιστές µε κοινή µνήµη προγραµµατίζονται ευκολότερα από ότι εκείνοι µε κατανεµηµένοι µνήµη, αλλά είναι αποτελεσµατικοί µόνο για σχετικά µικρό αριθµό επεξεργαστών. Καθώς αυξάνεται ο αριθµός των επεξεργαστών δηµιουργείται συµφόρηση στην προσπέλαση της κοινής µνήµης. 3.2 Η ταξινόµηση του Flynn Τα υπολογιστικά συστήµατα κατατάσσονται ανάλογα µε τον αριθµό των ϱευ- µάτων οδηγιών και ϱευµάτων δεδοµένων σε µιά από τις παρακάτω κατηγορίες : SISD (Single Instruction Single Data) Ενα ϱεύµα εντολών που εκτελείται µε ένα µόνο ϱεύµα δεδοµένων. Είναι το µοντέλο των συµβατικών σειριακών υπολογιστών. SIMD (Single Instruction Multiple Data) Ολοι οι επεξεργαστές εκτελούν συγχρονισµένα την ίδια εντολή σε δεδοµένη χρονική στιγµή αλλά σε διαφο- ϱετικά δεδοµένα. Ενας συντονιστής επεξεργαστής καθορίζει την εντολή που ϑα εκτελέσουν όλοι οι υπόλοιποι σε διαφορετικά δεδοµένα. Το µοντέλο αυτό έιναι γνωστό και σαν data parallel και προγραµµατιστικά είναι ανάλογο µε τη γλώσσα του Matlab. Αν για παράδειγµα Ϲητήσουµε να προσθέσουµε δύο πίνακες µε την οδηγία C=A+B, κάθε επεξεργαστής προσθέτει διαφορετικούς υποπίνακες. 21

23 d = 2 d = 3 d = 4 Σχήµα 3.4: Υπερκύβοι MIMD (Multiple Instruction Multiple Data) Είναι η γενικότερη περίπτωση, όπου κάθε επεξεργαστής µπορεί να εκτελεί σε δεδοµένη χρονική στιγµή διαφορετικές εντολές σε διαφορετικά ϱεύµατα δεδοµένων. Στην κατηγορία αυτή µπορεί για παράδειγµα κάθε επεξεργαστής να εκτελεί διαφορετικό πρόγραµµα. Συνηθέστερη παραλλαγή αυτής της κατηγορίας το µοντέλο SPMD (Single Program Multiple Data όπου όλοι οι επεξεργαστές εκτελούν το ίδιο πρόγραµµα (όχι κατ ανάγκη συγχρονισµένα και µε δυνατότητα να ακολουθήσουν διαφορετικές διαδροµές π.χ. σε ένα if-else) µε διαφορετικά δεδοµένα. 22

24 Κεφάλαιο 4 Το µοντέλο BSP 4.1 Το µοντέλο BSP Το µοντέλο BSP (Bulk Synchronous Parallel) περιγράφει µε γεινκούς όρους πως υλοποιείται ένας παράλληλος υπολογισµός. Το µοντέλο δεν καθορίζει τον τρόπο µε τον οποίο υλοποιούνται οι τοπικοί υπολογισµοί (δηλ. υπολογισµοί που εκτελούνται τοπικά σε κάποιο επεξεργαστή) ούτε το είδος των επικοινωνιών. Εποµένως κάθε επεξεργαστής αντιµετωπίζεται, συνήθως, σαν ένας συµβατικός σειριακός επεξεργαστής όσον αφορά τους υπολογισµούς, που έχει επίσης τη δυνατότητα να επικοινωνεί µε οποιονδήποτε τρόπο µε τους υπόλοιπους. Ολοι οι επεξεργαστές εκτελούν το ίδιο πρόγραµµα µε διαφορετικά δεδοµένα (SPMD λειτουργία) Υπολογιστής BSP Σύµφωνα µε το µοντέλο, ένας bulk synchronouc parallel (BSP) υπολογιστής αποτελείται από : 1. Ενα σύνολο επεξεργαστών µε τοπική µνήµη. Η συνθήκη αυτή ικανοποιείται προφανώς σε συστήµατα κατανεµηµένης µνήµης, αλλά και σε συστήµατα κοινής µνήµης µε κατάλληλες προγραµµατιστικές παραδοχές που εξασφαλίζουν ότι κάθε επεξεργαστής έχει αποκλειστική πρόσβαση σε κάποια περιοχή της µνήµης. 2. Ενα δίκτυο επικοινωνίας µεταξύ επεξεργαστών. Η συνδεσµολογία του δικτύου και ο τρόπος µε τον οποίο εκφράζονται οι επικοινωνίες δεν απασχολούν το µοντέλο BSP. Η µόνη προυπόθεση είναι να υπάρχει η δυνατότητα επικοινωνίας µε οποιονδήποτε τρόπο, µεταξύ δυο οποιωνδήποτε επεξεργαστών. 3. Εναν αποτελεσµατικό µηχανισµό συγχρονισµού τύπου ϕράγµατος (barrier). Κανένας επεξεργαστης δεν µπορεί να υπερβεί το ϕράγµα, αν δεν έχουν ϕτάσει σε αυτό και όλοι οι υπόλοιποι. Τα ϕράγµατα συγχρονισµόυ 23

25 παρεµβάλλονται µεταξύ οµάδων εντολών (υπερβήµατα). Κάθε επεξεργαστής περιµένει τους υπόλοιπους στο ϕράγµα. Εποµένως οι επεξεργαστές λειτουργούν γενικά ασύγχρονα κατά τη διάρκεια των υπολογισµών ένος υπερβήµατος και συγχρονίζονται µαζικά στο ϕράγµα (bulk synchronous). Κάθε υπολογιστής µπορεί να ϑεωρηθεί σαν υπολογιστής BSP Υπερβήµατα Η πεµπτουσία του µοντέλου BSP είναι η έννοια του υπερβήµατος. Ενας υπολογισµός BSP συνίσταται από υπερβήµατα (supersteps). Κάθε υπερβήµα διαπαράλληλες διεργασίες τοπικοί υπολογισµοί καθολικές επικοινωνίες συγχρονισµός ϕράγµατος κρίνεται από 3 ϕάσεις (Σχ. 4.1): Σχήµα 4.1: Το µοντέλο BSP Τοπικοί υπολογισµοί µε τοπικά δεδοµένα µέσα σε κάθε παράλληλη διεργασία Αιτήµατα για non-blocking επικοινωνίες µε άλλους επεξεργαστές για ανταλλαγή δεδοµένων. 24

26 Ενας συγχρονισµός τύπου ϕράγµατος µεταξύ όλων των διεργασιών που χρησιµοποιείται για να δηλώσει το τέλος του υπερβήµατος και που εγγυάται την ολοκλήρωση όλων των επικοινωνιών που Ϲητήθηκαν κατά τη διάρκεια του υπερβήµατος. Σύµφωνα µε το µοντέλο BSP η επικοινωνία είναι εντελώς ανεξάρτητη από τον συγχρονισµό Ιεραρχία µνήµης στο µοντέλο BSP Ενας υπολογιστής BSP έχει δυο επίπεδα µνήµης. Κάθε επεξεργαστής έχει : 1. τη δική του τοπική µνήµη (ταχείας προσπέλασης), 2. πρόσβαση στη µνήµη των άλλων µε οµοιόµορφο και αποτελεσµατικό τρόπο. Οµοιόµορφη πρόσβαση σηµαίνει ότι ο χρόνος που χρειάζεται ένας επεξεργαστής να διαβάσει από, ή να γράψει σε µη τοπική µνήµη (άλλων επεξεργαστών) είναι ανεξάρτητος από την µεταξύ τους συνδεσµολογία και απόσταση. Προφανώς η οµοιόµορφη πρόσβαση είναι µια απλουστευτική παραδοχή του µοντέλου, που γενικά δεν ισχύει στην πράξη παρά µόνο σε ειδικές περιπτώσεις (π.χ. υπολογιστικά συστήµατα κοινής µνήµης µε σχετικά µικρό αριθµό επεξεργστών). Το µοντέλο BSP αντισταθµίζει τις όποιες αποκλίσεις ϑα προέκυπταν στη ϑεωρητική µελέτη παράλληλων αλγορίθµων µε την εισαγωγή κατάλληλων παραµέτρων (ϐλ. 6). 4.2 Η ϐιβλιοθήκη BSPlib Η πιο διαδεδοµένη υλοποιήση του µοντέλου BSP είναι η ϐιβλιοθήκη BSPlib, που αποτελεί και διεθνές standard. Η BSPlib τρέχει σε ένα µεγάλο αριθ- µό παράλληλων υπολογιστών (από υπερυπολογιστές έως δίκτυα προσωπικών υπολογιστών) και καλείται από προγράµµατα γραµµένα σε C ή Fortran. Η BSPlib είναι µια µικρή ϐιβλιοθ κη µε 20 περίπου συναρτήσεις (Πιν. 4.1). Συγκριτικά, άλλες standard ϐιβλιοθήκες παράλληλου προγραµµατισµού είναι σαφώς µεγαλύτερες (MPI-1: 129 MPI-2: 202 PVM: 90) Είδη επικοινωνίας στη BSPlib Η ϐιβλιοθήκη BSPlib υποστηρίζει τα παρακάτω είδη επικοινωνίας. Direct Remote Memory Access (DRMA) Αµεση πρόσβαση σε µη τοπική µνήµη, όπου µια διεργασία µπορεί να διαβάσει ή να γράψει δεδο- µένα από/στην µνήµη µιας άλλης διεργασίας χωρίς τη συµµετοχή της τελευταίας. 25

27 Class Operation Meaning Initialisation bsp_begin Start of SPMD code bsp_end End of SPMD code bsp_init Simulate dynamic processes Halt bsp_abort One process halts all Enquiry bsp_pid Find my process id bsp_nprocs Number of processes bsp_time Local time Superstep bsp_sync Barrier synchronisation DRMA bsp_push_reg Make region globally visible bsp_pop_reg Remove global visibility bsp_put Copy to remote memory bsp_get Copy from remote memory BSMP bsp_set_tag_size Choose tag size bsp_send Send to remote queue bsp_qsize Number of messages in queue bsp_get_tag Match tag with message bsp_move Move from queue High Performance bsp_hpput Unbuffered versions bsp_hpget of communication bsp_hpmove primitives Πίνακας 4.1: Οι συναρτήσεις της BSPlib 26

28 Bulk Synchronous Message Passing (BSMP) όπου µια διεργασία A µπορεί να στείλει ένα µήνυµα σε µια άλλη διεργασία B. Το µηνύµατα που προορίζονται για την B µπαίνουν σε ουρά αναµονής και γίνονται διαθέσιµα στη B κατά το επόµενο υπερβήµα. (Σχ. 4.2) bsp_send bsp_send bsp_move bsp_move Σχήµα 4.2: Bulk Synchronous Message Passing (BSMP) Η επιλογή ανάµεσα σε επικοινωνίες DRMA ή BSMP εξαρτάται από το πρόβλη- µα και ποιο συγκεκριµένα από τις πληροφορίες που έχει ένας επεξεργαστής για τις δοµές δεδοµένων στη µνήµη των άλλων : DRMA χρησιµοποιείται σε προβλήµατα που κάθε διεργασία γνωρίζει την ύπαρξη και το µέγεθος περιοχών της αποµακρυσµένης µνήµης. BSMP καλύτερο σε ακανόνιστα προβλήµατα όπου µόνο ο λήπτης των δεδο- µένων γνωρίζει που/πως ϑα αποθηκευτούν. Στο µάθηµα ϑα χρησιµοποιήσουµε αποκλειστι κα επικοινωνίες DRMA BSPlib: DRMA Η επικοινωνία DRMA είναι µονόπλευρη επικοινωνία : µια διεργασία µπορεί να γράψει/διαβάσει δεδοµένα στη/από τη µνήµη µιάς άλλης διεργασίας χω- 27

29 ϱίς τη συµµετοχή της τελευταίας. Υλοποιείται µε δυο συµµετρικές ενέργειες (συναρτήσεις): get: ιαβάζει/φέρνει δεδοµένα από αποµακρυσµένη διεργασία. put: Γράφει/φορτώνει δεδοµένα στην µνήµη αποµακρυσµένης διεργασίας. Μια επικοινωνία εκφράζεται µε put αν την ξεκινάει ο επεξεργαστής A που ϑέλει να στείλει κάποια δεδοµένα του στον B. Εναλλακτικά, η ίδια επικοινωνία µπορεί να εκφραστεί από την µεριά του B µέσω της get για να πάρει τα δεδοµένα από τον A. ιακρίνουµε επίσης δυο παραλλαγές ανάλογα µε την ερµηνεία του υπερ- ϐήµατος, δηλ. αν οι επικοινωνίες είναι : buffered: γίνονται στο τέλος του υπερβήµατος unbuffered: γίνονται οποιαδήποτε στιγµή κατά τη διάρκεια του υπερβήµατος. Και οι δυο παραλλαγές υποστηρίζοναται στην BSPlib. Η έννοια του buffering απαντάται σε διάφορες µορφές στην Πληροφορική. Ενας buffer είναι µια οποιαδήποτε δοµή δεδοµένων που χρησιµεύει σαν προσωρινός χώρος αποθήκευσης µε σκοπό τη συλλογή και κα υτερη διαχείριση δεδοµένων. Για παράδειγµα, αντί ο επεξεργαστής A να στείλει µεµονωµένα τα δεδοµένα του a, b, c και d στον B κατά τη διάρκεια ενός υπερβήµατος, ϑα µπορούσε να τα στείλει συγκεντρωνένα στο διάνυσµα (array) a, b, c, d (τον buffer). Η διαδικασία του buffering γίνεται αυτόµατα από την ϐιβλιοθήκη όταν επιλεγεί αυτό το είδος της επικοινωνίας. Στην περίπτωση unbuffered DRMA επικοινωνίας (Σχ. 4.3), υπάρχει επικάλυψη επικοινωνίας και υπολογισµών, αλλά : Τα δεδοµένα που ανταλλάσσονται δεν επιτρέπεται να αλλάξουν τοπικά στο ίδιο υπερβήµα. Ο σχεδιασµός προγραµµάτων είναι δυσκολότερος, καθώς δεν είναι πάντα δυνατόν να προβλέψουµε αλλαγές που µπορεί να γίνουν σε τοπικά δεδοµένα ή την αλληλεπίδραση των gets και puts. Στην περίπτωση buffered DRMA επικοινωνίας (Σχ. 4.4), δεν υπάρχει επικάλυψη επικοινωνίας και υπολογισµών, και κατά συνέπεια : Τα δεδοµένα που ανταλλάσσονται µπορούν να αλλάξουν τοπικά. Η µόνη απροσδιοριστία προκύπτει όταν πολλές διεργασίες γράφουν στις ίδιες ϑέσεις µνήµης. 28

30 bsp_hpput bsp_hpput bsp_hpget Σχήµα 4.3: Unbuffered DRMA επικοινωνία bsp_put bsp_put bsp_get Σχήµα 4.4: Buffered DRMA επικοινωνία 29

31 4.2.3 Συναρτήσεις της ϐιβλιοθήκης BSPlib Αρχικοποίηση και τερµατισµός #include "bsp.h" void bsp_begin(int maxprocs); void bsp_end(); Παράλληλη εκτέλεση των εντολών µεταξύ των bsp_begin και bsp_end σε maxprocs το πολύ επεξεργαστές. Ο ιδιωµατισµός bsp_begin(bsp_nprocs()) χρησιµοποιεί όλους τους διαθέσιµους επεξεργαστές. #include "bsp.h" bsp_abort(char *format,...); Αν κάποιος επεξεργαστής καλέσει την bsp_abort τερµατίζεται η εκτέλεση του παράλληλου προγράµµατος σε όλους τους επεξεργαστές, και εκτυπώνεται κάποιο µήνυµα (σύνταξη, όπως και η printf). Πληροφορίες για το περιβάλλον εκτέλεσης #include "bsp.h" int bsp_nprocs(); int bsp_pid(); Αν η bsp_nprocs κληθεί πριν από την bsp_begin επιστρέφει τον συνολικό διαθέσιµο αριθµό επεξεργαστών. Αν κληθεί µετά, επιστρέφει τον αριθµό p των επεξεργαστών ( p n όπου n ο αριθµός των επεξεργαστών που Ϲητήθηκαν από την bsp_begin. Καθένας από τους p επεξεργαστές που διατέθηκαν στο παράλληλο πρόγραµµα προσδιορίζεται από ένα µοναδικό ακέραιο i, i < p που µπορού- µε να µάθουµε καλώνας την bsp_pid() (0 <= bsp_pid() < bsp_nprocs()). Παράδειγµα : Hello world #include "bsp.h" void main(void) { int i; bsp_begin(bsp_nprocs()); 30

32 for(i=0; i<bsp_nprocs(); i++) { if (bsp_pid()==i) printf("hello BSP from %d of %d\n", i, bsp_nprocs()); fflush(stdout); bsp_sync(); } bsp_end(); } Buffered DRMA: η συνάρτηση put #include "bsp.h" void bsp_put(int pid,void *src,void *dst,int offset,int nbytes); void bsp_hpput(int pid,void *src,void *dst,int offset,int nbytes); Ο επεξεργαστής που καλεί µια από τις put ϐαζει nbytes bytes που αρχίζουν στην διεύθυνση της µνήµης του src, στον επεξεργαστή pid offset bytes από την εκεί διεύθυνση µνήµης dst. Παραδείγµατα : Η int µεταβλητή a στη µεταβλητή b του επεξεργαστή 4 bsp_put(4, &a, &b, 0, sizeof(int)); Το στοιχείο x[2] του διανύσµατος double x στη µεταβλητή b του επεξεργαστή 1 bsp_put(1, &x[2], &b, 0, sizeof(double)); Τα στοιχεία x[3], x[4], x[5] του διανύσµατος int x στις ϑέσεις y[7], y[8], y[9] του διανύσµατος y του επεξεργαστή 0 bsp_put(0, &x[3], &y, 7*sizeof(int), 3*sizeof(int)); Buffered DRMA: η συνάρτηση get #include "bsp.h" void bsp_get(int pid,void *src,int offset,void *dst,int nbytes); void bsp_hpget(int pid,void *src,int offset,void *dst,int nbytes); Ο επεξεργαστής που καλεί µια από τις get παίρνει nbytes bytes που αρχί- Ϲουν στην διεύθυνση της µνήµης του dst, από τον επεξεργαστή pid offset bytes από την εκεί διεύθυνση µνήµης src. Παραδείγµατα : 31

33 Η int µεταβλητή a του επεξεργαστή 1, στη µεταβλητή b του επεξεργαστή που καλεί την get bsp_get(1, &a, 0, &b, sizeof(int)); Το στοιχείο x[3] του διανύσµατος double x από τον επεξεργαστή 2 στη µεταβλητή b του επεξεργαστή που κάλεσε την get bsp_get(2, &x, 3*sizeof(int), &b, sizeof(double)); Τα στοιχεία x[3], x[4], x[5] του διανύσµατος int x του επεξεργαστή 0 στις ϑέσεις y[7], y[8], y[9] του διανύσµατος y του επεξεργαστή που κάλεσε την get. bsp_put(0, &x[3], 3*sizeof(int), &y[7], 3*sizeof(int)); DRMA registration Οταν η διεργασία A εκτελεί : bsp_put(b, x, y, 0, sizeof(x)); τότε τα δεδοµένα x στη διεργασία A µεταφέρονται στα δεδοµένα y της διεργασίας B, όπου x, y είναι π.χ. ονόµατα πινάκων, µεταβλητώς ή άλλων δοµών δεδοµένων στο πρόγραµµα. Η BSPlib είναι ϐιβλιοθήκη SPMD, εποµένως τα x και y υπάρχουν σε όλες τις διεργασίες. Ολα τα x όµως ϐρίσκονται σε διαφορετικές ϑέσεις στη µνήµη κάθε επεξεργαστή (Σχ. 4.5). Οπως είδαµε, οι εντολές put και get διαχειρίζονται διευθύνσεις µνήµης. Χρειάζεται εποµένως ένας µηχανισµός (rex x y y ΜΝΗΜΗ Α ΜΝΗΜΗ Β Σχήµα 4.5: Η εικόνα της µνήµης σε διαφορετικούς επεξεργαστές gistration) µε τον οποίο το παράλληλο πρόγραµµα συσχετίζει (πληροφορεί την 32

34 BSPlib για) τα ονόµατα δυο δοµών δεδοµένων σε διαφορετικές διεργασίες. Ο µηχανισµός του registration επιτρέπει την επικοινωνία µεταξύ δεδοµένων σε heap (π.χ. δυναµικοί πίνακες) την επικοινωνία µεταξύ δεδοµένων σε stack (π.χ. συναρτήσεων), καθώς και τη τοπικές µεταβλητές λειτουργία σε ετερογενή περιβάλλοντα (µε διαφορετικά είδη επεξεργαστών). #include "bsp.h" void bsp_push_reg(void *ident, int size); void bsp_pop_reg(void *ident); Μια περιοχή µνήµης από size bytes που αρχίζει στη διεύθυνση ident γίνεται διαθέσιµη για DRMA επικοινωνία µε την bsp_push_reg. Η περιοχή παύει να είναι διαθέσιµη για επικοινωνία µε την bsp_put_reg. Παράδειγµα : registration Το αποτέλεσµα της result στη διεργασία i ϑα είναι η τιµή της παραµέτρου x από τη διεργασία bsp_nprocs()-i+1., όπως ϕαίνεται στο Σχ ΠΡΙΝ ΜΕΤΑ Σχήµα 4.6: Παράδειγµα registration int reverse(int x) { bsp_push_reg(&x,sizeof(int)); bsp_sync(); bsp_put(bsp_nprocs()-bsp_pid()-1,&x,&x, 0,sizeof(int)); bsp_sync(); bsp_pop_reg(&x); 33

35 return x; } Παράδειγµα : put Η συνάρτηση put_array υλοποιεί την ταυτόχρονη ανάθεση : i,..., xs xs i xs i π.χ. για το διάνυσµα 16 ϑέσεων κατανεµηµένο σε 4 επεξεργαστές του Σχ Σχήµα 4.7: Παράδειγµα put void put_array(int *xs, int n) { int i,pid,local_idx,n_over_p= n/bsp_nprocs(); if (n % bsp_nprocs()) bsp_abort("{put_array} n=%d not divisible by p=%d", n,bsp_nprocs()); bsp_push_reg(xs,n_over_p*sizeof(int)); bsp_sync(); for(i=0;i<n_over_p;i++) { pid = xs[i]/n_over_p; local_idx = xs[i]%n_over_p; bsp_put(pid,&xs[i],xs,local_idx*sizeof(int), sizeof(int)); } bsp_sync(); bsp_pop-reg(xs); } Παράδειγµα : get Η συνάρτηση get_array υλοποιεί την ταυτόχρονη ανάθεση : i,..., xs i xs xs i π.χ. για το διάνυσµα 16 ϑέσεων κατανεµηµένο σε 4 επεξεργαστές του Σχ

36 Σχήµα 4.8: Παράδειγµα get void get_array(int *xs, int n) { int i,pid,local_idx,n_over_p=n/bsp_nprocs(); if (n % bsp_nprocs()) bsp_abort("{get_array} %d not divisable by %d", n,bsp_nprocs()); bsp_push_reg(xs,n_over_p*sizeof(int)); bsp_sync(); for(i=0;i<n_over_p;i++) { pid = xs[i]/n_over_p; local_idx = xs[i]%n_over_p; bsp_get(pid,xs,local_idx*sizeof(int),&xs[i], sizeof(int)); } bsp_sync(); bsp_pop_reg(xs); } Παράδειγµα : unbuffered get Πρόσθεση n αριθµών κατενεµηµένων σε p επεξεργαστές (n > p) int bsp_sum(int *xs, int nelem) { int *local_sums,i,j,result=0; for(j=0;j<nelem;j++) result = result + xs[j]; bsp_push_reg(&result,sizeof(int)); bsp_sync(); local_sums = calloc(bsp_nprocs(),sizeof(int)); if (local_sums==null) bsp_abort("{bsp_sum} no memory for %d int",bsp_nprocs()); for(i=0;i<bsp_nprocs();i++) bsp_hpget(i,&result,0,&local_sums[i],sizeof(int)); bsp_sync(); 35

37 Ε ΟΜΕΝΑ ΤΟΠΙΚΗ ΠΡΟΣΘΕΣΗ ΟΛΙΚΗ ΑΝΤΑΛΛΑΓΗ ΤΟΠΙΚΗ ΠΡΟΣΘΕΣΗ Σχήµα 4.9: Πρόσθεση n κατανεµηµένων αριθµών result=0; for(i=0;i<bsp_nprocs();i++) result = result+ local_sums[i]; bsp_pop_reg(&result); free(local_sums); return result; } 36

38 Κεφάλαιο 5 Σχεδιασµός παράλληλων αλγορίθµων 5.1 Βήµατα στο σχεδιασµό παράλληλων αλγορίθµων ιαµερισµός : ανάλυση του προβλήµατος σε ελάχιστες µονάδες παράλληλου έργου (tasks) µε σκοπό τη µεγιστοποίηση της δυνατότητας για παράλληλη επεξεργασία. Επικοινωνία : καθορισµός επικοινωνιακών αναγκών ανάµεσα σε tasks. Σύνθεση : Συνδυασµός πολλών tasks σε διεργασίες µε σκοπό τη µείωση των απαιτήσεων σε επικοινωνία ή άλλο κόστος. Ανάθεση : διεργασιών σε επεξεργαστές, µε γνώµονα την αποτελεσµατικότερη επίλυση στο διαθέσιµο παράλληλο σύστηµα. ΙΑΜΕΡΙΣΜΟΣ ΕΠΙΚΟΙΝΩΝΙΑ ΣΥΝΘΕΣΗ ΑΝΑΘΕΣΗ ΠΡΟΒΛΗΜΑ TASKS ΙΕΡΓΑΣΙΕΣ ΕΠΕΞΕΡΓΑΣΤΕΣ Σχήµα 5.1: Βήµατα στο σχεδιασµό παράλληλων αλγορίθµων 37

39 5.2 ιαµερισµός : καθορισµός tasks Η πρώτη και ϐασική ενέργεια στο σχεδιασµό παράλληλων αλγορίθµων είναι καθορισµός των ελάχιστων µονάδων παράλληλου έργου, tasks, που συνθέτουν τον παράλληλο υπολογισµό. Για παράδειγµα αν ϑελουµε να υπολογίσουµε το άθροισµα N s f x i i µε x N και f συνάρτηση στο, τότε κάθε task i είναι ουσιαστικά ο υπολογισµός της f x i. Ισχύουν τα παρακάτω : Οποιοσδήποτε παράλληλος υπολογισµός εκφράζεται από δύο ή περισσότερα tasks που εκτελούνται ταυτόχρονα. Κάθε task αποτελείται από σειριακό κώδικα (π.χ. υπολογισµός της f ) και τοπική µνήµη (x i ). Η ανάθεση tasks σε επεξεργαστές µπορεί να γίνει µε πολλούς τρόπους συνήθως πολλά tasks σε κάθε επεξεργαστή. ύο tasks µπορεί να συνδέονται µε ένα δίαυλο όταν χρειάζεται να ανταλλάξουν µηνύµατα (δεδοµένα). Στο παράδειγµα µας, όταν τα tasks υπολογίσουν τη συνάρτηση για τα δεδοµένα τους, πρέπει να επικοινωνήσουν µεταξύ τους για το σχηµατισµό του αθροίσµατος. Οι επιπτώσεις της διατύπωσης παράλληλων υπολογισµών µέσω των tasks έχει τις παρακάτω επιπτώσεις : Η σηµειολογία ενός παράλληλου προγράµµατος είναι ανεξάρτητη από ανάθεση σε επεξεργαστές. Ο σχεδιασµός παράλληλων προγραµµάτων, γίνεται ανεξάρτητα από τον αριθµό των επεξεργαστών που τελικά ϑα χρησιµοποιήσουµε. Η αποτελεσµατικότητα όµως εξαρτάται από την ανάθεση των tasks σε επεξεργαστές, λόγω κατανοµής του υπολογιστικού ϕορτίου, δυνατότητας για παράλληλη εκτέλεση και αναγκών επικοινωνίας. Οι δίαυλοι δεν αντιστοιχούν κατ ανάγκη στην υπάρχουσα συνδεσµολογία επεξεργαστών. ύο επικοινωνούντα tasks µπορεί να ανατεθούν σε : ένα επεξεργαστή δεν υπάρχει επικοινωνία σε δυο άµεσα συνδεδεµένους επεξεργαστές άµεση επικοινωνία σε δυο επεξεργαστές που δεν συνδέονται άµεσα ανάγκη για δια- ϐίβαση πολλαπλών µηνυµάτων. 38

40 Οδηγίες σχεδιασµού για τη ϕάση του διαµερισµού : Πολύ περισσότερα tasks από ότι επεξεργαστές. Αποφυγή «περιτών» υπολογισµών ή δεδοµένων. Tasks περίπου του ίδιου µεγέθους (υπολογισµοί/δεδοµένα). Ο αριθµός των tasks και όχι το µέγεθος τους, πρέπει να µεγαλώνει όταν αυξάνει το µέγεθος του προβλήµατος Παράδειγµα : εξίσωση Laplace σε µια διάσταση Εστω η εξίσωση Laplace σε µια διάσταση y t, a t b, (5.1) µε συνοριακές συνθήκες y a α, y b ϐ. Η λύση της (5.1) ϑα µπο- ϱούσε να είναι για παράδειγµα η κατανοµή της ϑερµοκρασίας στο εσωτερικό αγώγιµης ϱάβδου που υπόκειται σε σταθερές ϑερµοκρασίες α και ϐ στα άκρα της. Για την αριθµητική επίλυση (5.1) αντικαθιστούµε το συνεχές πρόβληµα µε ένα διακριτό και Ϲητάµε να προσδιορίσουµε τις τιµές της y σε n ισαπέχοντα διακριτά σηµεία στο εσωτερικό της ϱάβδου. Η προσέγγιση της (5.1) µε τη µέθοδο των πεπερασµένων διαφορών δίνει : y i y i y i, i,..., n, (5.2) µε y α, y n ϐ. Οι εξισώσεις (5.2) µαζί µε τις συνθήκες στα άκρα, είναι ουσιαστικά ένα τριδιαγώνιο γραµµικό σύστηµα n εξισώσεων µε αγνώστους τα y i που επιλύουµε συνήθως µε κάποια επαναληπτική µέθοδο, εδώ την µέθοδο Jacobi k y i k yi k y i, i,..., n n y y y y n Σχήµα 5.2: Η εξίσωση Laplace σε µια διάσταση 39

41 Καθορισµός n tasks, ένα για κάθε y i Πρόγραµµα για task i, i,..., n y i for k,... if i >, put(i if i < n, put(i sync(); y i = (left + right)/2; end, y i, right, 0, sizeof(...)); end, y i, left, 0, sizeof(...)); end 5.3 Επικοινωνία Οδηγίες σχεδιασµού για τη ϕάση της επικοινωνίας. Η επικοινωνία πρέπει να : είναι οµοιόµορφη σε συχνότητα και όγκο ανάµεσα στα tasks είναι τοπική (ανάµεσα σε δυο tasks αν είναι δυνατό, είναι ταυτόχρονη επικαλύπτεται από υπολογισµούς, αν είναι δυνατό µην εµποδίζει την ταυτόχρονη εκτέλεση των tasks Πολλές ϕορές οι επικοινωνιακές ανάγκες ενός αλγορίθµου δεν καλύπτονται από τοπική µόνο ανταλλαγή δεδοµένων : Συλλογική επικοινωνία όταν συµ- µετέχουν πολλοί επεξεργαστές ταυτόχρονα, µε κοινό στόχο. Συνηθέστερες µορφές : broadcast ένας σε όλους reduction όλοι σε ένα, και αρκετές άλλες Broadcast Ενας πηγαίος κόµβος (επεξεργαστής) στέλνει ένα µήµυµα στους υπόλοιπους p Τα µηνύµατα µπορούν να σταλούν σειριακά Αλλά συνήθως πιο αποτελεσµατικό να εκµεταλλευτούµε την παράλληλη συνδεσµολογία και να σταλούν (σε µεγάλο ϐαθµό) παράλληλα. 40

42 Στο Σχ. 5.3 ϕαίνεται πως υλοποιείται η επικοινωνία τύπου broadcast ανάλογα µε τη συνδεσµολογία των επεξεργαστών. Στην πράξη, η συνδεσµολογία των επεξεργαστών λαµβάνεται υπόψη από τους σχεδιαστές ϐιβλιοθηκών πα- ϱάλληλης επεξεργασίας και όχι σε επίπεδο προγραµµατισµού εφαρµογών. Βιβλιοθήκες όπως η BSPlib ή το MPI παρέχουν συναρτήσεις για αποτελεσµατικό broadcasting χωρίς να απαιτείται γνώση της συνδεσµολογίας από τον προγραµµατιστή Σχήµα 5.3: Broadcast σε διάφορες συνδεσµολογίες Reduction εδοµένα απο p κόµβους συνδυάζονται εφαρµόζοντας κάποια προσεται- ϱιστική πράξη (π.χ. πρόσθεση, πολ/σµός, max, min, λογικά OR και AND) και δίνουν το αποτέλεσµα. Αντίθετα απο broadcast έχουµε ϱοή δεδοµένων ΠΡΟΣ ένα κόµβο. Σε κάθε κόµβο τα εισερχόµενα δεδοµένα συνδυάζονται µε τα τοπικά προτού προωθηθούν παραπέρα. Το τελικό αποτέλεσµα καταλήγει σε ένα κόµβο. Αν χρειάζεται, ακολου- ϑείται από broadcast Στο Σχ. 5.4 ϕαίνεται πως υλοποιείται η επικοινωνία τύπου reduction ανάλογα µε τη συνδεσµολογία των επεξεργαστών. Οπως και µε την broadcast, σπάνια η συνδεσµολογία µας απασχολεί στον προγραµµατισµό εφαρµογών όπου απαιτείται reduction, αφού η λειτουργία αυτή παρέχεται από κατάλληλες συναρτήσεις των παράλληλων ϐιβλιοθηκών. 41

43 Σχήµα 5.4: Reduction σε διάφορες συνδεσµολογίες 5.4 Σύνθεση Μεγάλες διεργασίες : λιγότερη επικοινωνία, αλλά και λιγότερη παραλληλία. Tasks που δεν µπορούν να εκτελεστούν παράλληλα, κατάλληλα να συνδυαστούν σε µια διεργασία. Η επικοινωνία µπορεί συχνά να αποφευχθεί µε επανάληψη υπολογισµών σε πολλαπλές διεργασίες. Η επικοινωνία ανάλογη µε την επιφάνεια των δεδοµένων, ενώ οι υπολογισµοί µε τον όγκο Παράδειγµα σύνθεσης : εξίσωση Laplace Καθορισµός p tasks, καθένα µε n/p κόµβους y i (Σχ. 5.5) Πρόγραµµα για επεξεργαστή j, j,..., p y l,..., y h for k,... if j >, put(j if j < p, put(j sync(); y l = (left + y l )/2; y h = (right + y h )/2;, y l, right, 0, sizeof(...)); end, y h, left, 0, sizeof(...)); end 42

44 for i=l :h y i y i y i / end y y end y y l 1 l y y h h+1 Σχήµα 5.5: Σύνθεση : εξίσωση Laplace 5.5 Ανάθεση 2 στρατηγικές : διεργασίες που µπορούν να εκτελεστούν παράλληλα, σε διαφορετικούς επεξεργαστές. ιεργασίες που επικοινωνούν συχνά, στον ίδιο επεξεργαστή. ΠΡΟΒΛΗΜΑ : Συχνά, οι παραπάνω στρατηγικές είναι ασυµβίβαστες. Η εύρεση ϐέλτιστης ανάθεσης είναι N-P ανοικτό πρόβληµα (heuristics). υναµικές και στατικές στρατηγικές. 43

45 Κεφάλαιο 6 Κόστος παράλληλων αλγορίθµων 6.1 Απόδοση παράλληλων προγραµµάτων T T p χρόνος εκτέλεσης σε ένα επεξεργαστή «παράλληλος» χρόνος εκτέλεσης σε p επεξεργαστές Ορισµός Speedup: S p T /T p (Πόσο πιο γρήγορα εκτελείται ο αλγό- ϱιθµος σε p επεξεργαστές). Ορισµός Αποτελεσµατικότητας : E p T / pt p Εποµένως : E p S p /p και S p pe p Ψευδοθεώρηµα : S p p και E p Αλλά διάφορες ανωµαλίες στο S p µπορούν να παρατηρηθούν (π.χ. cache) 6.2 Ο νόµος του Amdahl Εστω ότι ένας αλγόριθµος περιλαµβάνει ένα τµήµα που δεν µπορεί να εκτελεστεί παράλληλα, παρά µόνο σειριακά. Ακόµα και αν ο υπόλοιπος αλγόριθµος εκτελείται πλήρως παράλληλα (χωρίς ανάγκη επικοινωνίας), το σειριακό µέρος του καθορίζει ένα άνω ϕράγµα για το speedup που δεν µπορούµε να το υπερ- ϐούµε όσο και αν αυξήσουµε την παραλληλία (τον αριθµό των επεξεργαστών που δουλεύουν στο παράλληλο τµήµα του αλγορίθµου). Υποθέσεις Σειριακή εκτέλεση s, s (Το ποσοστό του χρόνου T που αντιστοιχεί σε κώδικα που δεν µπορεί να εκτελεστεί παράλληλα.) 44

46 Παράλληλη εκτέλεση σε p επεξεργαστές s Συµπεράσµατα T p st s T /p S p p/ sp s E p / sp s Εποµένως : S p /s και E p καθώς p Παράδειγµα : αν s., τότε S p για κάθε p Είναι η παράλληλη επεξεργασία χαµένη υπόθεση? 1024 S_p = 1/(s+(1-s)/p) S_p s Σχήµα 6.1: Ο νόµος του Amdahl Σύµφωνα µε το νόµο του Amdahl η κλιµάκωση της απόδοσης ενός πα- ϱάλληλου αλγορίθµου µε αύξηση του αριθµού των επεξεργαστών περιορίζεται από τους υπολογισµούς που εκτελούνται σειριακά. Αλλά : Ο ν. Amdahl υποθέτει σταθερό µέγεθος του προβλήµατος, δηλ. ότι το σειριακό ποσοστό s είναι ανεξάρτητο του µεγέθους τους προβλήµατος, πράγµα που σπάνια επαληθεύεται στην πράξη Μεγαλύτεροι υπολογιστές (µεγαλύτερο p) χρησιµοποιούνται για να επιλυθούν µεγαλύτερα προβλήµατα, και το s συνήθως µειώνεται µε την αύξηση του µεγέθους του προβλήµατος (π.χ. εσωτερικό γινόµενο) 45

47 Το µοντέλο του Gustafson (Σχ. 6.2): s το σειριακό ποσοστό του T p για επίλυση µεγάλου προβλήµατος. Ο (προβλεπόµενος) σειριακός χρόνος για την επίλυση του ίδιου προβλήµατος είναι : T s T p p s T p Το προβλεπόµενο speedup: S p s s p 1024 Scaled S_p 512 Scaled S_p = s +(1-s )p$ s Σχήµα 6.2: Το µοντέλο του Gustafson 6.3 Μοντέλο κόστους BSP Η κοστολόγηση σειριακών αλγορίθµων γίνεται µε ϐάση τους υπολογισµούς που εκτελούν. Για την αξιολόγηση σειριακών αλγορίθµων αρκεί να µετρήσουµε τον αριθµό πράξεων που εκτελούνται σαν συνάρτηση του µεγέθους του προβλήµατος. Για αριθνµητικούς αλγορίθµους µετράµε συνήθως τον αριθµό πράξεων κινητής υποδιαστολής (flop). Η κοστολόγηση παράλληλων αλγορίθµων είναι γενικά δύσκολη υπόθεση καθώς εµπλέκονται επιπλέον παράγοντες, όπως είναι η επικοινωνία και ο συγχρονισµός. Η συνάρτηση κόστους επίσης εξαρτάται εκτός από το µέγεθος του προβλήµατος και από τον αριθµό των επεξεργαστών που χρησιµοποιεί ο παράλληλος αλγόριθµος. Η αξιολόγηση των παράλληλων αλγορίθµων γίνεται ευκολότερη αν τους εκφράσουµε σε σχέση µε κάποιο µοντέλο παράλληλου υπολογισµού όπως το µοντέλο BSP. 46

48 Για την αξιολόγηση αλγορίθµων BSP, χρησιµοποιούµε 4 µόνο επιπλέον παραµέτρους από ότι στη σειριακή επεξεργασία (κοινή παράµετρος είναι το µέγεθος του προβλήµατος N). Οι παράµετροι BSP εξαρτώνται από το είδος των επεξεργαστών και την αρχιτεκτονική του παράλληλου υπολογιστικού συστήµατος. Αυτές είναι : s η ταχύτητα υπολογισµού του επεξεργαστή εκφρασµέη σε flop/s p ο αριθµός των επεξεργαστών l το κόστος ενός συγχρονισµού ϕράγµατος σε flop. g ο αριθµός flop/word που χρειάζονται όλοι οι επεξεργαστές για να επικοινωνήσουν ταυτόχρονα. Είναι χαρακτηριστικό ότι το µοντέλο BSP εκφράζει το κόστος τις επικοινωνίας και του συγχρονισµού όχι σε χρόνο, αλλά σε ισοδύναµο αριθµό flop που ϑα έκανε ο υπολογιστής κατά τη διάρκεια τους. Χρησιµοποιώντας τον αριθµό των flop και την παράµετρο s µπορούµε να υπολογίσουµε τον υπολογιστικό χρόνο όπου τον χρειαζόµαστε. Πως µπορούµε να εκφράσουµε το speedup ενός παράλληλου αλγορίθµου, όταν έχουµε στη διάθεση µας µόνο µετρήσεις flop και δεν γνωρίζουµε την παράµετρο s; Η παράµετρος g αντιστοιχεί ουσιαστικά στη συχνότητα πρόσβασης µητοπικής µνήµης. Ενα πακέτο δεδοµένων είναι ένας ακέραιος ή ένας πραγ- µατικός αριθµός (µια λέξη). Ορίζουµε σαν σχέση h το εξής πρόβληµα routing: κάθε επεξεργαστής στέλνει το πολύ h πακέτα σε διάφορους άλλους επεξεργαστές του δικτύου του και λαµβάνει το πολύ h πακέτα από τους άλλους. Αν έχουµε συνολικά p επεξεργαστές, µια κατάσταση επικοινωνίας εκφράζεται από ένα πίνακα H, p p. Το στοιχείο h ij αντιστοιχεί στον αριθµό των πακέτων που ϕεύγουν από τον επεξεργαστή i µε προορισµό τον επεξεργαστή j. Η σχέση h είναι : h h in, h out όπου και h in i h out i p j p j h ij, i,,... p h ji, i,,... p Το κόστος c ένος υπερβήµατος BSP στο οποίο ο επεξεργαστής i εκτελεί w i 47

49 w w w σχέση h barrier latency l Σχήµα 6.3: Κόστος υπερβήµατος και οι επικοινωνίες καθορίζουν µια σχέση h (Σχ. 6.3) είναι : c w i Υπολογισµός h g l Επικοινωνία όπου h h i h i µέγιστη ποσότητα δεδοµένων µέσα ή έξω από τη διεργασία i Κατά συνέπεια, το κόστος πολλαπλών υπερβηµάτων C (εκφρασµένο σε flop) είναι : C υπολογισµός επικοινωνία συγχρονισµός α ϐg γl όπου α, ϐ και γ κόστος που εξαρτάται από την παράλληλη εφαρµογή. Τα µοντέλα κόστους µπορούν να χρησιµοποιηθούν : στο σχεδιασµό προγραµµάτων BSP για να προβλέψουν το χρόνο εκτέλεσης ενός αλγορίθµου σε διαφορετικές παράλληλες αρχιτεκτονικές, ή για διαφορετικό αριθµό επεξεργαστών. Οι παράµετροι s, g, l είναι µετρήσιµα µεγέθη που χαρακτηρίζουν ένα παράλληλο υπολογιστικό σύστηµα (Πιν. 6.1, Πιν. 6.2) 48

50 Machine s p l l/s g g/s flops µs flops/word µs/word Origin PowerChallenge Cray T3E Sp2 switch Cray T3D Πίνακας 6.1: Παράµετροι BSP - υπερυπολογιστές Machine s p l l/s g g/s flops µs flops/word µs/word Sp2 switch LPAC Alpha farm Pentium NOW 266MHz, 64Mb Mbit shared enet Pentium II NOW MHz, 128Mb Mbit switched enet Pentium II Kernel-NOW MHz, 128Mb Mbit switched enet Πίνακας 6.2: Παράµετροι BSP - clusters 49

51 6.4 Σχεδιασµός προγραµµάτων BSP Οπως ϕαίνεται από το µοντέλο κόστους, ένα αποτελεσµατικός αλγόριθµος BSP πρέπει να : εξισοροπεί ανάµεσα στις παράλληλες διεργασίες τους υπολογισµούς κά- ϑε υπερβήµατος, αφού ο υπολογιστικός χρόνος για κάθε υπερβήµα είναι ο µέγιστος των διεργασιών και ο συγχρονισµός στο ϕράγµα πρέπει να περιµένει την αργότερη διεργασία εξισοροπεί την επικοινωνία ανάµεσα σε διεργασίες, καθώς το h είναι η µέγιστη ποσότητα δεδοµένων σε µια όλοι-προς-ένα και ένας-προς-όλους επικοινωνία και ελαχιστοποιεί τον αριθµό των υπερβηµάτων, που καθορίζουν πόσες ϕο- ϱές η παράµετρος l εµφανίζεται στο τελικό κόστος Παράδειγµα : αλγόριθµος broadcast Αναµετάδοση ένος διανύσµατος N στοιχείων από ένα επεξεργαστή σε όλους τους άλλους. Broadcast σε µια ϕάση Ο επεξεργαστής που έχει αρχικά το διάνυσµα στέλνει p µηνύµατα µεγέθους N σε όλους σε ένα µόνο υπερβήµα (Σχ. 6.4) Υπολογιστικό κόστος : C l png Broadcast σε δέντρο Λογαριθµικός αριθµός υπερβηµάτων. Κάθε διεργασία µεταδίδει το πολύ ένα µήνυµα µεγέθους N σε κάποια άλλη (Σχ. 6.5) Υπολογιστικό κόστος : C p l p Ng Broadcast σε δυο ϕάσεις Στη πρώτη ϕάση (υπερβήµα) ο επεξεργαστής µοιράζει p διαφορετικά υποδιανύσµατα µήκους N/p σε όλους τους άλλους. Στη δεύτερη ϕάση κάθε επεξεργστής στέλνει το υποδιάνυσµα που έλαβε στη ϕάση 1, σε όλους τους άλλους (Σχ. 6.6) Υπολογιστικό κόστος : C l N pg p l N pg l Ng p 50

Ιεραρχίες µνήµης. Μιχάλης ρακόπουλος. Υπολογιστική Επιστήµη & Τεχνολογία, #02

Ιεραρχίες µνήµης. Μιχάλης ρακόπουλος. Υπολογιστική Επιστήµη & Τεχνολογία, #02 Ιεραρχίες µνήµης Μιχάλης ρακόπουλος Υπολογιστική Επιστήµη & Τεχνολογία, #02 1 Απόδοση υπολογιστικών συστηµάτων Ταχύτητα: Χρόνος ή καλύτερα Mflop/s. 1 Mflop/s = 10 6 floating point operations Benchmarks:

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

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

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

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

Αριθµητική Ανάλυση 1 εκεµβρίου / 43

Αριθµητική Ανάλυση 1 εκεµβρίου / 43 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 Αριθµητική Ανάλυση 1 εκεµβρίου 2014 1 / 43 Κεφ.5. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ίνεται ένας πίνακας A C n n και Ϲητούνται να προσδιορισθούν οι

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός

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

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

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

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

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1)

QR είναι ˆx τότε x ˆx. 10 ρ. Ποιά είναι η τιµή του ρ και γιατί (σύντοµη εξήγηση). P = [X. 0, X,..., X. (n 1), X. n] a(n + 1 : 1 : 1) ΕΠΙΣΤΗΜΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΜΟΣ I (22 Σεπτεµβρίου) ΕΠΙΛΕΓΜΕΝΕΣ ΑΠΑΝΤΗΣΕΙΣ 1ο ΘΕΜΑ 1. Αφού ορίσετε ακριβώς τι σηµαίνει πίσω ευσταθής υπολογισµός, να εξηγήσετε αν ο υ- πολογισµός του εσωτερικού γινοµένου δύο διανυσµάτων

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

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί) Εισαγωγή στον Προγραµµατισµό Αριθµητική Ανάλυση (ή Επιστηµονικοί Υπολογισµοί) ιδάσκοντες: Καθηγητής Ν. Μισυρλής, Επίκ. Καθηγητής Φ.Τζαφέρης ΕΚΠΑ 8 εκεµβρίου 2014 Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

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

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος Εισαγωγή στους Αλγόριθµους Αλγόριθµοι Τι είναι αλγόριθµος; Τι µπορεί να υπολογίσει ένας αλγόριθµος; Πως αξιολογείται ένας αλγόριθµος; Παύλος Εφραιµίδης pefraimi@ee.duth.gr Αλγόριθµοι Εισαγωγικές Έννοιες

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

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

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

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

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή

Εφαρµογές Πληροφορικής Υπολογιστών. Κεφάλαιο 3 Το υλικό του υπολογιστή Κεφάλαιο 3 Το υλικό του υπολογιστή Εισαγωγή Τµήµατα του Η/Υ καιοργάνωση Μονάδα Κεντρικής Μνήµης Κεντρική Μονάδα Επεξεργασίας (CPU) Μονάδα Εισόδου Εξόδου ίαυλοι Επικοινωνίας Εναλλακτικές αρχιτεκτονικές

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

Επίλυση Γραµµικών Συστηµάτων

Επίλυση Γραµµικών Συστηµάτων Κεφάλαιο 3 Επίλυση Γραµµικών Συστηµάτων 31 Εισαγωγή Αριθµητική λύση γενικών γραµµικών συστηµάτων n n A n n x n 1 b n 1, όπου a 11 a 12 a 1n a 21 a 22 a 2n A [a i j, x a n1 a n2 a nn x n, b b 1 b 2 b n

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

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

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

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

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων Μαρία Ι. Ανδρέου ΗΜΥ417, ΗΜΥ 663 Κατανεµηµένα Συστήµατα Χειµερινό Εξάµηνο 2006-2007 Τµήµα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήµιο

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

Αριθµητική Γραµµική ΑλγεβραΚεφάλαιο 4. Αριθµητικός Υπολογισµός Ιδιοτιµών 2 Απριλίου και2015 Ιδιοδιανυσµάτων 1 / 50

Αριθµητική Γραµµική ΑλγεβραΚεφάλαιο 4. Αριθµητικός Υπολογισµός Ιδιοτιµών 2 Απριλίου και2015 Ιδιοδιανυσµάτων 1 / 50 Αριθµητική Γραµµική Αλγεβρα Κεφάλαιο 4. Αριθµητικός Υπολογισµός Ιδιοτιµών και Ιδιοδιανυσµάτων ΕΚΠΑ 2 Απριλίου 205 Αριθµητική Γραµµική ΑλγεβραΚεφάλαιο 4. Αριθµητικός Υπολογισµός Ιδιοτιµών 2 Απριλίου και205

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

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις

ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις ΠΛΗΡΟΦΟΡΙΚΗ Ι Ενότητα 3: Συναρτήσεις Μιχάλης Δρακόπουλος Σχολή Θετικών επιστημών Τμήμα Μαθηματικών Συναρτήσεις 60 Ροή ελέγχου Είναι η σειρά µε την οποία εκτελούνται οι εντολές. Μέχρι τώρα, «σειριακή»,

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

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

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

ΑΕΠΠ Ερωτήσεις θεωρίας

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

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

Δομές Δεδομένων & Αλγόριθμοι

Δομές Δεδομένων & Αλγόριθμοι - Πίνακες 1 Πίνακες Οι πίνακες έχουν σταθερό μέγεθος και τύπο δεδομένων. Βασικά πλεονεκτήματά τους είναι η απλότητα προγραμματισμού τους και η ταχύτητα. Ωστόσο δεν παρέχουν την ευελιξία η οποία απαιτείται

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

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΠΑΡΑΡΤΗΜΑ: QUIZ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ (Οι ερωτήσεις µε κίτρινη υπογράµµιση είναι εκτός ύλης για φέτος) ΕΙΣΑΓΩΓΗ Q1. Οι Πρωταρχικοί τύποι (primitive types) στη Java 1. Είναι όλοι οι ακέραιοι και όλοι οι πραγµατικοί

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

Ατομική Διπλωματική Εργασία ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΠΕΙΡΑΜΑΤΙΚΗ ΑΞΙΟΛΟΓΗΣΗ ΑΠΟΔΟΤΙΚΩΝ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ ΜΕ ΤΟ ΛΟΓΙΣΜΙΚΟ PUBSP. Μαργαρίτα Αντωνάκη

Ατομική Διπλωματική Εργασία ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΠΕΙΡΑΜΑΤΙΚΗ ΑΞΙΟΛΟΓΗΣΗ ΑΠΟΔΟΤΙΚΩΝ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ ΜΕ ΤΟ ΛΟΓΙΣΜΙΚΟ PUBSP. Μαργαρίτα Αντωνάκη Ατομική Διπλωματική Εργασία ΥΛΟΠΟΙΗΣΗ ΚΑΙ ΠΕΙΡΑΜΑΤΙΚΗ ΑΞΙΟΛΟΓΗΣΗ ΑΠΟΔΟΤΙΚΩΝ ΠΑΡΑΛΛΗΛΩΝ ΑΛΓΟΡΙΘΜΩΝ ΜΕ ΤΟ ΛΟΓΙΣΜΙΚΟ PUBSP Μαργαρίτα Αντωνάκη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μάρτιος 2009 ΠΑΝΕΠΙΣΤΗΜΙΟ

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

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ Δρ. Γκόγκος Χρήστος Εκτέλεση προγραμμάτων Πρόγραμμα: Ένα σύνολο από εντολές.

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

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

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

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

Στοιχεία Αλγορίθµων και Πολυπλοκότητας

Στοιχεία Αλγορίθµων και Πολυπλοκότητας Στοιχεία Αλγορίθµων και Πολυπλοκότητας Ορέστης Τελέλης telelis@unipi.gr Τµήµα Ψηφιακών Συστηµάτων, Πανεπιστήµιο Πειραιώς Ο. Τελέλης Πανεπιστήµιο Πειραιώς Πολυπλοκότητα 1 / 16 «Ζέσταµα» Να γράψετε τις συναρτήσεις

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

Πανεπιστήµιο Θεσσαλίας

Πανεπιστήµιο Θεσσαλίας Πανεπιστήµιο Θεσσαλίας Τµήµα Πληροφορικής Ενότητα 8η: Συσκευές Ε/Ε - Αρτηρίες Άσκηση 1: Υπολογίστε το µέσο χρόνο ανάγνωσης ενός τµήµατος των 512 bytes σε µια µονάδα σκληρού δίσκου µε ταχύτητα περιστροφής

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

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

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

Πολυπύρηνοι επεξεργαστές Multicore processors

Πολυπύρηνοι επεξεργαστές Multicore processors Πολυπύρηνοι επεξεργαστές Multicore processors 1 Μετάβαση στους πολυπύρηνους(1) Απόδοση των µονοεπεξεργαστών 25% ετήσια βελτίωση της απόδοσης από το 1978 έως το 1986 Κυρίως από την εξέλιξη της τεχνολογίας

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 3: Ασυμπτωτικός συμβολισμός Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

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

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

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

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

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

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

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

Λογισµικό (Software SW) Γλώσσες

Λογισµικό (Software SW) Γλώσσες Λογισµικό (Software SW) Γλώσσες Προγραµµατισµού Οι γενιές των γλωσσών προγραµµατισµού Προβλήµατα που επιλύονται σε ένα περιβάλλον στο οποίο ο άνθρωπος πρέπει να προσαρµόζεται στα χαρακτηριστικά της µηχανής

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

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Ι (ΗΥ120) Προγραμματισμός Ι (ΗΥ120) Διάλεξη 9: Συναρτήσεις Ορισμός συναρτήσεων () { /* δήλωση μεταβλητών */ /* εντολές ελέγχου/επεξεργασίας */ o Μια συνάρτηση ορίζεται δίνοντας

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

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

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

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

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο 2006-07 Ενότητα 4 Εισαγωγή στην Πληροφορική Κεφάλαιο 4Α: Αναπαράσταση πληροφορίας Κεφάλαιο 4Β: Επεξεργαστές που χρησιµοποιούνται σε PCs Χειµερινό Εξάµηνο 2006-07 ρ. Παναγιώτης Χατζηδούκας (Π..407/80) Εισαγωγή

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

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΑΝΑΛΥΣΗ ΑΛΓΟΡΙΘΜΩΝ Ενότητα 13: Αλγόριθμοι-Μεγάλων ακεραίων- Εκθετοποίηση- Πολλαπλασιασμός πινάκων -Strassen Μαρία Σατρατζέμη Τμήμα Εφαρμοσμένης Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος

Επιστηµονικός Υπολογισµός Ι Ενότητα 1 - Εισαγωγή. Ευστράτιος Γαλλόπουλος Ενότητα 1 - Εισαγωγή Ευστράτιος Γαλλόπουλος c Ε. Γαλλόπουλος 201-2015 Ασκηση 1 Τι ονοµάζουµε υπολογιστικούς πυρήνες ; πυρήνων. Να δώσετε 3 παραδείγµατα τέτοιων Απάντηση ιαδικασίες (που µπορεί να είναι

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

Κεφάλαιο 5ο: Εντολές Επανάληψης

Κεφάλαιο 5ο: Εντολές Επανάληψης Χρήστος Τσαγγάρης ΕΕ ΙΠ Τµήµατος Μαθηµατικών, Πανεπιστηµίου Αιγαίου Κεφάλαιο 5ο: Εντολές Επανάληψης Η διαδικασία της επανάληψης είναι ιδιαίτερη συχνή, αφού πλήθος προβληµάτων µπορούν να επιλυθούν µε κατάλληλες

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

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n

ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. nn n n ΚΕΦΑΛΑΙΟ 3 ΑΡΙΘΜΗΤΙΚΗ ΕΠΙΛΥΣΗ ΓΡΑΜΜΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ 3 Ο αλγόριθµος Gauss Eστω =,3,, µε τον όρο γραµµικά συστήµατα, εννοούµε συστήµατα εξισώσεων µε αγνώστους της µορφής: a x + + a x = b a x + + a x = b a

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

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

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

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

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

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

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

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

Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: Αρχιτεκτονικές Von Neuman, Harvard. Κατηγοριοποίηση κατά Flynn. Υπολογισμός απόδοσης Συστημάτων

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

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών Η επεξεργασία των δεδομένων ακολουθεί μια στερεότυπη διαδρομή: τα δεδομένα εισάγονται στο υπολογιστικό σύστημα, υφίστανται μια ορισμένη επεξεργασία και

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

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

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

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

Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853

Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853 Εργασία για το μεταπτυχιακό μάθημα Παράλληλοι υπολογισμοί από τον φοιτητή Μουζακίδη Αλέξανδρο AM M 853 Θέμα Παράλληλη Αριθμητική Επίλυση Μερικών Διαφορικών Εξισώσεων με τις μεθόδους Jacob και Jacob over

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

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

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

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

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο. Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΑΘΗΜΑ 3 Ο Σταθερές-Παράμετροι-Μεταβλητές Αριθμητικοί & Λογικοί Τελεστές Δομή ελέγχου-επιλογής Σύνθετοι έλεγχοι ΣΙΝΑΤΚΑΣ Ι. ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ 2010-11 1 Μεταβλητές-Σταθερές-Παράμετροι Τα στοιχεία

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

Εισαγωγή στον Προγραμματισμό

Εισαγωγή στον Προγραμματισμό Εισαγωγή στον Προγραμματισμό Πίνακες Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ακ. Έτος 2012-2013 Πίνακες Πολλές φορές θέλουμε να κρατήσουμε στην μνήμη πολλά αντικείμενα

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

Παράλληλοι Αλγόριθµοι

Παράλληλοι Αλγόριθµοι Παράλληλοι Αλγόριθµοι Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Το µοντέλο PRAΜ Πολλαπλασιασµός πινάκων Υπολογισµός αθροισµάτων προθέµατος ΕΠΛ 232 Αλγόριθµοι και Πολυπλοκότητα 13-1 Παράλληλοι Αλγόριθµοι

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

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter 3 Kuo [2005]: Chapters 1 & 4-5 Lapsley [2002]: Chapter 4 Hayes [2000]: Κεφάλαιo 8

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

Το εσωτερικό ενός Σ Β

Το εσωτερικό ενός Σ Β Επεξεργασία Ερωτήσεων 1 Εισαγωγή ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL) ηµιουργία/κατασκευή Εισαγωγή εδοµένων

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

Ζητήµατα Απόδοσης. Ιεραρχία Μνήµης. Αναγκαιότητα για Ιεραρχία Μνήµης. Processor-DRAM Gap (latency) Ε-85: Ειδικά Θέµατα Λογισµικού

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

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

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 1. Αφηρηµένες έννοιες και τεχνολογία υπολογιστών

Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση. Κεφάλαιο 1. Αφηρηµένες έννοιες και τεχνολογία υπολογιστών Οργάνωση και Σχεδίαση Υπολογιστών Η ιασύνδεση Υλικού και Λογισµικού, 4 η έκδοση Κεφάλαιο 1 Αφηρηµένες έννοιες και τεχνολογία υπολογιστών Ασκήσεις Η αρίθµηση των ασκήσεων είναι από την 4 η έκδοση του «Οργάνωση

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

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

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

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

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών

Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Συνήθεις διαφορικές εξισώσεις προβλήματα οριακών τιμών Οι παρούσες σημειώσεις αποτελούν βοήθημα στο μάθημα Αριθμητικές Μέθοδοι του 5 ου εξαμήνου του ΤΜΜ ημήτρης Βαλουγεώργης Καθηγητής Εργαστήριο Φυσικών

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

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΜΝΗΜΗ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΖΟΜΕΝΗ ΛΟΓΙΚΗ ΥΠΕΥΘΥΝΟΣ ΕΡΓΑΣΤΗΡΙΩΝ: ΧΡΥΣΟΣΤΟΜΟΣ ΧΡΥΣΟΣΤΟΜΟΥ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ 2001 ΕΠΛ 121 ΕΡΓΑΣΤΗΡΙΑ ΨΗΦΙΑΚΩΝ

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

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

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

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

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου;

Α Ν Α Λ Τ Η Α Λ Γ Ο Ρ Ι Θ Μ Ω Ν Κ Ε Υ Α Λ Α Ι Ο 5. Πως υπολογίζεται ο χρόνος εκτέλεσης ενός αλγορίθμου; 5.1 Επίδοση αλγορίθμων Μέχρι τώρα έχουμε γνωρίσει διάφορους αλγόριθμους (αναζήτησης, ταξινόμησης, κ.α.). Στο σημείο αυτό θα παρουσιάσουμε ένα τρόπο εκτίμησης της επίδοσης (performance) η της αποδοτικότητας

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

Εισαγωγή στην Αριθμητική Ανάλυση

Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στην Αριθμητική Ανάλυση Εισαγωγή στη MATLAB ΔΙΔΑΣΚΩΝ: ΓΕΩΡΓΙΟΣ ΑΚΡΙΒΗΣ ΒΟΗΘΟΙ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΩΚΡΑΤΗΣ, ΣΚΟΡΔΑ ΕΛΕΝΗ E-MAIL: SDIMITRIADIS@CS.UOI.GR, ESKORDA@CS.UOI.GR Τι είναι Matlab Είναι ένα περιβάλλον

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

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί)

Εισαγωγή στον Προγραµµατισµό. Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί) Εισαγωγή στον Προγραµµατισµό Αριθµητική Ανάλυση (ή Επιστηµονικοί Υπολογισµοί) ιδάσκοντες: Καθηγητής Ν. Μισυρλής, Επίκ. Καθηγητής Φ.Τζαφέρης ΕΚΠΑ 8 εκεµβρίου 04 Ανάλυση (ή Επιστηµονικοί8 Υπολογισµοί) εκεµβρίου

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

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ

ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ ΤΕΙ ΙΟΝΙΩΝ ΝΗΣΩΝ ΣΧΟΛΗ ΔΙΟΙΚΗΣΗΣ ΚΑΙ ΟΙΚΟΝΟΜΙΑΣ ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΕΙΣ. ΚΑΤΕΥΘΥΝΣΗ ΔΙΟΙΚΗΣΗΣ ΤΟΥΡΙΣΤΙΚΩΝ ΕΠΙΧΕΙΡΗΣΕΩΝ ΚΑΙ ΕΠΙΧΕΙΡΗΣΕΩΝ ΦΙΛΟΞΕΝΙΑΣ Πληροφορική I "Προγραμματισμός" B. Φερεντίνος

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

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ Κεφάλαιο 3.5-3.6, 3.2: Συναρτήσεις II ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ 12-1 Ανασκόπηση οµής Προγράµµατος µε Συναρτήσεις #include 1 void PrintMessage (); Πρότυπο ( ήλωση) Συνάρτησης (

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

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων 5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων http://ecourseschemengntuagr/courses/computational_methods_for_engineers/ Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων Γενικά:

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

Μαθηµατικά για Πληροφορική

Μαθηµατικά για Πληροφορική Μαθηµατικά για Πληροφορική Μάθηµα 7 Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών 1 / 31 Γενικό πλάνο 1 Θεωρητικό Υπόβαθρο 2 Αποτελεσµατική ακριβής αριθµητική

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

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων

5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων 5269: Υπολογιστικές Μέθοδοι για Μηχανικούς Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων http://ecourseschemengntuagr/courses/computational_methods_for_engineers/ Συστήματα Γραμμικών Αλγεβρικών Εξισώσεων Γενικά:

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

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n; Άσκηση 1 η Μέρος Α Ζητούμενο: Δίνεται το παρακάτω πρόγραμμα σε C καθώς και μια μετάφραση του σε assembly MIPS. Συμπληρώστε τα κενά. Σας υπενθυμίζουμε ότι ο καταχωρητής $0 (ή $zero) είναι πάντα μηδέν. int

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

Αριθµητική Ολοκλήρωση

Αριθµητική Ολοκλήρωση Κεφάλαιο 5 Αριθµητική Ολοκλήρωση 5. Εισαγωγή Για τη συντριπτική πλειοψηφία των συναρτήσεων f (x) δεν υπάρχουν ή είναι πολύ δύσχρηστοι οι τύποι της αντιπαραγώγου της f (x), δηλαδή της F(x) η οποία ικανοποιεί

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

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Εισαγωγή. Υπολογιστική Αλγεβρα. Μάθηµα 7

Γενικό πλάνο. Μαθηµατικά για Πληροφορική. Εισαγωγή. Υπολογιστική Αλγεβρα. Μάθηµα 7 Γενικό πλάνο Μαθηµατικά για Πληροφορική Μάθηµα 7 Θεωρητικό Υπόβαθρο Ηλίας Κουτσουπιάς, Γιάννης Εµίρης Τµήµα Πληροφορικής και Τηλεπικοινωνιών Πανεπιστήµιο Αθηνών Αποτελεσµατική ακριβής αριθµητική 3 Ταχύς

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

Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη)

Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη) Επιστημονικοί Υπολογισμοί (ή Υπολογιστική Επιστήμη) Ασχολoύνται με την κατασκευή μαθηματικών μοντέλων και με τεχνικές ποσοτικής ανάλυσης και τη χρήση υπολογιστών για την ανάλυση και την επίλυση επιστημονικών

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

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008

Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008 Παράλληλη Επεξεργασία Εργαστηριακή Ασκηση Εαρινού Εξαµήνου 2008 Αντικείµενο της εργαστηριακής άσκησης για το 2008 αποτελεί το πρόβληµα της εύρεσης της κατανοµής ϑερµότητας ενός αντικειµένου σε σταθερή

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

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C Εισαγωγή στην C Μορφή Προγράµµατος σε γλώσσα C Τµήµα Α Με την εντολή include συµπεριλαµβάνω στο πρόγραµµα τα πρότυπα των συναρτήσεων εισόδου/εξόδου της C.Το αρχείο κεφαλίδας stdio.h είναι ένας κατάλογος

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

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου

Matrix Algorithms. Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι. Αλγόριθμοι» Γ. Καούρη Β. Μήτσου Matrix Algorithms Παρουσίαση στα πλαίσια του μαθήματος «Παράλληλοι Αλγόριθμοι» Γ. Καούρη Β. Μήτσου Περιεχόμενα παρουσίασης Πολλαπλασιασμός πίνακα με διάνυσμα Πολλαπλασιασμός πινάκων Επίλυση τριγωνικού

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

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι Εισαγωγή Στον Προγραµµατισµό «C» Πίνακες Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Νικόλαος Δ. Τσελίκας Νικόλαος Προγραµµατισµός Δ. Τσελίκας Ι Πίνακες στη C Ένας πίνακας στη C είναι

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

Το υλικό του υπολογιστή

Το υλικό του υπολογιστή Το υλικό του υπολογιστή Ερωτήσεις 1. Τι αντιλαμβάνεστε με τον όρο υλικό; Το υλικό(hardware) αποτελείται από το σύνολο των ηλεκτρονικών τμημάτων που συνθέτουν το υπολογιστικό σύστημα, δηλαδή από τα ηλεκτρονικά

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

Παράλληλοι Υπολογισµοί (Μεταπτυχιακό)

Παράλληλοι Υπολογισµοί (Μεταπτυχιακό) Παράλληλοι Υπολογισµοί (Μεταπτυχιακό) ιδάσκων: Επίκ. Καθηγητής Φ. Τζαφέρης ΕΚΠΑ 19 Απριλίου 2010 ιδάσκων: Επίκ. Καθηγητής Φ. Τζαφέρης (ΕΚΠΑ) Παράλληλοι Υπολογισµοί (Μεταπτυχιακό) 19 Απριλίου 2010 1 / 31

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

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Εργαστήριο 6 Εντολές Επανάληψης Η δομή Επιλογής στη PASCAL H δομή Επανάληψης στη PASCAL. Ρεύμα Εισόδου / Εξόδου.. Ρεύμα Εισόδου / Εξόδου. To πρόγραμμα γραφικών gnuplot. Γραφικά στη PASCAL. Σκοπός 6.1 ΕΠΙΔΙΩΞΗ

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

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

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

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

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

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

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

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

Αριθµητική Ανάλυση. 27 Οκτωβρίου Αριθµητική Ανάλυση 27 Οκτωβρίου / 72

Αριθµητική Ανάλυση. 27 Οκτωβρίου Αριθµητική Ανάλυση 27 Οκτωβρίου / 72 Αριθµητική Ανάλυση 7 Οκτωβρίου 06 Αριθµητική Ανάλυση 7 Οκτωβρίου 06 / 7 Επαναληπτικές Μέθοδοι για την επίλυση Γραµµικών Συστηµάτων ίνεται το γραµµικό σύστηµα Ax = b όπου A R n n είναι µη ιδιάζων πίνακας

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

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι και Πολυπλοκότητα Αλγόριθµοι και Πολυπλοκότητα Στην ενότητα αυτή θα µελετηθούν τα εξής θέµατα: Πρόβληµα, Στιγµιότυπο, Αλγόριθµος Εργαλεία εκτίµησης πολυπλοκότητας: οι τάξεις Ο(n), Ω(n), Θ(n) Ανάλυση Πολυπλοκότητας Αλγορίθµων

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

Μεθοδολογίες παρεµβολής σε DTM.

Μεθοδολογίες παρεµβολής σε DTM. Μάθηµα : Αλγοριθµικές Βάσεις στη Γεωπληροφορική ιδάσκων : Συµεών Κατσουγιαννόπουλος Μεθοδολογίες παρεµβολής σε DTM.. Μέθοδοι παρεµβολής. Η παρεµβολή σε ψηφιακό µοντέλο εδάφους (DTM) είναι η διαδικασία

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

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

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

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 8 Χειμερινό Εξάμηνο 2016-2017 1. Προσομοίωση λειτουργίας ιεραρχίας

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΤΥΞΗ ΚΑΙ ΣΧΕΔΙΑΣΗ ΛΟΓΙΣΜΙΚΟΥ Η γλώσσα προγραμματισμού C ΕΡΓΑΣΤΗΡΙΟ 2: Εκφράσεις, πίνακες και βρόχοι 14 Απριλίου 2016 Το σημερινό εργαστήριο

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

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου

J-GANNO. Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β, Φεβ.1998) Χάρης Γεωργίου J-GANNO ΓΕΝΙΚΕΥΜΕΝΟ ΠΑΚΕΤΟ ΥΛΟΠΟΙΗΣΗΣ ΤΕΧΝΗΤΩΝ ΝΕΥΡΩΝΙΚΩΝ ΙΚΤΥΩΝ ΣΤΗ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ JAVA Σύντοµη αναφορά στους κύριους στόχους σχεδίασης και τα βασικά χαρακτηριστικά του πακέτου (προέκδοση 0.9Β,

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

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής

Γραµµική Αλγεβρα. Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων. Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Γραµµική Αλγεβρα Ενότητα 2 : Επίλυση Γραµµικών Εξισώσεων Ευστράτιος Γαλλόπουλος Τµήµα Μηχανικών Η/Υ & Πληροφορικής Αδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

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

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο) I χειμερινό εξάμηνο & ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II εαρινό εξάμηνο (σε κίτρινο υπόβαθρο). Νικολός Καθηγητής ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην ομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών Ενότητα 1.1 Υλικό

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

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων

Εισαγωγή. Γενική Εικόνα του Μαθήµατος. Το εσωτερικό ενός Σ Β. Εισαγωγή. Εισαγωγή Σ Β Σ Β. Αρχεία ευρετηρίου Κατάλογος συστήµατος Αρχεία δεδοµένων Βάσεις εδοµένων 2003-2004 Ευαγγελία Πιτουρά 1 ΜΕΡΟΣ 1 Γενική Εικόνα του Μαθήµατος Επεξεργασία Ερωτήσεων Μοντελοποίηση (Μοντέλο Ο/Σ, Σχεσιακό, Λογικός Σχεδιασµός) Προγραµµατισµός (Σχεσιακή Άλγεβρα, SQL)

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

min f(x) x R n b j - g j (x) = s j - b j = 0 g j (x) + s j = 0 - b j ) min L(x, s, λ) x R n λ, s R m L x i = 1, 2,, n (1) m L(x, s, λ) = f(x) +

min f(x) x R n b j - g j (x) = s j - b j = 0 g j (x) + s j = 0 - b j ) min L(x, s, λ) x R n λ, s R m L x i = 1, 2,, n (1) m L(x, s, λ) = f(x) + KΕΦΑΛΑΙΟ 4 Κλασσικές Μέθοδοι Βελτιστοποίησης Με Περιορισµούς Ανισότητες 4. ΠΡΟΒΛΗΜΑΤΑ ΜΕ ΠΕΡΙΟΡΙΣΜΟΥΣ ΑΝΙΣΟΤΗΤΕΣ Ζητούνται οι τιµές των µεταβλητών απόφασης που ελαχιστοποιούν την αντικειµενική συνάρτηση

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

Δυναμικός Προγραμματισμός

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

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

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

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

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

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

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

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

Ασκήσεις Caches

Ασκήσεις Caches Ασκήσεις Caches 1 Άσκηση 1η Θεωρήστε ένα σύστημα μνήμης με μία cache: 4-way set associative μεγέθους 256ΚΒ, με cache line 8 λέξεων. Χαρακτηριστικά συστήματος μνήμης: μέγεθος της λέξης είναι 32 bits. 1

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

Κεφάλαιο 6. Εισαγωγή στη µέθοδο πεπερασµένων όγκων επίλυση ελλειπτικών και παραβολικών διαφορικών εξισώσεων

Κεφάλαιο 6. Εισαγωγή στη µέθοδο πεπερασµένων όγκων επίλυση ελλειπτικών και παραβολικών διαφορικών εξισώσεων Κεφάλαιο 6 Εισαγωγή στη µέθοδο πεπερασµένων όγκων επίλυση ελλειπτικών παραβολικών διαφορικών εξισώσεων 6.1 Εισαγωγή Η µέθοδος των πεπερασµένων όγκων είναι µία ευρέως διαδεδοµένη υπολογιστική µέθοδος επίλυσης

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

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ ΜΝΗΜΗ Πρωτόκολλα Συνέπειας Μνήµης σε Πολυεπεξεργαστικά Υπολογιστικά Συστήµατα ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΡΓΑΣΤΗΡΙΟ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΥΨΗΛΩΝ ΕΠΙ

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

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες] Α. Στο παρακάτω διάγραµµα εµφανίζεται η εκτέλεση ενός παράλληλου αλγόριθµου που λύνει το ίδιο πρόβληµα µε έναν ακολουθιακό αλγόριθµο χωρίς πλεονασµό. Τα Α i και B i αντιστοιχούν σε ακολουθιακά υποέργα

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

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι

Διάλεξη 12: Διάχυση Μηνυμάτων. ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Διάλεξη 12: Διάχυση Μηνυμάτων ΕΠΛ 432: Κατανεμημένοι Αλγόριθμοι Ορισμός Προσομοίωσης Τι θα δούμε σήμερα Προσομοίωση Υπηρεσίας Διάχυσης Μηνυμάτων Ιδιότητες Διάταξης Μηνυμάτων ΕΠΛ432: Κατανεµηµένοι Αλγόριθµοι

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