Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών
|
|
- Αλθαία Δυοβουνιώτης
- 7 χρόνια πριν
- Προβολές:
Transcript
1 Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Νοέμβριος 2016
2 1 Εισαγωγικά 2 Compute Unified Device Architecture (CUDA) CUDA parallel computing platform CUDA programming model 3 CUDA C 4 Ζητήματα επίδοσης 5 Χρήσιμα links 2 11 / 2016 Συστήματα Παράλληλης Επεξεργασίας
3 1 Εισαγωγικά 2 Compute Unified Device Architecture (CUDA) CUDA parallel computing platform CUDA programming model 3 CUDA C 4 Ζητήματα επίδοσης 5 Χρήσιμα links 3 11 / 2016 Συστήματα Παράλληλης Επεξεργασίας
4 Τι είναι οι Επεξεργαστές Γραφικών (GPUs); Επιταχυντές για την επεξεργασία γραφικών Υψηλός παραλληλισμός σε εφαρμογές γραφικών (visualization, games, κ.λπ.) Αρχικά, σχεδιάστηκαν μόνο για αυτό (hardwired logic, little to no programmability) Η ιδέα της επιτάχυνσης υπολογισμών υπάρχει από τα 70's Για μαθηματικές πράξεις Για ειδικές υπολογιστικά απαιτητικές λειτουργίες (signal processing, encryption κ.λπ.) Οι GPUs σήμερα "Fully" programmable από το 2006 Χρησιμοποιούνται ευρέως για την επιτάχυνση data και compute intensive εφαρμογών 4 11 / 2016 Συστήματα Παράλληλης Επεξεργασίας
5 Γιατί GPUs; Πολύ μεγάλη υπολογιστική ισχύς (> 1 TFLOPS) Καλή ενεργειακή απόδοση CPU > 1000pJ/instruction vs GPU < 200pJ/instruction Μέσα στο top-10 του Green500 τα τελευταία χρόνια Χαμηλότερο $/performance Μαζικά παράλληλοι επεξεργαστές (massively parallel/threaded) 5 11 / 2016 Συστήματα Παράλληλης Επεξεργασίας
6 CPU vs GPU architecture CPUs - optimized for single-thread performance of legacy workloads Λίγα και σύνθετα cores (2-22) Υψηλή συχνότητα ρολογιού (2-4 GΗz) Μικρό register file Σύνθετο control logic -- branch prediction -- in-order execution Λίγα και ισχυρά ALUs (2-16) Small-scale simultaneous multi-threading Memory prefetchers Υποσύστημα μνήμης 3-4 επίπεδα κρυφής μνήμης Kρυφές μνήμες μεγάλης χωρητικότητας ( MB) Μέτριο εύρος ζώνης κύριας μνήμης ( 60 GB/s) Thread scheduling handled by software (OS) Χρονοβόρο context-switching 6 11 / 2016 Συστήματα Παράλληλης Επεξεργασίας
7 CPU vs GPU architecture GPUs - optimized for aggregate performance of data-parallel workloads 7 11 / 2016 Συστήματα Παράλληλης Επεξεργασίας Περισσότερα και απλούστερα cores (16-60) Μικρότερη συχνότητα ρολογιού ( GΗz) Μεγάλο register file Απλούστερο control logic -- no branch prediction -- no out-of-order execution Πολλά, αλλά απλούστερα ALUs (64-192) Large-scale interleaved multi-threading Υποσύστημα μνήμης 1-2 επίπεδα κρυφής μνήμης Kρυφές μνήμες μικρής χωρητικότητας ( KB) Υψηλό εύρος ζώνης κύριας μνήμης (>300 GB/s) Thread scheduling handled entirely by hardware Zero-cost context-switching
8 Flynn's Taxonomy CPUs vs GPUs. CPUs. ṂIMD + SIMD SIMD implementation: "explicit" με επεκτάσεις του ISA (π.χ. ΜΜΧ, SSE, AVX extensions για x86) ο προγραμματιστής (ή ο μεταγλωττιστής) προσαρμόζει ρητά τον κώδικα η αντιμετώπιση της "διαφοροποίησης εκτέλεσης" είναι απαραίτητη για την ορθότητα του προγράμματος -- masking 8 11 / 2016 Συστήματα Παράλληλης Επεξεργασίας
9 Flynn's Taxonomy CPUs vs GPUs. GPUs. ṢIMD SIMD implementation: "implicit" με διαχείριση από το hardware ο προγραμματιστής (ή ο μεταγλωττιστής) παράγει σειριακό κώδικα τα νήματα μπορούν να διαφοροποιούνται ελεύθερα -- μπορεί να επηρεάσει αρνητικά την επίδοση η αντιμετώπιση της "διαφοροποίησης εκτέλεσης" αποτελεί βελτιστοποίηση 9 11 / 2016 Συστήματα Παράλληλης Επεξεργασίας
10 GPGPU General-Purpose computation on Graphics Processing Units χρήση των GPUs για επιτάχυνση υψηλά παραλληλοποιήσιμων υπολογιστικών προβλημάτων γενικού σκοπού Ποιες εφαρμογές είναι ιδανικές για GPGPU; υψηλός παραλληλισμός υψηλό arithmetic intensity μεγάλα data sets Πώς γίνεται ο GPGPU προγραμματισμός; Vendor specific interfaces: -- Nvidia CUDA -- AMD Stream Generic interfaces: -- OpenCL -- OpenACC -- OpenMP (?) / 2016 Συστήματα Παράλληλης Επεξεργασίας
11 GPGPU Processing flow Βασικά βήματα: 1. Αντιγραφή των δεδομένα που θέλουμε να επεξεργαστούμε από τη μνήμη της CPU στη μνήμη της GPU 2. Η CPU αναθέτει τον υπολογισμό στην GPU 3. Ο υπολογισμός εκτελείται στην GPU 4. Αντιγραφή των αποτελεσμάτων του υπολογισμού από τη μνήμη της GPU στη μνήμη της CPU / 2016 Συστήματα Παράλληλης Επεξεργασίας
12 1 Εισαγωγικά 2 Compute Unified Device Architecture (CUDA) CUDA parallel computing platform CUDA programming model 3 CUDA C 4 Ζητήματα επίδοσης 5 Χρήσιμα links / 2016 Συστήματα Παράλληλης Επεξεργασίας
13 Compute Unified Device Architecture (CUDA) Parallel computing platform + programming model Aναπτύχθηκε από την NVIDIA ειδικά για GPGPU computing / 2016 Συστήματα Παράλληλης Επεξεργασίας
14 1 Εισαγωγικά 2 Compute Unified Device Architecture (CUDA) CUDA parallel computing platform CUDA programming model 3 CUDA C 4 Ζητήματα επίδοσης 5 Χρήσιμα links / 2016 Συστήματα Παράλληλης Επεξεργασίας
15 CUDA parallel computing platform Γενική αρχιτεκτονική μίας NVIDIA GPU Κάθε συσκευή GPU αποτελείται από συστοιχίες πολυεπεξεργαστών ροών (Streaming Multiprocessors -- SMs) Κάθε πολυεπεξεργαστής ροών αποτελείται από: Eπεξεργαστές ροών (Streaming Processors -- SPs ή αλλιώς CUDA cores) Πολύ μεγάλο αρχείο καταχωρητών (8K -- 32K) Shared memory Constant cache (read-only) Texture cache... Πηγή: NVIDIA CUDA Programming Guide / 2016 Συστήματα Παράλληλης Επεξεργασίας
16 CUDA parallel computing platform Βασική δομική μονάδα: Streaming Multiprocessor (SM) Υποστηρίζονται εκατοντάδες ενεργά νήματα ανά SM Κάθε SM αναλαμβάνει να εκτελέσει ένα ή περισσότερα μπλοκ από νήματα (thread blocks) Όλα τα νήματα ενός thread block μοιράζονται τους πόρους του SM Τα νήματα οργανώνονται περαιτέρω σε ομάδες των 32 νημάτων (warps) και δρομολογούνται από τον(τους) warp scheduler(s) στα cores που το αποτελούν Σε κάθε κύκλο ρολογιού όλα τα cores εκτελούν την ίδια εντολή για κάθε νήμα του warp που δρομολογήθηκε Η χρονοδρομολόγηση των warps ενός μπλοκ έχει μηδαμινό κόστος Πηγή: NVIDIA CUDA Programming Guide / 2016 Συστήματα Παράλληλης Επεξεργασίας
17 CUDA parallel computing platform Παράδειγμα: αρχιτεκτονική Fermi Πηγή: NVIDIA CUDA Programming Guide / 2016 Συστήματα Παράλληλης Επεξεργασίας
18 CUDA parallel computing platform Δυνατότητες συσκευών Οι δυνατότητες κάθε συσκευής καθορίζονται από το ``compute capability'' <major>.<minor> Ο αριθμός major δηλώνει έκδοση της κύριας αρχιτεκτονικής Ο αριθμός minor δηλώνει βελτιώσεις της αρχιτεκτονικής Microarchitecture Comp. Capability Tesla 1.x Fermi 2.x Kepler 3.x Maxwell 5.x / 2016 Συστήματα Παράλληλης Επεξεργασίας
19 1 Εισαγωγικά 2 Compute Unified Device Architecture (CUDA) CUDA parallel computing platform CUDA programming model 3 CUDA C 4 Ζητήματα επίδοσης 5 Χρήσιμα links / 2016 Συστήματα Παράλληλης Επεξεργασίας
20 CUDA programming model Heterogeneous Συμμετέχουν η CPU (ως host) και η GPU (ως device) Η εκτέλεση υπολογισμών στην GPU γίνονται μέσα από kernel launches kernel = ο κώδικας που εκτελεί κάθε νήμα (σειριακός) Κάθε kernel εκτελείται N φορές, όπου Ν ο αριθμός των νημάτων που ορίζονται από τον προγραμματιστή Single Instruction Multiple Thread (SIMT) μοντέλο εκτέλεσης Κλιμακώσιμο Το ίδιο εκτελέσιμο μπορεί να τρέξει σε πολλές διαφορετικές κάρτες γραφικών / 2016 Συστήματα Παράλληλης Επεξεργασίας
21 CUDA programming model Thread abstraction Κάθε υπολογιστικός πυρήνας (kernel) που ανατίθεται προς εκτέλεση στην GPU οργανώνεται από τον προγραμματιστή σε ένα πλέγμα (grid) από νήματα grid. thread block thread block warp warp 32 threads Το grid και τα thread blocks μπορούν να είναι 1D, 2D ή 3D Υπάρχουν περιορισμοί στις διαστάσεις του grid και του thread block (ανάλογα με το compute capability) / 2016 Συστήματα Παράλληλης Επεξεργασίας
22 CUDA programming model Thread abstraction Τι αναπαριστά ένα CUDA thread; ένα ανεξάρτητο νήμα εκτέλεσης με δικό του program counter, καταχωρητές, processor state κ.λπ. Τι αναπαριστά ένα CUDA thread block; ένα (data) parallel και ανεξάρτητο task όλα τα thread blocks έχουν το ίδιο σημείο εισόδου, αλλά μπορούν να διαφοροποιηθούν στην εκτέλεση κώδικα το πρόγραμμα οφείλει να είναι ορθό για οποιαδήποτε σειρά εκτέλεσης των threads blocks / 2016 Συστήματα Παράλληλης Επεξεργασίας
23 CUDA programming model Thread abstraction Σε κάθε νήμα εκτέλεσης ανατίθεται ένα μοναδικό ID εντός του thread block στο οποίο ανήκει Το ID κάθε νήματος προσδιορίζεται από τις «συντεταγμένες» του εντός του thread block στο οποίο ανήκει Για μπλοκ (Dx, Dy), το ID του νήματος (x, y) είναι x + yd x Για μπλοκ (Dx, Dy, Dz), το ID του νήματος (x, y, z) είναι x + yd x + zd xd y Η οργάνωση των νημάτων ενός thread block σε warps γίνεται σειριακά με βάση τα IDs των νημάτων το warp 0 περιέχει τα νήματα με IDs 0-31, το warp 1 τα νήματα με IDs 32-63, κ.ο.κ. αν ο αριθμός νημάτων του thread block δεν είναι πολλαπλάσιο του warp size (32) τότε το τελευταίο warp θα συμπληρωθεί με νήματα τα οποία θα είναι «μαρκαρισμένα» ως ανενεργά Τα IDs χρησιμοποιούνται συνήθως για την ανάθεση δεδομένων σε νήματα / 2016 Συστήματα Παράλληλης Επεξεργασίας
24 CUDA programming model Υποστηριζόμενοι τρόποι παραλληλοποίησης Thread parallelism κάθε νήμα είναι ένα ανεξάρτητο νήμα εκτέλεσης Data parallelism ανάμεσα σε νήματα ενός thread block ανάμεσα σε thread blocks ενός grid Task parallelism ανάμεσα σε thread block ενός grid ανάμεσα σε kernels / 2016 Συστήματα Παράλληλης Επεξεργασίας
25 CUDA programming model Συγχρονισμός Εντός ενός thread block (ή SM): Memory fences Barriers Atomic operations (compute capability >= 1.1) Καθολικά: Μεταξύ διαδοχικών κλήσεων πυρήνων Atomic operations (compute capability >= 1.1) / 2016 Συστήματα Παράλληλης Επεξεργασίας
26 CUDA programming model Αρχιτεκτονικά στοιχεία που εκτίθενται στο Π.Μ. Σχεδόν `1-1' αναλογία μεταξύ αρχιτεκτονικής και Π.Μ. Αρχιτεκτονικό στοιχείο Εκτίθεται GPC ΟΧΙ SM ΟΧΙ SP ΟΧΙ Warp ΝΑΙ Έμμεσα Thread Block ΝΑΙ Grid ΝΑΙ Καθολική μνήμη ΝΑΙ Μνήμη σταθερών ΝΑΙ Μνήμη textures ΝΑΙ Μοιραζόμενη μνήμη ΝΑΙ Τοπική μνήμη ΝΑΙ Μέσω assembly Caches ΟΧΙ (Εξαίρεση L1/shared στις Fermi) / 2016 Συστήματα Παράλληλης Επεξεργασίας
27 CUDA programming model Πρόσβαση στην ιεραρχία μνήμης Η ιεραρχία μνήμης εκτίθεται στο Π.Μ. και μπορεί να την χειριστεί ο προγραμματιστής Διαμοιρασμός της ιεραρχίας Καθολική μνήμη Όλα τα blocks Μνήμη σταθερών Όλα τα blocks Μνήμη textures Όλα τα blocks Μοιραζόμενη μνήμη Όλα τα νήματα ενός block Register file Όλα τα νήματα ενός block / 2016 Συστήματα Παράλληλης Επεξεργασίας
28 1 Εισαγωγικά 2 Compute Unified Device Architecture (CUDA) CUDA parallel computing platform CUDA programming model 3 CUDA C 4 Ζητήματα επίδοσης 5 Χρήσιμα links / 2016 Συστήματα Παράλληλης Επεξεργασίας
29 CUDA C Επέκταση της C με επιπλέον τύπους και προσδιοριστές Χρησιμοποιεί το front-end της C++ Πολυμορφισμός Παράμετροι προεπιλογής (default parameters) Υπερφόρτωση τελεστών Χώροι ονομάτων (namespaces) Πρότυπα συναρτήσεων (function templates) Αρχεία πηγαίου κώδικα με κατάληξη.cu Μεταγλωττιστής: nvcc Κώδικας που πρόκειται να τρέξει στην CPU (host code) Κώδικας που πρόκειται να τρέξει στην GPU (device code) Χρησιμοποιεί τον μεταγλωττιστή του συστήματος για την παραγωγή κώδικα για την CPU / 2016 Συστήματα Παράλληλης Επεξεργασίας
30 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 / 2016 Συστήματα Παράλληλης Επεξεργασίας
31 CUDA C Διαχωρισμός κώδικα host/device Με χρήση προσδιοριστών (qualifiers) συναρτήσεων device Εκτελείται στην συσκευή Μπορεί να κληθεί μόνο από κώδικα της συσκευής host Εκτελείται στο host Μπορεί να κληθεί μόνο από κώδικα του host global Εκτελείται στην συσκευή Συνήθως αναφέρεται ως GPU kernel / 2016 Συστήματα Παράλληλης Επεξεργασίας
32 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, * my_result ;... my_gpu_kernel <<<G, B>>>(my_input, m y_result ) ; } / 2016 Συστήματα Παράλληλης Επεξεργασίας
33 CUDA C Διαχωρισμός κώδικα host/device -- Περιορισμοί για τις συναρτήσεις συσκευής Δεν υποστηρίζονται static μεταβλητές Δεν μπορούν να δεχτούν μεταβλητό αριθμό ορισμάτων Οι συναρτήσεις global δεν πρέπει να επιστρέφουν τιμή Κάθε κλήση συνάρτησης global θα πρέπει να προσδιορίζει τις παραμέτρους εκτέλεσης (blocks, grid, κ.λπ.) Τα ορίσματα στις συναρτήσεις global πρέπει να είναι μέχρι 256 byte / 2016 Συστήματα Παράλληλης Επεξεργασίας
34 CUDA C Προσδιοριστές μεταβλητών device Βρίσκεται στην καθολική μνήμη Προσβάσιμη από όλα τα blocks constant Βρίσκεται στην μνήμη σταθερών Προσβάσιμη από όλα τα blocks shared Βρίσκεται στην μοιραζόμενη μνήμη του SM Προσβάσιμη από όλα τα νήματα ενός thread block Π.χ., πίνακας 256 floats στην μοιραζόμενη μνήμη: shared f l o a t a r r a y [ ] ; / 2016 Συστήματα Παράλληλης Επεξεργασίας
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 > > > (... ) ;... }. Η κλήση του πυρήνα μπορεί να αποτύχει, εάν δεν επαρκούν οι πόροι της. συσκευής (registers, shared memory) / 2016 Συστήματα Παράλληλης Επεξεργασίας
36 CUDA C Περιβάλλον εκτέλεσης και οργάνωση νημάτων -- Προσδιορισμός νήματος Το ID κάθε νήματος προσδιορίζεται από τις «συντεταγμένες» του εντός του block στο οποίο ανήκει Η CUDA C ορίζει τις εξής μεταβλητές: uint3 threadidx: οι συντεταγμένες του νήματος εντός του τρέχοντος block uint3 blockidx: οι συντεταγμένες του block εντός του grid dim3 blockdim: οι διαστάσεις του block dim3 griddim: οι διαστάσεις του grid Π.χ., το ID του τρέχοντος νήματος ενός μονοδιάστατου block σε ένα μονοδιάστατο grid είναι local_tid = threadidx. x, εντός του block global_tid = threadidx.x + blockdim.x*blockidx.x, εντός του grid / 2016 Συστήματα Παράλληλης Επεξεργασίας
37 CUDA C Πρόσβαση στην ιεραρχία μνήμης Μνήμη σταθερών Με χρήση του προσδιοριστή constant Μοιραζόμενη μνήμη Με χρήση του προσδιοριστή shared Μνήμη textures Με χρήση ειδικών δομών που ονομάζονται texture references Τοπική μνήμη Με χρήση του προσδιοριστή. local στην PTX assembly / 2016 Συστήματα Παράλληλης Επεξεργασίας
38 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 > > > (... ) ; / 2016 Συστήματα Παράλληλης Επεξεργασίας
39 CUDA C Συγχρονισμός Memory fences Εγγυάται ότι όλες οι προσβάσεις στην μνήμη (global ή shared) μέχρι αυτό το σημείο έχουν πραγματοποιηθεί threadfence(), threadfence_block() Barriers Εγγυάται ότι όλα τα νήματα του block έχουν φτάσει σε κάποιο σημείο και όλες οι προσβάσεις που έχουν γίνει στην μνήμη (global ή shared) έχουν πραγματοποιηθεί syncthreads() Ατομικές συναρτήσεις Αναφορές στην μνήμη (global, shared) atomicadd(), atomicinc () κ.ο.κ.. Καθολικός συγχρονισμός..μόνο μεταξύ διαδοχικών κλήσεων του πυρήνα / 2016 Συστήματα Παράλληλης Επεξεργασίας
40 CUDA C Runtime Environment Συναρτήσεις διαχείρισης μνήμης cudamalloc(), cudafree() cudamallochost(), cudafreehost() Συναρτήσεις επικοινωνίας με την συσκευή cudamemcpy() Συναρτήσεις διαχείρισης σφαλμάτων cudagetlasterror () Συναρτήσεις διαχείρισης νημάτων cudathreadsynchronize(), cudathreadexit() Συναρτήσεις διαχείρισης της συσκευής Συναρτήσεις διαχείρισης γεγονότων cudaeventcreate(), cudaeventdestroy(), cudaeventelapsedtime(). Μεταγλώττιση..Συνδεση με την βιβλιοθήκη cudart, lcudart / 2016 Συστήματα Παράλληλης Επεξεργασίας
41 CUDA C Παράδειγμα -- Άθροισμα διανυσμάτων -- Host code (1/2) i n t main ( ) { f l o a t a [ N ], b [ N ], c [ N ] ; f l o a t * dev_a, * dev_b, * dev_c ; / / A l l o c a t e memory on the GPU cudamalloc ( ( void * * ) & dev_a, N* s i z e o f ( i n t ) ) ; cudamalloc ( ( void * * ) & dev_b, N* s i z e o f ( i n t ) ) ; cudamalloc ( ( void * * ) & dev_c, N* s i z e o f ( i n t ) ) ; / / I n i t i a l i z e data on the CPU... / / Copy the a r r a y s ' a ' and ' b ' to the GPU cudamemcpy ( dev_a, a, N* s i z e o f ( i n t ), cudamemcpyhosttodevice ) ; cudamemcpy ( dev_b, b, N* s i z e o f ( i n t ), cudamemcpyhosttodevice ) ; / 2016 Συστήματα Παράλληλης Επεξεργασίας
42 CUDA C Παράδειγμα -- Άθροισμα διανυσμάτων -- Host code (2/2)... / / Launch the k e r n e l with N/128 thread b l o c k s / / of 128 t h r e a d s dim3 block ( ) ; dim3 g r i d ( ( N ) / ) ; vec_add <<<grid, block >>>(dev_a, dev_b, dev_c, N ) ; / / Copy the a r r a y ' c ' back from the GPU to the CPU cudamemcpy ( c, dev_c, N* s i z e o f ( i n t ), cudamemcpydevicetohost ) ; / / Free the memory a l l o c a t e d on the GPU cudafree ( dev_a ) ; cudafree ( dev_b ) ; cudafree ( dev_c ) ; } r e t u r n 0 ; / 2016 Συστήματα Παράλληλης Επεξεργασίας
43 CUDA C Παράδειγμα -- Άθροισμα διανυσμάτων -- Device code Ορίσαμε 1Δ grid και 1Δ block (γιατί;) Κάθε νήμα αναλαμβάνει τον υπολογισμό ενός στοιχείου global void vec_add ( const f l o a t * a, const f l o a t *b, f l o a t * c, i n t N ) { 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 f ( t i d >= N ) r e t u r n ; } c [ t i d ] = a [ t i d ] + b [ t i d ] ;. Τι θα συμβεί αν το Ν είναι αρκετά μεγάλο ώστε τα Ν/128 blocks να υπερβαίνουν το. επιτρεπτό όριο της διάστασης του grid; / 2016 Συστήματα Παράλληλης Επεξεργασίας
44 CUDA C Παράδειγμα -- Άθροισμα διανυσμάτων -- Device code Ορίζουμε grid με fixed διαστάσεις μέσα στα επιτρεπτά όρια (ανεξάρτητες του N) Αναθέτουμε σε κάθε νήμα τον υπολογισμό περισσότερων στοιχείων global void vec_add ( const f l o a t * a, const f l o a t *b, f l o a t * c, i n t N ) { / / Grid s t r i d e loop f o r ( 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 ; t i d < N ; t i d += blockdim. x * griddim. x ) { c [ t i d ] = a [ t i d ] + b [ t i d ] ; } }. Τώρα μπορούμε να προσθέσουμε διανύσματα οποιουδήποτε μήκους, περιοριζόμενοι μόνο. από το μέγεθος της RAM στην GPU / 2016 Συστήματα Παράλληλης Επεξεργασίας
45 1 Εισαγωγικά 2 Compute Unified Device Architecture (CUDA) CUDA parallel computing platform CUDA programming model 3 CUDA C 4 Ζητήματα επίδοσης 5 Χρήσιμα links / 2016 Συστήματα Παράλληλης Επεξεργασίας
46 Προϋποθέσεις για υψηλή επίδοση Συνένωση αναφορών στην καθολική μνήμη (memory access coalescing) Warps χωρίς διακλαδώσεις Εκμετάλλευση της μοιραζόμενης μνήμης Μεγάλος αριθμός νημάτων Υψηλή χρησιμοποίηση των SMs / 2016 Συστήματα Παράλληλης Επεξεργασίας
47 Προϋποθέσεις για υψηλή επίδοση Συνένωση αναφορών στην καθολική μνήμη Κρύβει την καθυστέρηση πρόσβασης στην καθολική μνήμη Η καθολική μνήμη χωρίζεται σε τμήματα (segments) των 32, 64 ή 128 byte, ευθυγραμμισμένα (aligned) στα αντίστοιχα όρια Η πρόσβαση στην μνήμη γίνεται με διενέργειες (transactions) ανά τμήμα Με την συνένωση των αναφορών στην μνήμη επιδιώκουμε με ένα transaction να μεταφέρουμε όσο το δυνατόν περισσότερα χρήσιμα δεδομένα Αυστηρές προϋποθέσεις στην ακολουθία των αναφορών ανάμεσα στα νήματα και στο alignment των δεδομένων / 2016 Συστήματα Παράλληλης Επεξεργασίας
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-οστή λέξη / 2016 Συστήματα Παράλληλης Επεξεργασίας
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 / 2016 Συστήματα Παράλληλης Επεξεργασίας
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 / 2016 Συστήματα Παράλληλης Επεξεργασίας
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 / 2016 Συστήματα Παράλληλης Επεξεργασίας
52 Προϋποθέσεις για υψηλή επίδοση Warps χωρίς διακλαδώσεις Το SIMT μοντέλο επιτρέπει σε κάθε νήμα να ακολουθήσει διαφορετικό κλάδο, αλλά Κάθε κλάδος εκτελείται από όλα τα νήματα του warp, απενεργοποιώντας τα αντίστοιχα νήματα όταν εκτελείται ο ``not taken'' κλάδος τους Το πλήθος των χρήσιμων υπολογισμών ανά νήμα μειώνεται σημαντικά i f ( t h r e a d I d x. x > 2 ) { / / do s t u f f } i f ( t h r e a d I d x. x / WARP_SIZE > 2 ) { / / do s t u f f }. Divergence για το πρώτο warp. κάθε thread block!. Ṇo divergence! / 2016 Συστήματα Παράλληλης Επεξεργασίας
53 Προϋποθέσεις για υψηλή επίδοση Εκμετάλλευση της μοιραζόμενης μνήμης Η πρόσβαση στην μοιραζόμενη μνήμη έχει μηδενικό κόστος Οργάνωση σε 16 ή 32 banks Διαδοχικές λέξεις ανατίθενται σε διαδοχικά banks Εκμετάλλευση της χρονικής τοπικότητας των προγραμμάτων Δύο φάσεις: 1. (Προ)φόρτωση των δεδομένων προς υπολογισμό 2. Υπολογισμοί με χρήση της μοιραζόμενης μνήμης. Περιορισμοί. Περιορισμένο μέγεθος ( KiB) που μοιράζονται όλα τα νήματα ενός block. Μπορεί να οδηγήσει σε χαμηλή χρησιμοποιήση των SMs Προσοχή στα bank conflicts / 2016 Συστήματα Παράλληλης Επεξεργασίας
54 Προϋποθέσεις για υψηλή επίδοση Υψηλή χρησιμοποιήση των SMs Κάθε SM υποστηρίζει ένα μέγιστο αριθμό ενεργών block (ή warps) Ένα warp είναι ενεργό όταν μπορεί να δρομολογηθεί Περισσότερα ενεργά νήματα μπορούν να κρύψουν τις καθυστερήσεις από την πρόσβαση στην καθολική μνήμη Η χρησιμοποιήση των SMs εξαρτάται από τις απαιτήσεις κάθε νήματος σε καταχωρητές και μοιραζόμενη μνήμη, το πλήθος των νημάτων ανά block / 2016 Συστήματα Παράλληλης Επεξεργασίας
55 Προϋποθέσεις για υψηλή επίδοση Υψηλή χρησιμοποιήση των SMs -- Παράδειγμα Υποθέτουμε GPU με compute capability 1.0: Register file 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 / 2016 Συστήματα Παράλληλης Επεξεργασίας
56 OpenCL Ανοιχτό πρότυπο για παράλληλο προγραμματισμό σε ετερογενείς αρχιτεκτονικές (π.χ., CPU+GPU) Διάφορες υλοποιήσεις (NVIDIA, AMD κ.ά) Ίδιες αρχές με το μοντέλο CUDA, αλλά αρκετά πιο γενικευμένο με ελαφρώς διαφορετική ορολογία + Τρέχει παντού + Πολλές δυνατότητες, ανοιχτές υλοποιήσεις -- API που απαιτεί περίοδο εξοικείωσης -- Θέματα επίδοσης (αρχικές υλοποιήσεις) / 2016 Συστήματα Παράλληλης Επεξεργασίας
57 1 Εισαγωγικά 2 Compute Unified Device Architecture (CUDA) CUDA parallel computing platform CUDA programming model 3 CUDA C 4 Ζητήματα επίδοσης 5 Χρήσιμα links / 2016 Συστήματα Παράλληλης Επεξεργασίας
58 Χρήσιμα links NVIDIA Developer Zone, OpenCL / 2016 Συστήματα Παράλληλης Επεξεργασίας
59 Συζήτηση -- Ερωτήσεις / 2016 Συστήματα Παράλληλης Επεξεργασίας
Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών
Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Δεκέμβριος 2015 Περιεχόμενα 2 01 / 2014 Προγραμματισμός
Διαβάστε περισσότεραΠαράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών
Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Νοέμβριος 2017 1 Εισαγωγικά 2 Compute Unified Device
Διαβάστε περισσότεραΠαράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών
Παράλληλος Προγραμματισμός σε Επεξεργαστές Γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Φεβρουάριος 2014 Περιεχόμενα 1 Εισαγωγή 2 Επεξεργαστές
Διαβάστε περισσότεραΠαράλληλος προγραμματισμός σε επεξεργαστές γραφικών
Παράλληλος προγραμματισμός σε επεξεργαστές γραφικών Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Νοέμβριος 2010 Περιεχόμενα...1 Σύντομη Ιστορική Αναδρομή...2
Διαβάστε περισσότεραΠαράλληλος Προγραμματισμός με OpenCL
Παράλληλος Προγραμματισμός με OpenCL Συστήματα Παράλληλης Επεξεργασίας 9ο εξάμηνο, ΣΗΜΜΥ Εργαστήριο Υπολογιστικών Συστημάτων (CSLab) Δεκέμβριος 2017 1 Γενικά για OpenCL 2 Platform Model 3 Execution Model
Διαβάστε περισσότεραΠρογραμματισμός GPUs μέσω του περιβάλλοντος CUDA
Προγραμματισμός GPUs μέσω του περιβάλλοντος CUDA Κωνσταντινίδης Ηλίας Υποψήφιος Διδάκτωρ Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Νόμος Moore density doubles/18m
Διαβάστε περισσότεραCUDA Compute Unified Device Architecture
CUDA Compute Unified Device Architecture Καλέρης Κωνσταντίνος Πεµπτοετής φοιτητής του τµήµατος Ηλεκτρολόγων Μηχανικών & Τεχνολογίας Η/Υ του Πανεπιστηµίου Πατρών ee5972@upnet.gr Καλλέργης Γεώργιος Πεµπτοετής
Διαβάστε περισσότεραΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ "ΤΕΧΝΟΛΟΓΙΑ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΥΛΟΠΟΙΗΣΗ
Διαβάστε περισσότεραΣΥΣΤΗΜΑΤΑ ΠΑΡΑΛΛΗΛΗΣ ΕΠΕΞΕΡΓΑΣΙΑΣ 9o εξάμηνο ΗΜΜΥ, ακαδημαϊκό έτος
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΞΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr ΣΥΣΤΗΜΑΤΑ
Διαβάστε περισσότεραΑνάπτυξη αλγόριθμου Closest Pair με CUDA API
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ ΗΛΕΚΤΡΟΝΙΚΟY ΑΥΤΟΜΑΤΙΣΜΟY ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ Ανάπτυξη αλγόριθμου Closest Pair με
Διαβάστε περισσότεραΠρογραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) Εργασία Εξαμήνου
Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) Εργασία Εξαμήνου ΟΜΑΔΑ: Ιωαννίδης Σταύρος ΑΕΜ: 755 Ντελής Γιώργος ΑΕΜ: 726 Επιλογή της Εργασίας Για την εργασία μας επιλέξαμε την βελτιστοποίηση της
Διαβάστε περισσότεραΕισαγωγή στον GPGPU προγραμματισμό 50,000, ,000,000 (1 από 2) 19/5/2018
Εισαγωγή στον GPGPU προγραμματισμό Ηλίας K. Σάββας Καθηγητής Τμ. Μηχ. Πληροφορικής ΤΕ, ΤΕΙ Θεσσαλίας savvas@teilar.gr 50,000,000 Χρόνια που μας πήρε να φτάσουμε αυτό τον αριθμό χρηστών κάποιας υπηρεσίας:
Διαβάστε περισσότεραΟργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Συστήματα Παράλληλης
Διαβάστε περισσότεραΠαράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Ενότητα 3 η : Παράλληλη Επεξεργασία Παράλληλες Αρχιτεκτονικές Παράλληλο σύστημα είναι ένα σύνολο από επεξεργαστικά στοιχεία (processing elements) τα οποία: συνεργάζονται για γρήγορη επίλυση
Διαβάστε περισσότεραΕτήσια Τεχνική Έκθεση
Ετήσια Τεχνική Έκθεση Έτος 2012 ΘΑΛΗΣ Πολυτεχνείο Κρήτης Πλατφόρµα προηγµένων µαθηµατικών µεθόδων και λογισµικού για την επίλυση προβληµάτων πολλαπλών πεδίων (multiphysics, multidomain) σε σύγχρονες υπολογιστικές
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I
ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Διπλωματικές
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Άσκηση 5: Παράλληλος προγραμματισμός σε επεξεργαστές γραφικών
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Συστήματα Παράλληλης
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,
Διαβάστε περισσότεραΜηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,
Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:
Διαβάστε περισσότεραΠροσομοιώσεις Monte Carlo σε GPU
ΕΘΝΙΚΟ ΜΕΤΣΟΒΕΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΚΑΙ ΦΥΣΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΟΜΕΑΣ ΦΥΣΙΚΗΣ Προσομοιώσεις Monte Carlo σε GPU Δημήτρης Καρκούλης Επιβλέπων: Κ. Αναγνωστόπουλος 15/07/2010 Πρακτική στο
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Μηχανολόγων Μηχανικών Εργαστήριο Θερμικών Στροβιλομηχανών
2009 ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Μηχανολόγων Μηχανικών Εργαστήριο Θερμικών Στροβιλομηχανών [ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΣΕ ΚΑΡΤΕΣ ΓΡΑΦΙΚΩΝ ΚΑΙ ΕΦΑΡΜΟΓΗ ΣΤΗΝ ΑΕΡΟΔΥΝΑΜΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ] Διπλωματική Εργασία του
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στο OpenMP Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed Systems Group Τι είναι το OpenMP Πρότυπο Επέκταση στη C/C++ και τη Fortran
Διαβάστε περισσότεραii Πυργιώτης Θεμιστοκλής
Προγραμματισμός GPU σε περιβάλλον OpenCL Πολλαπλασιασμός πινάκων και ταύτιση αλφαριθμητικών Διπλωματική εργασία του Πυργιώτη Θεμιστοκλή ΑΜ: 1048 Επιβλέπων καθηγητής Μαργαρίτης Κωνσταντίνος Πρόγραμμα Μεταπτυχιακών
Διαβάστε περισσότεραΠ Τ Υ Χ Ι Α Κ Η / Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α
Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Π Τ Υ Χ Ι Α Κ Η / Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α Αυτόνομη ρύθμιση προγραμμάτων που χρησιμοποιούν GPU Δοδόπουλος Ρωμανός
Διαβάστε περισσότεραΕίναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή
1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,
Διαβάστε περισσότεραΚατανεμημένο Σύστημα Διαχείρισης Εργασιών Απομακρυσμένης Εκτέλεσης Κώδικα Για Επιταχυντές Γραφικών Σε Συστοιχίες Υπολογιστών ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Κατανεμημένο Σύστημα Διαχείρισης Εργασιών
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: Αρχιτεκτονικές Von Neuman, Harvard. Κατηγοριοποίηση κατά Flynn. Υπολογισμός απόδοσης Συστημάτων
Διαβάστε περισσότεραΠτυχιακή εργασία της φοιτήτριας Λαδοπούλου Παρασκευής ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
ΑΛΕΞΑΝΔΡΕΙΟ Τ.Ε.Ι. ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΠΑΡΑΛΛΗΛΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΠΙΣΤΗΜΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΜΕ ΧΡΗΣΗ GPU / CUDA Της φοιτήτριας ΛΑΔΟΠΟΥΛΟΥ ΠΑΡΑΣΚΕΥΗΣ
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ ΥΠΟΣΤΗΡΙΞΗ ΣΕ ΕΠΙΠΕΔΟ ΜΕΤΑΓΛΩΤΤΙΣΗΣ ΚΑΙ ΣΥΣΤΗΜΑΤΟΣ ΧΡΟΝΟΥ ΕΚΤΕΛΕΣΗΣ ΤΟΥ ΜΟΝΤΕΛΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ OpenCL ΣΕ ΕΠΕΞΕΡΓΑΣΤΕΣ
Διαβάστε περισσότεραΠανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική»
Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Ονοματεπώνυμο Φοιτητή Πατρώνυμο Αριθμός Μητρώου Επιβλέπων Επιτάχυνση του αλγορίθμου
Διαβάστε περισσότεραΠαραλληλισμός Αλγορίθμων σε Κάρτες Γραφικών για Σχεδιασμό Κίνησης
Πανεπιστήμιο Πατρών Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών και Πληροφορικής Παραλληλισμός Αλγορίθμων σε Κάρτες Γραφικών για Σχεδιασμό Κίνησης Συγγραφέας: Πάσχος Ανδρέας Επιβλέπων: Ψαράκης Εμμανουήλ 2
Διαβάστε περισσότεραΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μελέτη και σύγκριση βασικών πράξεων βάσεων δεδοµένων σε µονάδες επεξεργασίας γραφικών ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ της Μέντα Βαρβάρας
Διαβάστε περισσότεραGPGPU. Grover. On Large Scale Simulation of Grover s Algorithm by Using GPGPU
GPGPU Grover 1, 2 1 3 4 Grover Grover OpenMP GPGPU Grover qubit OpenMP GPGPU, 1.47 qubit On Large Scale Simulation of Grover s Algorithm by Using GPGPU Hiroshi Shibata, 1, 2 Tomoya Suzuki, 1 Seiya Okubo
Διαβάστε περισσότεραΔιεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1
Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα
Διαβάστε περισσότεραΚεντρική Μονάδα Επεξεργασίας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης
Διαβάστε περισσότεραΙόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ιεραρχία συχνά και το
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών
Διαβάστε περισσότεραΤο ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ
Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Αρχιτεκτονική Υπολογιστών Παραλληλισμός Βασικές Πηγές: Αρχιτεκτονική Υπολογιστών: μια Δομημένη Προσέγγιση, Α. Tanenbaum, Vrije Universiteit, Amsterdam. Computer Architecture and Engineering, K. Asanovic,
Διαβάστε περισσότεραAll Pairs Shortest Path
All Pairs Shortest Path χρησιμοποιώντας Κυπριώτη Αικατερίνη 6960 Μόσχογλου Στυλιανός 6978 20 Ιανουαρίου 2012 Περιεχόμενα 1 Πρόλογος 3 2 Ο σειριακός APSP 3 3 Η παραλληλοποίηση με 5 3.1 Το προγραμματιστικό
Διαβάστε περισσότεραΠρογραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) 3η Εργαστηριακή Άσκηση
Προγραμματισμός Συστημάτων Υψηλών Επιδόσεων (ΗΥ421) 3η Εργαστηριακή Άσκηση ΟΝΟΜΑ: Ιωαννίδης Σταύρος ΑΕΜ: 755 Αποτελέσματα devicequery Profiling με το Vtune Το profiling έδειξε πως οι πιο αργές συναρτήσεις
Διαβάστε περισσότεραΔιονύσιος Σαλονικίδης. Μεταπτυχιακός Φοιτητής. Διπλωματική Εργασία. Επιβλέπων: Κωνσταντίνος Μαργαρίτης, Καθηγητής. Τμήμα Εφαρμοσμένης Πληροφορικής
ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΔΙΕΠΙΦΑΝΕΙΩΝ ΠΑΡΑΛΛΗΛΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΣΕ ΕΦΑΡΜΟΓΕΣ ΕΥΡΕΣΗΣ ΚΩΔΙΚΟΥ ΚΡΥΠΤΟΓΡΑΦΗΜΕΝΟΥ ΜΕ ΑΛΓΟΡΙΘΜΟ MD5 Διονύσιος Σαλονικίδης Μεταπτυχιακός Φοιτητής Διπλωματική Εργασία Επιβλέπων: Κωνσταντίνος
Διαβάστε περισσότεραCUDA FFT. High Performance 3-D FFT in CUDA Environment. Akira Nukada, 1, 2 Yasuhiko Ogata, 1, 2 Toshio Endo 1, 2 and Satoshi Matsuoka 1, 2, 3
Vol. 1 No. 2 231 239 (Aug. 2008) CUDA 3 FFT 1, 2 1, 2 1, 2 1, 2, 3 NVIDIA GPU CUDA CUDA 3 FFT GeForce 8 GPU 3 FFT CUFFT 1.1 3.1 3.3 79.5 GFLOPS High Performance 3-D FFT in CUDA Environment Akira Nukada,
Διαβάστε περισσότεραΑτομική Διπλωματική Εργασία ΕΚΤΕΛΕΣΗ ΤΟΥ QUERY 6 ΤΟΥ BENCHMARK TPC-H ΣΕ ΚΑΡΤΑ ΓΡΑΦΙΚΩΝ, ΜΕ CUDA. Μαρία Λοϊζίδη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
Ατομική Διπλωματική Εργασία ΕΚΤΕΛΕΣΗ ΤΟΥ QUERY 6 ΤΟΥ BENCHMARK TPC-H ΣΕ ΚΑΡΤΑ ΓΡΑΦΙΚΩΝ, ΜΕ CUDA Μαρία Λοϊζίδη ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Δεκέμβριος 2009 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ
Διαβάστε περισσότεραΕισαγωγικά & Βασικές Έννοιες
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΠαράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 4 η : Παράλληλος Προγραμματισμός. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Ενότητα 4 η : Παράλληλος Προγραμματισμός Παράλληλος Προγραμματισμός Ο παράλληλος προγραμματισμός με βάση την αφαιρετικότητα: Ελάχιστη έως καμία γνώση της αρχιτεκτονικής Επεκτάσεις παράλληλου
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα 2: Αρχιτεκτονικές Von Neuman, Harvard. Κατηγοριοποίηση κατά Flynn. Υπολογισμός απόδοσης Συστημάτων
Διαβάστε περισσότεραΚεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης
Διαβάστε περισσότεραΘέματα Μεταγλωττιστών
Γιώργος Δημητρίου Ενότητα 10 η : Βελτιστοποιήσεις Τοπικότητας και Παραλληλισμού: Εξαρτήσεις και Μετασχηματισμοί Βρόχων Επεξεργασία Πινάκων Παραλληλισμός επιπέδου βρόχου Λόγω παραλληλισμού δεδομένων Επιτυγχάνεται
Διαβάστε περισσότερα13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1
13.2 Παράλληλος Προγραµµατισµός Γλωσσάρι, Σελ. 1 ΓΛΩΣΣΑΡΙ Αµοιβαίος αποκλεισµός (mutual exclusion) Στο µοντέλο κοινού χώρου διευθύνσεων, ο αµοιβαίος αποκλεισµός είναι ο περιορισµός του αριθµού των διεργασιών
Διαβάστε περισσότεραΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε
Διαβάστε περισσότεραΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΓΕΝΙΚΟ ΤΜΗΜΑ
ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΓΕΝΙΚΟ ΤΜΗΜΑ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΕΦΑΡΜΟΣΜΕΝΕΣ ΕΠΙΣΤΗΜΕΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΔΙΠΛΩΜΑΤΙΚΗ ΔΙΑΤΡΙΒΗ ΜΕΤΑΠΤΥΧΙΑΚΟΥ ΔΙΠΛΩΜΑΤΟΣ ΕΙΔΙΚΕΥΣΗΣ ΚΑΤΕΥΘΥΝΣΗ : «ΕΦΑΡΜΟΣΜΕΝΑ ΚΑΙ ΥΠΟΛΟΓΙΣΤΙΚΑ
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr Συστήματα Παράλληλης
Διαβάστε περισσότεραΠολυπύρηνοι επεξεργαστές Multicore processors
Πολυπύρηνοι επεξεργαστές Multicore processors 1 Μετάβαση στους πολυπύρηνους(1) Απόδοση των µονοεπεξεργαστών 25% ετήσια βελτίωση της απόδοσης από το 1978 έως το 1986 Κυρίως από την εξέλιξη της τεχνολογίας
Διαβάστε περισσότεραΠαραλληλισμός σε επίπεδο εντολών
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης
Διαβάστε περισσότεραQuakeTM: Parallelizing a Complex Sequential Application Using Transactional Memory (Gajinov et al., 2009)
Quake I QuakeTM: Parallelizing a Complex Sequential Application Using Transactional Memory (Gajinov et al., 2009) Είναι όντως χρήσιμη η transactional memory σε μεγάλες εφαρμογές; Παράλληλη υλοποίηση μιας
Διαβάστε περισσότεραΑρχιτεκτονικη υπολογιστων
ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονικη υπολογιστων Τζαγκαράκης Χαράλαμπος hatzagarak@cs.teicrete.gr Εισαγωγη: ο επεξεργαστης και η γλωσσα του Eπεξεργαστής: MIPS Microprocessor Without Interlocked
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Μemory)
ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1
Διαβάστε περισσότεραΑρχιτεκτονική υπολογιστών
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 4 : Κρυφή Μνήμη Καρβούνης Ευάγγελος Δευτέρα, 30/11/2015 Χαρακτηριστικά Θέση Χωρητικότητα Μονάδα Μεταφοράς
Διαβάστε περισσότεραΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Σχεδίαση παράλληλων αλγορίθμων ταξινόμησης και ψηφιακών φίλτρων (DSP) με εφαρμογή σε FPGA και CUDA. Αλέξανδρος Κ.
ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΦΥΣΙΚΗΣ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ, ΥΠΟΛΟΓΙΣΤΩΝ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΑΥΤΟΜΑΤΙΣΜΟΥ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Σχεδίαση παράλληλων αλγορίθμων ταξινόμησης και ψηφιακών φίλτρων
Διαβάστε περισσότεραΕ-85: Ειδικά Θέµατα Λογισµικού
Ε-85: Ειδικά Θέµατα Λογισµικού Προγραµµατισµός Συστηµάτων Υψηλών Επιδόσεων Χειµερινό Εξάµηνο 2009-10 «ιεργασίες και Νήµατα» Παναγιώτης Χατζηδούκας (Π.Δ. 407/80) E-85: Ε.Θ.Λ: Προγραµµατισµός Συστηµάτων
Διαβάστε περισσότεραΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας
ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Βελτιστοποίηση κώδικα σε επεξεργαστές ΨΕΣ Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter
Διαβάστε περισσότεραΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789
ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789 Γενικά Οι compilers προσφέρουν μία σειρά από τεχνικές βελτιστοποίησης Στόχοι: Αύξηση ταχύτητας εκτέλεσης Μείωση μεγέθους Εφικτές
Διαβάστε περισσότεραΠαράλληλη Επεξεργασία
Παράλληλη Επεξεργασία Φροντιστήριο: Εισαγωγή στα Πολυεπεξεργαστικά Συστήματα Διερασίες και Νήματα σε Πολυεπεξεργαστικά Συστήματα Εργαστήριο Πληροφοριακών Συστημάτων Υψηλής Επίδοσης Parallel and Distributed
Διαβάστε περισσότεραΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT
ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT ΘΕΩΡΙΑ Στο project αυτό έχουμε υλοποιήσει τις βασικές συναρτήσεις της stdlib της C malloc και free Η συνάρτηση malloc είναι η void *malloc(int
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών & Δικτύων
Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Ηλεκτρονικών Υπολογιστών Τηλεπικοινωνιών & Δικτύων Διπλωματική Εργασία «Μεταφορά και Βελτιστοποίηση Εφαρμογής Υπολογιστικής Βιολογίας (RAxML) σε Many-Core Σύστημα»
Διαβάστε περισσότεραΠροχωρηµένα Θέµατα Αρχιτεκτονικής
Προχωρηµένα Θέµατα Αρχιτεκτονικής Μάθηµα 2 ο : Instruction Set Principles and Examples Μάθηµα 2 ο Προχωρηµένα Θέµατα Αρχιτεκτονικής 1 Σχεδιασµός Συνόλου Εντολών Θέµατα που θα συζητηθούν ιαφορετικές επιλογές
Διαβάστε περισσότεραΑΠΟΤΕΛΕΣΜΑΤΑ ΔΙΑΒΟΥΛΕΥΣΗΣ. Προκήρυξη Διαγωνισμού για την «Προμήθεια Εξοπλισμού Κόμβου Μηχανικής Μάθησης» https://grnet.gr/2018/02/14/rfp /
ΑΠΟΤΕΛΕΣΜΑΤΑ ΔΙΑΒΟΥΛΕΥΣΗΣ Πράξη Προκήρυξη Διαγωνισμού για την «Προμήθεια Εξοπλισμού Κόμβου Μηχανικής Μάθησης» Διάρκεια Διαβούλευσης 14/02/2018-02/03/2018 Τηλέφωνο 2107474274 e-mail Ηλεκτρονική Διεύθυνση
Διαβάστε περισσότεραΕνσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)
Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems) Μαθηµα 2 ηµήτρης Λιούπης 1 Intel SA-1110 µc StrongARM core. System-on-Chip. Εξέλιξη των SA-110 και SA-1100. 2 ARM cores ARM: IP (intellectual
Διαβάστε περισσότεραEM 361: Παράλληλοι Υπολογισμοί
ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ EM 361: Παράλληλοι Υπολογισμοί Ενότητα #2: Αρχιτεκτονική Διδάσκων: Χαρμανδάρης Ευάγγελος ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΩΝ ΜΑΘΗΜΑΤΙΚΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΠΙΣΤΗΜΩΝ
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: (Μέρος Γ ) Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών
Διαβάστε περισσότεραΕπίλυση ιδιάστατης Ροής µε Κεντροκυψελική ιατύπωση σε Μη- οµηµένα Πλέγµατα. Προγραµµατισµός σε Επεξεργαστές Καρτών Γραφικών.
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Μηχανολόγων Μηχανικών Τοµέας Ρευστών Εργαστήριο Θερµικών Στροβιλοµηχανών Μονάδα Παράλληλης Υπολογιστικής Ρευστοδυναµικής & Βελτιστοποίησης Επίλυση ιδιάστατης Ροής µε Κεντροκυψελική
Διαβάστε περισσότεραΙεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Για βελτίωση της απόδοσης
Διαβάστε περισσότεραΣυστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ενότητα: Intel Parallel Studio XE 2013 Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων
Διαβάστε περισσότεραΔιεργασίες και Νήματα (2/2)
Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Νήματα
Διαβάστε περισσότεραΗ πολυνηματική γλώσσα προγραμματισμού Cilk
Η πολυνηματική γλώσσα προγραμματισμού Cilk Β Καρακάσης Ερευνητικά Θέματα Υλοποίησης Γλωσσών Προγραμματισμού Μεταπτυχιακό Μάθημα (688), ΣΗΜΜΥ Νοέμβριος 2009 Β Καρακάσης (CSLab, NTUA) ΣΗΜΜΥ, Μετ/κό 688 9/2009
Διαβάστε περισσότεραΑρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ
ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter 3 Kuo [2005]: Chapters 1 & 4-5 Lapsley [2002]: Chapter 4 Hayes [2000]: Κεφάλαιo 8
Διαβάστε περισσότεραΚεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ
Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό
Διαβάστε περισσότερα9. Συστολικές Συστοιχίες Επεξεργαστών
Κεφάλαιο 9: Συστολικές συστοιχίες επεξεργαστών 208 9. Συστολικές Συστοιχίες Επεξεργαστών Οι συστολικές συστοιχίες επεξεργαστών είναι επεξεργαστές ειδικού σκοπού οι οποίοι είναι συνήθως προσκολλημένοι σε
Διαβάστε περισσότεραΟργάνωση Υπολογιστών (ΙI)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (ΙI) (κύρια και κρυφή μνήμη) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΜΗΧΑΝΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΜΗΧΑΝΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Προγραμματισμός μεθόδου συναρτήσεων ακτινικής βάσης (RBF) για τη μετατόπιση υπολογιστικών
Διαβάστε περισσότεραΔιαφορές single-processor αρχιτεκτονικών και SoCs
13.1 Τα συστήματα και η επικοινωνία μεταξύ τους γίνονται όλο και περισσότερο πολύπλοκα. Δεν μπορούν να περιγραφούνε επαρκώς στο επίπεδο RTL καθώς αυτή η διαδικασία γίνεται πλέον αρκετά χρονοβόρα. Για αυτό
Διαβάστε περισσότεραΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2
ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 Πολυπύρηνοι επεξεργαστές, μέρος 2 Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Cache coherence & scalability! Τα πρωτόκολλα
Διαβάστε περισσότεραΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ «ΥΠΟΛΟΓΙΣΜΟΣ ΤΟΠΙΚΩΝ ΣΥΝΤΕΛΕΣΤΩΝ ΣΥΣΧΕΤΙΣΗΣ
Διαβάστε περισσότεραΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ. Διπλωματικη Εργασια. Γεωργία Ε. Κρόκου
ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ Αλγόριθμοι Επεξεργασιας Εικονας Υψηλης Ευκρεινιας σε Πολυεπεξεργαστικα συστηματα Διπλωματικη Εργασια Γεωργία Ε.
Διαβάστε περισσότεραΒασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1
Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Μονονηματική / πολυνηματική εκτέλεση Μονονηματικό μοντέλο εκτέλεσης (συμβατικό) Οι εντολές του κώδικα εκτελούνται σειριακά Ένα μοναδικό νήμα εκτέλεσης (execution
Διαβάστε περισσότεραΑσκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών
Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών ακ. έτος 2006-2007 Νεκτάριος Κοζύρης Νίκος Αναστόπουλος {nkoziris,anastop}@cslab.ece.ntua.gr Άσκηση 1: pipelining Εξετάζουμε την εκτέλεση του παρακάτω
Διαβάστε περισσότεραΣυστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC
Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.
Διαβάστε περισσότεραhttp://www.cslab.ece.ntua.gr/diplom/
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ KΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ http://www.cslab.ece.ntua.gr/ ιπλωµατική
Διαβάστε περισσότεραMIPS Interactive Learning Environment. MILE Simulator. Version 1.0. User's Manual
MILE Simulator Version 1.0 User's Manual Νοέμβριος, 2011 Περιεχόμενα 1. Εισαγωγή στον προσομοιωτή...2 1.1 Εγκατάσταση...2 1.2 Βοήθεια Διευκρινήσεις...2 2. Ξεκινώντας με τον προσομοιωτή...3 2.1 Το memory
Διαβάστε περισσότεραΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ
ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ & ΥΠΟΛΟΓΙΣΤΩΝ Παραγοντοποίηση Cholesky αλληλουχίας πινάκων σε μονάδες επεξεργασίας γραφικών
Διαβάστε περισσότεραΥ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών
Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών Αρης Ευθυμίου Το σημερινό μάθημα Προσκόμιση (fetch) πολλαπλές εντολές ανά κύκλο Μετονομασία καταχωρητών
Διαβάστε περισσότεραΑτομική Διπλωματική Εργασία ΣΥΓKΡΙΣΗ ΕΠΙΔΟΣΗΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΗΣ OPENACC ΚΑΙ ΤΗΣ CUDA. Ανδρέας Κωνσταντίνου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ
Ατομική Διπλωματική Εργασία ΣΥΓKΡΙΣΗ ΕΠΙΔΟΣΗΣ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΤΗΝ ΧΡΗΣΗ ΤΗΣ OPENACC ΚΑΙ ΤΗΣ CUDA Ανδρέας Κωνσταντίνου ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Μάιος 2013 ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ
Διαβάστε περισσότεραΤεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές
Τεχνικές για διαμοιρασμό φορτίου και μακροεντολές Broadcast - Scatter για αποδοτικές πολύ-επεξεργαστικές εφαρμογές Μίλτος Δ. Γραμματικάκης, Αντώνης Παπαγρηγορίου, Πολύδωρος Πετράκης, Γεώργιος Κορνάρος,
Διαβάστε περισσότεραΠρογραμματισμός Ταυτόχρονος Προγραμματισμός
Εισαγωγικά & Βασικές Έννοιες ΙΙΙ 1 lalis@inf.uth.gr Γιατί πολλές διεργασίες/νήματα; Επίπεδο εφαρμογής Καλύτερη δόμηση κώδικα Αποφυγή μπλοκαρίσματος / περιοδικών ελέγχων Φυσική έκφραση παραλληλισμού Επίπεδο
Διαβάστε περισσότεραΣυγκριτική μελέτη διεπιφανειών παράλληλου προγραμματισμού σε εφαρμογές εύρεσης κωδικού κρυπτογραφημένου με αλγόριθμο MD5
Συγκριτική μελέτη διεπιφανειών παράλληλου προγραμματισμού σε εφαρμογές εύρεσης κωδικού Πανεπιστήμιο Μακεδονίας Τμήμα Εφαρμοσμένης Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών Ειδίκευσης Συστήματα Υπολογιστών
Διαβάστε περισσότερα