Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών

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

Download "Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών"

Transcript

1 Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Φεβρουάριος 2014

2 Περιεχόμενα 1 Εισαγωγή 2 Επεξεργαστές γραφικών γενικού σκοπού 3 Compute Uni ed Device Architecture 4 Προγραμματιστικό Μοντέλο 5 CUDA C 6 Ζητήματα επίδοσης 7 Σύνδεσμοι 2 01 / 2014 Προγραμματισμός GPUs

3 Τι είναι οι επιταχυντές; Σύγχρονες CPUs, αρκετά γενικές για να καλύψουν κάθε ανάγκη 3 01 / 2014 Προγραμματισμός GPUs

4 Τι είναι οι επιταχυντές; Σύγχρονες CPUs, αρκετά γενικές για να καλύψουν κάθε ανάγκη Μια ιδέα από τα παλιά (70 s) Co-processors (μαθηματικές πράξεις) Επεξεργαστές γραφικών (GPUs) Ειδικές υπολογιστικά απαιτητικές λειτουργίες (signal processing, encryption κ.λπ.) 3 01 / 2014 Προγραμματισμός GPUs

5 Τι είναι οι επιταχυντές; Σύγχρονες CPUs, αρκετά γενικές για να καλύψουν κάθε ανάγκη Μια ιδέα από τα παλιά (70 s) Co-processors (μαθηματικές πράξεις) Επεξεργαστές γραφικών (GPUs) Ειδικές υπολογιστικά απαιτητικές λειτουργίες (signal processing, encryption κ.λπ.) Οι επιταχυντές σήμερα Η τεχνολογία επανέρχεται Υποστήριξη data- και compute-intensive εφαρμογών Ειδικές λειτουργίες (FPGAs, προγραμματιζόμενο h/w) 3 01 / 2014 Προγραμματισμός GPUs

6 Τι είναι οι επιταχυντές; Γενική αρχιτεκτονική System on Chip (SoC) Επεξεργαστής και συνεπεξεργαστές στο ίδιο chip Ενσωματωμένα συστήματα και όχι μόνο (π.χ., Intel s/amd s integrated graphics) + Μικρό overhead επικοινωνίας Dedicated h/w Off-chip Επικοινωνία μέσω του διαύλου PCIe (Intel Phi, NVIDIA GPUs, κ.α.) + Ευελιξία και επεκτασιμότητα Κόστος επικοινωνίας 4 01 / 2014 Προγραμματισμός GPUs

7 Γιατί επιταχυντές; Πολύ μεγάλη υπολογιστική ισχύς Καλή ενεργειακή απόδοση Μέσα στο top-10 των Top500 και Green500 τα τελευταία χρόνια Μικρό κόστος Μαζικά παράλληλοι επεξεργαστές (massively parallel/threaded) Βελτιστοποιημένοι για συγκεκριμένα workloads 5 01 / 2014 Προγραμματισμός GPUs

8 Επεξεργαστές γραφικών γενικού σκοπού Πηγή: anandtech.com Πολύ απλά επεξεργαστικά στοιχεία (single-issue, in-order) Massively threaded Πολύ μικρή ή ανύπαρκτη ιεραρχία κρυφής μνήμης Μεγάλο εύρος ζώνης μνήμης 6 01 / 2014 Προγραμματισμός GPUs

9 Compute Uni ed Device Architecture (CUDA) Επεξεργαστικά στοιχεία Πηγή: anandtech.com Συστοιχίες επεξεργαστών textures (Texture Processing Clusters TPCs) Πολυεπεξεργαστές ροών (Streaming Multiprocessors SMs) Επεξεργαστές ροών (Streaming Processors SPs) 7 01 / 2014 Προγραμματισμός GPUs

10 Compute Uni ed Device Architecture (CUDA) Streaming Multiprocessor SM Πηγή: anandtech.com Σύνολο επεξεργαστικών στοιχείων (8 32 SPs) Μονάδα προώθησης εντολών (MT issue) Instruction cache Constant cache (read-only) Texture cache Μοιραζόμενη μνήμη (Shared memory) Special Function Units (SFUs) Πολύ μεγάλο αρχείο καταχωρητών (8K 32K) 8 01 / 2014 Προγραμματισμός GPUs

11 Compute Uni ed Device Architecture (CUDA) Εκτέλεση νημάτων Υποστηρίζονται χιλιάδες ενεργά νήματα (μέχρι 24Κ, Fermi). Τα νήματα οργανώνονται σε ομάδες των 32 (warps) και δρομολογούνται από το SM στα SPs που το αποτελούν Σε κάθε κύκλο ρολογιού όλα τα SPs εκτελούν την ίδια εντολή σε κάθε νήμα του warp που δρομολογήθηκε Εάν συμβεί διακλάδωση εντός του warp, εκτελούνται και οι δύο κλάδοι, απενεργοποιώντας τα νήματα στον not taken κλάδο τους Τα νήματα οργανώνονται περαιτέρω σε μπλοκ (blocks) και πλέγματα (grids) Όλα τα νήματα ενός μπλοκ μοιράζονται τους πόρους του SM (register le, shared memory) Η χρονοδρομολόγηση των warps ενός block έχει μηδαμινό κόστος 9 01 / 2014 Προγραμματισμός GPUs

12 Compute Uni ed Device Architecture (CUDA) Ιεραρχία μνήμης Καθολική μνήμη (global memory) κύκλοι καθυστέρηση Προσβάσιμη από όλα τα SMs Μοιραζόμενη μνήμη (shared memory) On-chip Κοινή για όλα τα SPs ενός SM Μηδενική καθυστέρηση (ιδανικά) Χρήση και ως L1 cache / 2014 Προγραμματισμός GPUs

13 Compute Uni ed Device Architecture (CUDA) Ιεραρχία μνήμης Καθολική μνήμη (global memory) κύκλοι καθυστέρηση Προσβάσιμη από όλα τα SMs Μοιραζόμενη μνήμη (shared memory) On-chip Κοινή για όλα τα SPs ενός SM Μηδενική καθυστέρηση (ιδανικά) Χρήση και ως L1 cache Μνήμη σταθερών (constant memory) Μέρος της κύριας μνήμης, cached ανά SM Μνήμη textures (texture memory) Μέρος της κύριας μνήμης, cached ανά TPC Χρησιμοποιείται κυρίως από εφαρμογές γραφικών Τοπική μνήμη (local memory) Μέρος της κύριας μνήμης, όχι cached Μπορεί να χρησιμοποιηθεί από τον μεταγλωττιστή για αυτόματες μεταβλητές / 2014 Προγραμματισμός GPUs

14 Compute Uni ed Device Architecture (CUDA) Δυνατότητες συσκευών Οι δυνατότητες κάθε συσκευής καθορίζονται από το compute capability <major>.<minor> Ο αριθμός major δηλώνει έκδοση της κύριας αρχιτεκτονικής Ο αριθμός minor δηλώνει βελτιώσεις της αρχιτεκτονικής Αρχιτεκτονική Comp. Capability G G Fermi 2.0 Kepler / 2014 Προγραμματισμός GPUs

15 Προγραμματιστικό Μοντέλο Single Instruction Multiple Thread (SIMT) Όλα τα νήματα (ενός warp) εκτελούν την ίδια εντολή σε διαφορετικά δεδομένα εισόδου (πρβλ. data parallel, vector machines) / 2014 Προγραμματισμός GPUs

16 Προγραμματιστικό Μοντέλο Single Instruction Multiple Thread (SIMT) Όλα τα νήματα (ενός warp) εκτελούν την ίδια εντολή σε διαφορετικά δεδομένα εισόδου (πρβλ. data parallel, vector machines) Κάθε νήμα (ενός warp) μπορεί να ακολουθήσει διαφορετική ροή ελέγχου (divergent warp) Κάθε νήμα προγραμματίζεται με σειριακό τρόπο / 2014 Προγραμματισμός GPUs

17 Προγραμματιστικό Μοντέλο Αρχιτεκτονικά στοιχεία που εκτίθενται στο Π.Μ. Σχεδόν 1-1 αναλογία μεταξύ αρχιτεκτονικής και Π.Μ / 2014 Προγραμματισμός GPUs

18 Προγραμματιστικό Μοντέλο Αρχιτεκτονικά στοιχεία που εκτίθενται στο Π.Μ. Σχεδόν 1-1 αναλογία μεταξύ αρχιτεκτονικής και Π.Μ. Αρχιτεκτονικό στοιχείο Εκτίθεται TPC ΟΧΙ SM ΟΧΙ SP ΟΧΙ Warp ΝΑΙ Έμμεσα Block ΝΑΙ Grid ΝΑΙ Καθολική μνήμη ΝΑΙ Μνήμη σταθερών ΝΑΙ Μνήμη textures ΝΑΙ Μοιραζόμενη μνήμη ΝΑΙ Τοπική μνήμη ΝΑΙ Μέσω assembly Caches ΟΧΙ (Εξαίρεση L1/shared στις Fermi) / 2014 Προγραμματισμός GPUs

19 Προγραμματιστικό Μοντέλο Οργάνωση νημάτων I..grid.block..block.warp..warp Τα blocks μπορεί να είναι 1Δ, 2Δ ή 3Δ Το grid μπορεί να είναι 1Δ ή 2Δ / 2014 Προγραμματισμός GPUs

20 Προγραμματιστικό Μοντέλο Οργάνωση νημάτων II Σε κάθε νήμα εντός του block ανατίθεται ένα μοναδικό ID Τα νήματα ενός block (D x, D y, D z ) αριθμούνται κατά στήλες σειριακά στο διάστημα [0, D x D y D z 1] Το ID του νήματος (x, y) του block είναι x + yd x Το ID του νήματος (x, y, z) του block είναι x + yd x + zd x D y Τα νήματα ανά 32 σχηματίζουν ένα warp / 2014 Προγραμματισμός GPUs

21 Προγραμματιστικό Μοντέλο Οργάνωση νημάτων III Κάθε SM αναλαμβάνει την εκτέλεση ενός ή περισσοτέρων blocks / 2014 Προγραμματισμός GPUs

22 Προγραμματιστικό Μοντέλο Πρόσβαση στην ιεραρχία μνήμης Η ιεραρχία μνήμης εκτίθεται στο Π.Μ. και μπορεί να την χειριστεί ο προγραμματιστής Διαμοιρασμός της ιεραρχίας Καθολική μνήμη Μνήμη σταθερών Μνήμη textures Μοιραζόμενη μνήμη Register le Όλα τα blocks Όλα τα blocks Όλα τα blocks Όλα τα νήματα ενός block Όλα τα νήματα ενός block / 2014 Προγραμματισμός GPUs

23 Προγραμματιστικό Μοντέλο Συγχρονισμός Εντός ενός block (ή SM): Memory fences Barriers Atomic operations (compute capability >= 1.1) Καθολικά: Μεταξύ διαδοχικών κλήσεων πυρήνων Atomic operations (compute capability >= 1.1) Barriers (compute capability >= 2.0) / 2014 Προγραμματισμός GPUs

24 CUDA C Επέκταση της C με επιπλέον τύπους και προσδιοριστές Χρησιμοποιεί το front-end της C++ Πολυμορφισμός Παράμετροι προεπιλογής (default parameters) Υπερφόρτωση τελεστών Χώροι ονομάτων (namespaces) Πρότυπα συναρτήσεων (function templates) Αρχεία πηγαίου κώδικα με κατάληξη.cu Μεταγλωττιστής: nvcc Κώδικας που πρόκειται να τρέξει στην CPU (host code) Κώδικας που πρόκειται να τρέξει στην GPU (device code) Χρησιμοποιεί τον μεταγλωττιστή του συστήματος για την παραγωγή κώδικα για την CPU / 2014 Προγραμματισμός GPUs

25 CUDA C Διαδικασία μεταγλώττισης και εκτέλεσης $ nvcc o my_gpu_prog my_prog. cu + Just-In-Time μεταγλώττιση του πυρήνα GPU. nvcc front-end.. host compiler. nvcc core. PTX assembly. fat binary for VM / 2014 Προγραμματισμός GPUs

26 CUDA C Διαχωρισμός κώδικα host/device Με χρήση προσδιοριστών (quali ers) συναρτήσεων / 2014 Προγραμματισμός GPUs

27 CUDA C Διαχωρισμός κώδικα host/device Με χρήση προσδιοριστών (quali ers) συναρτήσεων device Εκτελείται στην συσκευή Μπορεί να κληθεί μόνο από κώδικα της συσκευής / 2014 Προγραμματισμός GPUs

28 CUDA C Διαχωρισμός κώδικα host/device Με χρήση προσδιοριστών (quali ers) συναρτήσεων device Εκτελείται στην συσκευή Μπορεί να κληθεί μόνο από κώδικα της συσκευής host Εκτελείται στο host Μπορεί να κληθεί μόνο από κώδικα του host / 2014 Προγραμματισμός GPUs

29 CUDA C Διαχωρισμός κώδικα host/device Με χρήση προσδιοριστών (quali ers) συναρτήσεων device Εκτελείται στην συσκευή Μπορεί να κληθεί μόνο από κώδικα της συσκευής host Εκτελείται στο host Μπορεί να κληθεί μόνο από κώδικα του host global Εκτελείται στην συσκευή Μπορεί να κληθεί μόνο από κώδικα του host Σημείο εισόδου στην συσκευή Συνήθως αναφέρεται ως GPU kernel / 2014 Προγραμματισμός GPUs

30 CUDA C Διαχωρισμός κώδικα host/device Παράδειγμα device i n t g e t _ t h r e a d _ i d ( ) { r e t u r n (... ) ; } global void my_gpu_kernel ( const f l o a t * input, f l o a t * r e s u l t ) { i n t t i d = g e t _ t h r e a d _ i d ( ) ;... } i n t main ( ) { f l o a t * my_input, * m y _ r e s u l t ;... my_gpu_kernel <<<G, B>>>(my_input, m y _ r e s u l t ) ; } / 2014 Προγραμματισμός GPUs

31 CUDA C Διαχωρισμός κώδικα host/device Περιορισμοί για τις συναρτήσεις συσκευής Δεν υποστηρίζεται αναδρομή Δεν υποστηρίζονται static μεταβλητές Δεν μπορούν να δεχτούν μεταβλητό αριθμό ορισμάτων Οι συναρτήσεις global δεν πρέπει να επιστρέφουν τιμή Κάθε κλήση συνάρτησης global θα πρέπει να προσδιορίζει τις παραμέτρους εκτέλεσης (blocks, grid, κ.λπ.) Τα ορίσματα στις συναρτήσεις global πρέπει να είναι μέχρι 256 byte / 2014 Προγραμματισμός GPUs

32 CUDA C Προσδιοριστές μεταβλητών device Βρίσκεται στην καθολική μνήμη Προσβάσιμη από όλα τα blocks constant Βρίσκεται στην μνήμη σταθερών Προσβάσιμη από όλα τα blocks shared Βρίσκεται στην μοιραζόμενη μνήμη του SM Προσβάσιμη από όλα τα νήματα ενός block / 2014 Προγραμματισμός GPUs

33 CUDA C Προσδιοριστές μεταβλητών device Βρίσκεται στην καθολική μνήμη Προσβάσιμη από όλα τα blocks constant Βρίσκεται στην μνήμη σταθερών Προσβάσιμη από όλα τα blocks shared Βρίσκεται στην μοιραζόμενη μνήμη του SM Προσβάσιμη από όλα τα νήματα ενός block Π.χ., πίνακας 256 oats στην μοιραζόμενη μνήμη: shared f l o a t a r r a y [ ] ; / 2014 Προγραμματισμός GPUs

34 CUDA C Τύποι διανυσμάτων (vector types) Συνένωση ίδιων βασικών τύπων int2, int3, int4, oat2, oat3, oat4 κ.ο.κ. dim3 Ισοδύναμος με τον uint3 Αρχικοποιεί αυτόματα σε 1 όλα τα μη προσδιορισμένα μέρη του, π.χ., dim3 a (5,5) = uint3 b (5,5,1) Χρησιμοποιείται για τον προσδιορισμό των διαστάσεων των blocks και grids Τα επιμέρους στοιχεία των τύπων αυτών προσπελαύνονται μέσω των πεδίων x, y, z και w Π.χ., a.x == 5, a.y == 5 και a.z == / 2014 Προγραμματισμός GPUs

35 CUDA C Περιβάλλον εκτέλεσης και οργάνωση νημάτων Κλήση πυρήνων Κατά την κλήση ενός πυρήνα για την GPU θα πρέπει να προσδιορίζονται πάντα το μέγεθος του block και του grid Παράδειγμα δημιουργίας μονοδιάστατου block 32 νημάτων και αντίστοιχου grid: i n t main (... ) {... dim3 block ( 3 2 ) ; dim3 g r i d ( N / 3 2 ) ; my_gpu_kernel <<<grid, block > > > (... ) ;... } / 2014 Προγραμματισμός GPUs

36 CUDA C Περιβάλλον εκτέλεσης και οργάνωση νημάτων Κλήση πυρήνων Κατά την κλήση ενός πυρήνα για την GPU θα πρέπει να προσδιορίζονται πάντα το μέγεθος του block και του grid Παράδειγμα δημιουργίας μονοδιάστατου block 32 νημάτων και αντίστοιχου grid: i n t main (... ) {... dim3 block ( 3 2 ) ; dim3 g r i d ( N / 3 2 ) ; my_gpu_kernel <<<grid, block > > > (... ) ;... }. Η κλήση του πυρήνα μπορεί να αποτύχει, εάν δεν επαρκούν οι πόροι της συσκευής (registers,.. shared memory) / 2014 Προγραμματισμός GPUs

37 CUDA C Περιβάλλον εκτέλεσης και οργάνωση νημάτων Προσδιορισμός νήματος Το ID κάθε νήματος προσδιορίζεται από τις «συντεταγμένες» του εντός του block στο οποίο ανήκει Η CUDA C ορίζει τις εξής μεταβλητές: uint3 threadidx: οι συντεταγμένες του νήματος εντός του τρέχοντος block uint3 blockidx: οι συντεταγμένες του block εντός του grid dim3 blockdim: οι διαστάσεις του block dim3 griddim: οι διαστάσεις του grid Π.χ., το ID του τρέχοντος νήματος ενός μονοδιάστατου block είναι tid = blockdim.x*blockidx.x + threadidx. x / 2014 Προγραμματισμός GPUs

38 CUDA C Παράδειγμα Άθροισμα διανυσμάτων Κάθε νήμα αναλαμβάνει τον υπολογισμό ενός στοιχείου Μονοδιάστατα blocks και grid global void vecadd ( const f l o a t * a, const f l o a t *b, f l o a t * c, s i z e _ t n ) { t i d = blockdim. x * b l o c k I d x. x + t h r e a d I d x. x ; i f ( t i d >= n ) return ; c [ t i d ] = a [ t i d ] + b [ t i d ] ; } / 2014 Προγραμματισμός GPUs

39 CUDA C Πρόσβαση στην ιεραρχία μνήμης Μνήμη σταθερών Με χρήση του προσδιοριστή constant Μοιραζόμενη μνήμη Με χρήση του προσδιοριστή shared Μνήμη textures Με χρήση ειδικών δομών που ονομάζονται texture references Τοπική μνήμη Με χρήση του προσδιοριστή. local στην PTX assembly / 2014 Προγραμματισμός GPUs

40 CUDA C Πρόσβαση στην ιεραρχία μνήμης Μοιραζόμενη μνήμη Το μέγεθος της μοιραζόμενης μνήμης μπορεί να καθοριστεί και κατά την κλήση μίας global συνάρτησης Κώδικας πυρήνα global my_gpu_kernel (... ) { } e x t e r n shared f l o a t shmem_buff [ ] ;... Κλήση του πυρήνα i n t main ( ) { }... shmem_size = 32* s i z e o f ( f l o a t ) ; my_gpu_kernel <<<G, B, shmem_size > > > (... ) ; / 2014 Προγραμματισμός GPUs

41 CUDA C Συγχρονισμός Memory fences Barriers Εγγυάται ότι όλες οι προσβάσεις στην μνήμη (global ή shared) μέχρι αυτό το σημείο έχουν πραγματοποιηθεί threadfence(), threadfence_block() Εγγυάται ότι όλα τα νήματα του block έχουν φτάσει σε κάποιο σημείο και όλες οι προσβάσεις που έχουν γίνει στην μνήμη (global ή shared) έχουν πραγματοποιηθεί syncthreads() Ατομικές συναρτήσεις Αναφορές στην μνήμη (global, shared) atomicadd(), atomicinc () κ.ο.κ / 2014 Προγραμματισμός GPUs

42 CUDA C Συγχρονισμός Memory fences Barriers Εγγυάται ότι όλες οι προσβάσεις στην μνήμη (global ή shared) μέχρι αυτό το σημείο έχουν πραγματοποιηθεί threadfence(), threadfence_block() Εγγυάται ότι όλα τα νήματα του block έχουν φτάσει σε κάποιο σημείο και όλες οι προσβάσεις που έχουν γίνει στην μνήμη (global ή shared) έχουν πραγματοποιηθεί syncthreads() Ατομικές συναρτήσεις Αναφορές στην μνήμη (global, shared) atomicadd(), atomicinc () κ.ο.κ.. Καθολικός συγχρονισμός..... Μόνο μεταξύ διαδοχικών κλήσεων του πυρήνα / 2014 Προγραμματισμός GPUs

43 CUDA C Παράδειγμα Γινόμενο Διανυσμάτων (Dot Product) v = a b v = N i=1 a ib i Τα μερικά αθροίσματα βρίσκονται στον πίνακα C Χρειάζεται και άλλος πυρήνας για την τελική αναγωγή global void dotprod ( const f l o a t *a, const f l o a t *b, f l o a t * c, s i z e _ t n ) { extern shared f l o a t partial_ prod [ ] ; / / equals the block s i z e i n t t i d = blockdim. x * b l o c k I d x. x + t h r e a d I d x. x ; i n t b t i d = t h r e a d I d x. x ; i f ( t i d >= n ) return ; p a r t i a l _ p r o d [ b t i d ] = a [ t i d ] * b [ t i d ] ; s y n c t h r e a d s ( ) ; } i f ( b t i d == 0 ) { f l o a t p a r t i a l _ s u m = 0 ; f o r ( s i z e _ t i = 0 ; i < blockdim. x ; ++ i ) partial_sum += parti al_ pro d [ i ] ; c [ b l o c k I d x. x ] = p a r t i a l _ s u m ; } / 2014 Προγραμματισμός GPUs

44 CUDA C Runtime Environment Συναρτήσεις διαχείρισης μνήμης cudamalloc(), cudafree() cudamallochost(), cudafreehost() Συναρτήσεις επικοινωνίας με την συσκευή cudamemcpy() Συναρτήσεις διαχείρισης σφαλμάτων cudagetlasterror () Συναρτήσεις διαχείρισης νημάτων cudathreadsynchronize(), cudathreadexit() Συναρτήσεις διαχείρισης της συσκευής Συναρτήσεις διαχείρισης γεγονότων. Μεταγλώττιση..... cudaeventcreate(), cudaeventdestroy(), cudaeventelapsedtime() Συνδεση με την βιβλιοθήκη cudart, lcudart / 2014 Προγραμματισμός GPUs

45 CUDA C Σκελετός Προγράμματος i n t main ( i n t argc, char ** argv ) { / / A l l o c a t e on h o s t cudamallochost (... ) ; / / I n i t i a l i z e your data / / A l l o c a t e on the d e v i c e cudamalloc (... ) ; / / Copy data to the d e v i c e cudamemcpy (..., cudamemcpyhosttodevice ) ; / / Setup b l o c k s and g r i d s dim3 block (... ) ; dim3 g r i d (... ) ; / / Launch the k e r n e l my_gpu_kernel <<<grid, block > > > (... ) ; / / Wait f o r k e r n e l to f i n i s h cudathreadsynchronize ( ) ; / / Copy r e s u l t back to h o s t cudamemcpy (..., cudamemcpydevicetohost ) ; / / P r o c e s s and r e p o r t the r e s u l t s } r e t u r n 0 ; / 2014 Προγραμματισμός GPUs

46 Προϋποθέσεις για υψηλή επίδοση Συνένωση αναφορών στην καθολική μνήμη (memory access coalescing) Warps χωρίς διακλαδώσεις Εκμετάλλευση της μοιραζόμενης μνήμης Μεγάλος αριθμός νημάτων Υψηλή χρησιμοποίηση των SMs / 2014 Προγραμματισμός GPUs

47 Προϋποθέσεις για υψηλή επίδοση Συνένωση αναφορών στην καθολική μνήμη Κρύβει την καθυστέρηση πρόσβασης στην καθολική μνήμη Μικρή ή καθόλου cache Η καθολική μνήμη χωρίζεται σε τμήματα (segments) των 32, 64 ή 128 byte, ευθυγραμμισμένα (aligned) στα αντίστοιχα όρια Η πρόσβαση στην μνήμη γίνεται με διενέργειες (transactions) ανά τμήμα Με την συνένωση των αναφορών στην μνήμη επιδιώκουμε με ένα transaction να μεταφέρουμε όσο το δυνατόν περισσότερα χρήσιμα δεδομένα Αυστηρές προϋποθέσεις στην ακολουθία των αναφορών ανάμεσα στα νήματα και στο alignment των δεδομένων / 2014 Προγραμματισμός GPUs

48 Προϋποθέσεις για υψηλή επίδοση Συνένωση αναφορών στην καθολική μνήμη Προϋποθέσεις (I) Τα 16 νήματα ενός half-warp θα πρέπει να προσπελαύνουν είτε λέξεις 4-byte (ένα 64-byte transaction) είτε λέξεις 8-byte (ένα 128-byte transaction) είτε λέξεις 16-byte (δύο 128-byte transactions) Και οι 16 λέξεις θα πρέπει να βρίσκονται στο ίδιο memory segment Το k-οστό νήμα θα πρέπει να προσπελαύνει την k-οστή λέξη / 2014 Προγραμματισμός GPUs

49 Προϋποθέσεις για υψηλή επίδοση Συνένωση αναφορών στην καθολική μνήμη Προϋποθέσεις (II) Παράδειγμα πρόσβασης σε λέξεις 4 byte Συνεχόμενες και ευθυγραμμισμένες Aligned and sequential Addresses: Threads: 0 31 Compute capability: Memory transactions: 1.0 and x 64B at x 64B at 192 Uncached 1.2 and x 64B at x 64B at Cached 1 x 128B at 128 Πηγή: NVIDIA CUDA Programming Guide / 2014 Προγραμματισμός GPUs

50 Προϋποθέσεις για υψηλή επίδοση Συνένωση αναφορών στην καθολική μνήμη Προϋποθέσεις (III) Παράδειγμα πρόσβασης σε λέξεις 4 byte Μη συνεχόμενες και ευθυγραμμισμένες Aligned and non-sequential Addresses: Threads: 0 31 Compute capability: Memory transactions: 1.0 and x 32B at x 32B at x 32B at x 32B at 224 Uncached 1.2 and x 64B at x 64B at Cached 1 x 128B at 128 Πηγή: NVIDIA CUDA Programming Guide / 2014 Προγραμματισμός GPUs

51 Προϋποθέσεις για υψηλή επίδοση Συνένωση αναφορών στην καθολική μνήμη Προϋποθέσεις (IV) Παράδειγμα πρόσβασης σε λέξεις 4 byte Συνεχόμενες και μη ευθυγραμμισμένες Misaligned and sequential Addresses: Threads: 0 31 Compute capability: Memory transactions: 1.0 and 1.1 Uncached 1.2 and Cached 7 x 32B at x 32B at x 32B at x 32B at x 32B at x 128B at x 64B at x 32B at x 128B at x 128B at 256 Πηγή: NVIDIA CUDA Programming Guide / 2014 Προγραμματισμός GPUs

52 Προϋποθέσεις για υψηλή επίδοση Warps χωρίς διακλαδώσεις Το SIMT μοντέλο επιτρέπει σε κάθε νήμα να ακολουθήσει διαφορετικό κλάδο, αλλά Κάθε κλάδος εκτελείται από όλα τα νήματα του warp, απενεργοποιώντας τα αντίστοιχα νήματα όταν εκτελείται ο not taken κλάδος τους Το πλήθος των χρήσιμων υπολογισμών ανά νήμα μειώνεται σημαντικά / 2014 Προγραμματισμός GPUs

53 Προϋποθέσεις για υψηλή επίδοση Εκμετάλλευση της μοιραζόμενης μνήμης Η πρόσβαση στην μοιραζόμενη μνήμη έχει μηδενικό κόστος Οργάνωση σε 16 ή 32 banks Διαδοχικές λέξεις ανατίθενται σε διαδοχικά banks Εκμετάλλευση της χρονικής τοπικότητας των προγραμμάτων Δύο φάσεις: 1. (Προ)φόρτωση των δεδομένων προς υπολογισμό 2. Υπολογισμοί με χρήση της μοιραζόμενης μνήμης / 2014 Προγραμματισμός GPUs

54 Προϋποθέσεις για υψηλή επίδοση Εκμετάλλευση της μοιραζόμενης μνήμης Η πρόσβαση στην μοιραζόμενη μνήμη έχει μηδενικό κόστος Οργάνωση σε 16 ή 32 banks Διαδοχικές λέξεις ανατίθενται σε διαδοχικά banks Εκμετάλλευση της χρονικής τοπικότητας των προγραμμάτων Δύο φάσεις: 1. (Προ)φόρτωση των δεδομένων προς υπολογισμό 2. Υπολογισμοί με χρήση της μοιραζόμενης μνήμης. Περιορισμοί.. Περιορισμένο μέγεθος (16 48 KiB) που μοιράζονται όλα τα νήματα ενός block.. Μπορεί να οδηγήσει σε χαμηλή χρησιμοποιήση των SMs Προσοχή στα bank con icts / 2014 Προγραμματισμός GPUs

55 Προϋποθέσεις για υψηλή επίδοση Υψηλή χρησιμοποιήση των SMs Κάθε SM υποστηρίζει ένα μέγιστο αριθμό ενεργών block (ή warps) Ένα warp είναι ενεργό όταν μπορεί να δρομολογηθεί Περισσότερα ενεργά νήματα μπορούν να κρύψουν τις καθυστερήσεις από την πρόσβαση στην καθολική μνήμη Η χρησιμοποιήση των SMs εξαρτάται από τις απαιτήσεις κάθε νήματος σε καταχωρητές και μοιραζόμενη μνήμη, το πλήθος των νημάτων ανά block / 2014 Προγραμματισμός GPUs

56 Προϋποθέσεις για υψηλή επίδοση Υψηλή χρησιμοποιήση των SMs Παράδειγμα Υποθέτουμε GPU με compute capability 1.0: Register le 8192 Shared memory Active blocks/sm 8 Active warps/sm 24 Υποθέτουμε πυρήνα με Block size 128 Register usage/thread 9 Shared memory usage/block 1024 Πόσα ενεργά warps υπάρχουν ανά SM? / 2014 Προγραμματισμός GPUs

57 Προϋποθέσεις για υψηλή επίδοση Υψηλή χρησιμοποιήση των SMs Παράδειγμα Υποθέτουμε GPU με compute capability 1.0: Register le 8192 Shared memory Active blocks/sm 8 Active warps/sm 24 Υποθέτουμε πυρήνα με Block size 128 Register usage/thread 9 Shared memory usage/block 1024 Πόσα ενεργά warps υπάρχουν ανά SM? CUDA Occupancy calculator / 2014 Προγραμματισμός GPUs

58 OpenCL Ανοιχτό πρότυπο για παράλληλο προγραμματισμό σε ετερογενείς αρχιτεκτονικές (π.χ., CPU+GPU) Διάφορες υλοποιήσεις (NVIDIA, AMD κ.ά) Ίδιες αρχές με το μοντέλο CUDA, αλλά αρκετά πιο γενικευμένο με ελαφρώς διαφορετική ορολογία + Τρέχει παντού + Πολλές δυνατότητες, ανοιχτές υλοποιήσεις API που απαιτεί περίοδο εξοικείωσης Θέματα επίδοσης (αρχικές υλοποιήσεις) / 2014 Προγραμματισμός GPUs

59 Ανακεφαλαίωση SIMT μοντέλο προγραμματισμού Επιδιώκουμε τοπικότητα των αναφορών μεταξύ συνεχόμενων νημάτων Τα νήματα οργανώνονται σε 32-άδες και δρομολογούνται στα SPs του SM σε κάθε κύκλο ρολογιού Κάθε μπλοκ τρέχει αποκλειστικά σε ένα SM Συγχρονισμός μόνο μεταξύ των νημάτων ενός block Προσπαθούμε να «κρύψουμε» το κόστος πρόσβασης στην καθολική μνήμη / 2014 Προγραμματισμός GPUs

60 Σύνδεσμοι NVIDIA Developer Zone, OpenCL / 2014 Προγραμματισμός GPUs

61 48 01 / 2014 Προγραμματισμός GPUs Συζήτηση Ερωτήσεις

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

Παράλληλος προγραμματισμός σε επεξεργαστές γραφικών Παράλληλος προγραμματισμός σε επεξεργαστές γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Νοέμβριος 2010 Περιεχόμενα...1 Σύντομη Ιστορική Αναδρομή...2

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

Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών

Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Δεκέμβριος 2015 Περιεχόμενα 2 01 / 2014 Προγραμματισμός

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

Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών

Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Νοέμβριος 2016 1 Εισαγωγικά 2 Compute Unified Device

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

Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών

Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Νοέμβριος 2017 1 Εισαγωγικά 2 Compute Unified Device

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

Παράλληλος Προγραμματισμός με OpenCL

Παράλληλος Προγραμματισμός με OpenCL Παράλληλος Προγραμματισμός με OpenCL Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Δεκέμβριος 2017 1 Γενικά για OpenCL 2 Platform Model 3 Execution Model

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

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ

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

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

CUDA Compute Unified Device Architecture

CUDA Compute Unified Device Architecture CUDA Compute Unified Device Architecture Καλέρης Κωνσταντίνος Πεµπτοετής φοιτητής του τµήµατος Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Η/Υ του Πανεπιστηµίου Πατρών ee5972@upnet.gr Καλλέργης Γεώργιος Πεµπτοετής

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

Προγραμματισμός GPUs μέσω του περιβάλλοντος CUDA

Προγραμματισμός GPUs μέσω του περιβάλλοντος CUDA Προγραμματισμός GPUs μέσω του περιβάλλοντος CUDA Κωνσταντινίδης Ηλίας Υποψήφιος Διδάκτωρ Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Νόμος Moore density doubles/18m

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

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος

ΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΞΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr ΣΥΣΤΗΜΑΤΑ

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

Ανάπτυξη αλγόριθμου Closest Pair με CUDA API

Ανάπτυξη αλγόριθμου Closest Pair με CUDA API ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟY ΑΥΤΟΜΑΤΙΣΜΟY ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη αλγόριθμου Closest Pair με

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Συστήματα Παράλληλης

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Άσκηση 5: Παράλληλος προγραμματισμός σε επεξεργαστές γραφικών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Άσκηση 5: Παράλληλος προγραμματισμός σε επεξεργαστές γραφικών ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Συστήματα Παράλληλης

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

Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) Εργασία Εξαμήνου

Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) Εργασία Εξαμήνου Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) Εργασία Εξαμήνου ΟΜΑΔΑ: Ιωαννίδης Σταύρος ΑΕΜ: 755 Ντελής Γιώργος ΑΕΜ: 726 Επιλογή της Εργασίας Για την εργασία μας επιλέξαμε την βελτιστοποίηση της

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

Π Τ Υ Χ Ι Α Κ Η / Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η / Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Π Τ Υ Χ Ι Α Κ Η / Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α Αυτόνομη ρύθμιση προγραμμάτων που χρησιμοποιούν GPU Δοδόπουλος Ρωμανός

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,

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

Ετήσια Τεχνική Έκθεση

Ετήσια Τεχνική Έκθεση Ετήσια Τεχνική Έκθεση Έτος 2012 ΘΑΛΗΣ Πολυτεχνείο Κρήτης Πλατφόρµα προηγµένων µαθηµατικών µεθόδων και λογισµικού για την επίλυση προβληµάτων πολλαπλών πεδίων (multiphysics, multidomain) σε σύγχρονες υπολογιστικές

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

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

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

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

Εισαγωγή στον GPGPU προγραμματισμό 50,000, ,000,000 (1 από 2) 19/5/2018

Εισαγωγή στον GPGPU προγραμματισμό 50,000, ,000,000 (1 από 2) 19/5/2018 Εισαγωγή στον GPGPU προγραμματισμό Ηλίας K. Σάββας Καθηγητής Τμ. Μηχ. Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας savvas@teilar.gr 50,000,000 Χρόνια που μας πήρε να φτάσουμε αυτό τον αριθμό χρηστών κάποιας υπηρεσίας:

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές

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

Προσομοιώσεις Monte Carlo σε GPU

Προσομοιώσεις Monte Carlo σε GPU ΕΘΝΙΚΟ ΜΕΤΣΟΒΕΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΟΜΕΑΣ ΦΥΣΙΚΗΣ Προσομοιώσεις Monte Carlo σε GPU Δημήτρης Καρκούλης Επιβλέπων: Κ. Αναγνωστόπουλος 15/07/2010 Πρακτική στο

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

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

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

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

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική»

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

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

Ατομική Διπλωματική Εργασία ΕΚΤΕΛΕΣΗ ΤΟΥ QUERY 6 ΤΟΥ BENCHMARK TPC-H ΣΕ ΚΑΡΤΑ ΓΡΑΦΙΚΩΝ, ΜΕ CUDA. Μαρία Λοϊζίδη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Ατομική Διπλωματική Εργασία ΕΚΤΕΛΕΣΗ ΤΟΥ QUERY 6 ΤΟΥ BENCHMARK TPC-H ΣΕ ΚΑΡΤΑ ΓΡΑΦΙΚΩΝ, ΜΕ CUDA. Μαρία Λοϊζίδη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Ατομική Διπλωματική Εργασία ΕΚΤΕΛΕΣΗ ΤΟΥ QUERY 6 ΤΟΥ BENCHMARK TPC-H ΣΕ ΚΑΡΤΑ ΓΡΑΦΙΚΩΝ, ΜΕ CUDA Μαρία Λοϊζίδη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεκέμβριος 2009 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

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

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

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

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

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

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

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

Κατανεμημένο Σύστημα Διαχείρισης Εργασιών Απομακρυσμένης Εκτέλεσης Κώδικα Για Επιταχυντές Γραφικών Σε Συστοιχίες Υπολογιστών ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Κατανεμημένο Σύστημα Διαχείρισης Εργασιών Απομακρυσμένης Εκτέλεσης Κώδικα Για Επιταχυντές Γραφικών Σε Συστοιχίες Υπολογιστών ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Κατανεμημένο Σύστημα Διαχείρισης Εργασιών

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

Πτυχιακή εργασία της φοιτήτριας Λαδοπούλου Παρασκευής ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

Πτυχιακή εργασία της φοιτήτριας Λαδοπούλου Παρασκευής ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΠΙΣΤΗΜΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ GPU / CUDA Της φοιτήτριας ΛΑΔΟΠΟΥΛΟΥ ΠΑΡΑΣΚΕΥΗΣ

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

Η πολυνηματική γλώσσα προγραμματισμού Cilk

Η πολυνηματική γλώσσα προγραμματισμού Cilk Η πολυνηματική γλώσσα προγραμματισμού Cilk Β Καρακάσης Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού Μεταπτυχιακό Μάθημα (688), ΣΗΜΜΥ Νοέμβριος 2009 Β Καρακάσης (CSLab, NTUA) ΣΗΜΜΥ, Μετ/κό 688 9/2009

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

Διαφορές single-processor αρχιτεκτονικών και SoCs

Διαφορές single-processor αρχιτεκτονικών και SoCs 13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό

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

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

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

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

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

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

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

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής Γιώργος Δημητρίου Ενότητα 3 η : Παράλληλη Επεξεργασία Παράλληλες Αρχιτεκτονικές Παράλληλο σύστημα είναι ένα σύνολο από επεξεργαστικά στοιχεία (processing elements) τα οποία: συνεργάζονται για γρήγορη επίλυση

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Συστήματα Παράλληλης

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Μηχανολόγων Μηχανικών Εργαστήριο Θερμικών Στροβιλομηχανών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Μηχανολόγων Μηχανικών Εργαστήριο Θερμικών Στροβιλομηχανών 2009 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Μηχανολόγων Μηχανικών Εργαστήριο Θερμικών Στροβιλομηχανών [ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΚΑΡΤΕΣ ΓΡΑΦΙΚΩΝ ΚΑΙ ΕΦΑΡΜΟΓΗ ΣΤΗΝ ΑΕΡΟΔΥΝΑΜΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ] Διπλωματική Εργασία του

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

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

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

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

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

Παράλληλη Επεξεργασία Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed

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

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ IΙ Λύβας Χρήστος chrislibas@ssl-unipi.gr Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος >_ ΣΥΝΑΡΤΗΣΕΙΣ ΣΤΗ C (1/3) +- Στη C χρησιμοποιούμε συχνα τις συναρτήσεις (functions),

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μελέτη και σύγκριση βασικών πράξεων βάσεων δεδοµένων σε µονάδες επεξεργασίας γραφικών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Μέντα Βαρβάρας

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ ΥΠΟΣΤΗΡΙΞΗ ΣΕ ΕΠΙΠΕΔΟ ΜΕΤΑΓΛΩΤΤΙΣΗΣ ΚΑΙ ΣΥΣΤΗΜΑΤΟΣ ΧΡΟΝΟΥ ΕΚΤΕΛΕΣΗΣ ΤΟΥ ΜΟΝΤΕΛΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ OpenCL ΣΕ ΕΠΕΞΕΡΓΑΣΤΕΣ

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

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών ακ. έτος 2006-2007 Νεκτάριος Κοζύρης Νίκος Αναστόπουλος {nkoziris,anastop}@cslab.ece.ntua.gr Άσκηση 1: pipelining Εξετάζουμε την εκτέλεση του παρακάτω

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

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 Πολυπύρηνοι επεξεργαστές, μέρος 2 Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Cache coherence & scalability! Τα πρωτόκολλα

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

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

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

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

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr Η έννοια της διεργασίας ιεργασία (process) είναι ο µηχανισµός εκτέλεσης ενός προγράµµατος σε ένα λειτουργικό σύστηµα. Η διεργασία είναι µια ενεργή

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

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

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

ii Πυργιώτης Θεμιστοκλής

ii Πυργιώτης Θεμιστοκλής Προγραμματισμός GPU σε περιβάλλον OpenCL Πολλαπλασιασμός πινάκων και ταύτιση αλφαριθμητικών Διπλωματική εργασία του Πυργιώτη Θεμιστοκλή ΑΜ: 1048 Επιβλέπων καθηγητής Μαργαρίτης Κωνσταντίνος Πρόγραμμα Μεταπτυχιακών

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

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

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

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

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

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

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

Παραλληλισμός Αλγορίθμων σε Κάρτες Γραφικών για Σχεδιασμό Κίνησης

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

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

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

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

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

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

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

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

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

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

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

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΜΗΧΑΝΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΜΗΧΑΝΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Προγραμματισμός μεθόδου συναρτήσεων ακτινικής βάσης (RBF) για τη μετατόπιση υπολογιστικών

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

All Pairs Shortest Path

All Pairs Shortest Path All Pairs Shortest Path χρησιμοποιώντας Κυπριώτη Αικατερίνη 6960 Μόσχογλου Στυλιανός 6978 20 Ιανουαρίου 2012 Περιεχόμενα 1 Πρόλογος 3 2 Ο σειριακός APSP 3 3 Η παραλληλοποίηση με 5 3.1 Το προγραμματιστικό

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

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

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

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

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική Ενότητα 7: Συναρτήσεις Νικόλαος Στεργιούλας Τμήμα Φυσικής Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Διεργασίες και Νήματα (2/2)

Διεργασίες και Νήματα (2/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Νήματα

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

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

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

Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές

Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές Μίλτος Δ. Γραμματικάκης, Αντώνης Παπαγρηγορίου, Πολύδωρος Πετράκης, Γεώργιος Κορνάρος,

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

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

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

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

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

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

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

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες 0x375 - Thessaloniki Tech Talks Sessions Event 0x2 19 Μαρτίου 2010 Περιεχόμενα 1 Εισαγωγή 2 Η κλήση συστήματος ptrace 3 Νήματα 4 Το πρόγραμμα εισαγωγής κώδικα prez 5 Επίλογος Γιατί; Πολλές φορές θέλουμε

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,

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

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

10 η Διάλεξη C++ - Πίνακες. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ 10 η Διάλεξη C++ - Πίνακες Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ Ανακεφαλαίωση Κατά την κλήση μιας συνάρτησης κατ αξία οι τιμές των ορισμάτων αντιγράφονται στις αντίστοιχες τυπικές παραμέτρους

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

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1

Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα. Προγραμματισμός II 1 Μεταγλώττιση και σύνδεση πολλαπλών αρχείων κώδικα Προγραμματισμός II 1 lalis@inf.uth.gr Χρήση λογισμικού που ήδη υπάρχει Τα πολύπλοκα συστήματα αναπτύσσονται σταδιακά, «χτίζοντας» πάνω σε υπάρχουσα λειτουργικότητα

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Εισαγωγή στη C θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

Εφαρμογές μικροελεγκτών

Εφαρμογές μικροελεγκτών Μικροελεγκτές Έναν ορισμό που θα μπορούσαμε να δώσουμε για τους μικροελεγκτές είναι ο εξής: Μικροελεγκτής είναι ένα προγραμματιζόμενο ολοκληρωμένο κύκλωμα το οποίο διαθέτει επεξεργαστή, μνήμη, διάφορα

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

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

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

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

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

Αρχιτεκτονική Υπολογιστών Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,

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

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

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

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

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

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ Παραγοντοποίηση Cholesky αλληλουχίας πινάκων σε μονάδες επεξεργασίας γραφικών

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

Παραλληλισμός σε επίπεδο εντολών

Παραλληλισμός σε επίπεδο εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης

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

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

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

Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) 3η Εργαστηριακή Άσκηση

Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) 3η Εργαστηριακή Άσκηση Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) 3η Εργαστηριακή Άσκηση ΟΝΟΜΑ: Ιωαννίδης Σταύρος ΑΕΜ: 755 Αποτελέσματα devicequery Profiling με το Vtune Το profiling έδειξε πως οι πιο αργές συναρτήσεις

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

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Δομημένος Προγραμματισμός Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων www.bpis.teicrete.gr 2 Ορισμός

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

Δομημένος Προγραμματισμός

Δομημένος Προγραμματισμός ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Δομημένος Προγραμματισμός Ενότητα: Συναρτήσεις θεωρία Δ. Ε. Μετάφας Τμ. Ηλεκτρονικών Μηχ. Τ.Ε. Άδειες Χρήσης Το παρόν εκπαιδευτικό

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

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

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

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

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις

Προγραμματισμός συστημάτων UNIX/POSIX. Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις Προγραμματισμός συστημάτων UNIX/POSIX Θέμα επιλεγμένο από τους φοιτητές: Προγραμματιστικές τεχνικές που στοχεύουν σε επιδόσεις Βελτιστοποιήσεις με στόχο τις επιδόσεις Σε αρκετές περιπτώσεις δεν αρκεί να

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU

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

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1

Μνήμη Διευθύνσεις Δείκτες. Προγραμματισμός II 1 Μνήμη Διευθύνσεις Δείκτες Προγραμματισμός II 1 lalis@inf.uth.gr Μνήμη Η/Υ Ειδικό υλικό, ξεχωριστό από τον επεξεργαστή Χρησιμεύει για την αποθήκευση δεδομένων και της κατάστασης εκτέλεσης του προγράμματος

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

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

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

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

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

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

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

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

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

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

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

Διαδικασιακός Προγραμματισμός Τμήμα ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΤΕ ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Διαδικασιακός Προγραμματισμός Διάλεξη 7 η Πίνακες Οι διαλέξεις βασίζονται στο βιβλίο των Τσελίκη και Τσελίκα C: Από τη Θεωρία στην Εφαρμογή Σωτήρης Χριστοδούλου

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

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες

ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ. Σκοπός της Άσκησης. 1. Εισαγωγικά στοιχεία για τους Δείκτες Σκοπός της Άσκησης ΑΣΚΗΣΗ 6: ΔΕΙΚΤΕΣ Ο σκοπός αυτής της εργαστηριακής άσκησης είναι η εξοικείωση με τη χρήση των δεικτών (pointers). Οι δείκτες δίνουν την δυνατότητα σε προγράμματα να προσομοιώνουν τη

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

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 10 η : Βελτιστοποιήσεις Τοπικότητας και Παραλληλισμού: Εξαρτήσεις και Μετασχηματισμοί Βρόχων Επεξεργασία Πινάκων Παραλληλισμός επιπέδου βρόχου Λόγω παραλληλισμού δεδομένων Επιτυγχάνεται

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

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Ταυτόχρονη εκτέλεση Ο προγραμματιστής δεν ελέγχει (άμεσα) την εκτέλεση/εναλλαγή των νημάτων Δεν γνωρίζει πότε θα αρχίσει

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

Κεντρική Μονάδα Επεξεργασίας

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

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

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

Αρχιτεκτονική Μνήμης ΕΣ 08 Επεξεργαστές Ψηφιακών Σημάτων Αρχιτεκτονική Μνήμης Τμήμα Επιστήμη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήμιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapters 3 & 4 Lapsley [2002]: Chapter

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

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη)

Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) Προβλήματα ταυτόχρονης εκτέλεσης (για νήματα με κοινή μνήμη) ΙΙΙ 1 lalis@inf.uth.gr Υποθέσεις εργασίας Νήματα/διεργασίες με κοινή μνήμη Αυτόματη διακοπή/εναλλαγή νημάτων/διεργασιών (π.χ. πάνω από 1 CPU

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

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

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

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

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης Αρης Ευθυμίου Λειτουργία μνήμης Η μνήμη είναι ένας πίνακας αποθήκευσης Οταν διαβάζουμε μια θέση, περιμένουμε να πάρουμε την τελευταία τιμή που έχει

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

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

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

3 η ΑΣΚΗΣΗ. Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

3 η ΑΣΚΗΣΗ. Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr 3 η ΑΣΚΗΣΗ Προηγμένα

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

Εισαγωγικά & Βασικές Έννοιες

Εισαγωγικά & Βασικές Έννοιες Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο

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

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1 Δημιουργία & Τερματισμός Διεργασιών Προγραμματισμός II 1 lalis@inf.uth.gr Δημιουργία νέας διεργασίας pid_t fork() Η fork δεν έχει παραμέτρους Δημιουργεί μια νέα διεργασία που είναι ένα αντίγραφο της διεργασίας

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

Αρχιτεκτονικές Συνόλου Εντολών

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

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