Το βιβλίο αυτό απευθύνεται σε προπτυχιακούς και μεταπτυχιακούς φοιτητές τμημάτων Πληροφορικής, Μηχανικών Ηλεκτρονικών Υπολογιστών και παρεμφερών γνωστικών αντικειμένων. Τα θέματα που πραγματεύεται είναι άκρως επίκαιρα και αφορούν τους σύγχρονους παράλληλους / πολυπύρηνους υπολογιστές οι οποίοι πλέον αποτελούν σχεδόν τον μοναδικό τύπο υπολογιστή, είτε γενικού είτε ειδικού σκοπού.<br/> <br/>
Εκτός από τους παραπάνω φοιτητές, το βιβλίο μπορεί να χρησιμοποιηθεί και από αναγνώστες / επαγγελματίες / επιστήμονες που έχουν γενικότερη παιδεία στους υπολογιστές και την πληροφορική αλλά ελάχιστη έκθεση στην νέα αυτή τεχνολογία, καθώς το βιβλίο θα είναι σε μεγάλο βαθμό αύταρκες στις έννοιες που καλύπτει. <br/><br/>
Το βιβλίο στοχεύει να καλύψει δύο μεγάλα ζητήματα που αφορούν στα παράλληλα υπολογιστικά συστήματα υψηλών επιδόσεων:<br/><br/>
(1) Την αρχιτεκτονική / οργάνωσή τους. <br/>
Ο αναγνώστης θα είναι σε θέση να αναγνωρίζει τον τρόπο με τον οποίο λειτουργεί ένα τέτοιο σύστημα, πώς διασυνδέονται οι δομικές μονάδες του, ποια προβλήματα πρέπει να λυθούν κατά την σχεδίασή τους καθώς και ποιες είναι οι εναλλακτικές λύσεις.<br/>
Στο πλαίσιο αυτό, καλύπτονται τα συστήματα πολυεπεξεργαστών κοινόχρηστης μνήμης, τα πολυπύρηνα συστήματα (multicores), οι υπολογιστικές συστάδες (clusters) καθώς και πολύ σύγχρονες αρχιτεκτονικές όπως αυτές των επιταχυντών (accelerators).<br/><br/>
(2) Τον προγραμματισμό τους.<br/>
Ο αναγνώστης θα γνωρίσει και θα χρησιμοποιήσει τα δημοφιλέστερα μοντέλα / γλώσσες για τον προγραμματισμό των παράλληλων υπολογιστών. Καλύπτονται όλα τα ευρέως χρησιμοποιούμενα μοντελα, όπως τα νήματα POSIX και το πρότυπο OpenMP για προγραμματισμό κοινόχρηστης μνήμης, αλλά και το MPI για μεταβίβαση μηνυμάτων.
(EL)
This textbook targets undergraduate and graduate university students enrolled in Computer Science, Computer Engineering and related programs. The subject of the book is in the forefront of computer technology, dealing with contemporary parallel / multicore computers which are nowadays the only type of computing systems available, be it general or special purpose.
The book tries to be self-contained. As such, it can also be useful to general readers, practitioners and professionals who have a working knowledge of computers and programming, but have not been exposed to the relatively new technology of parallelism.
The book aims to cover two facets of parallel, high-performance computer systems:
(1) Their organization and architecture.
The reader will be in position to recognize how such a system operates, how its constituent elements are interconnected, what are the basic problems architects and designers face, and what are the alternative solutions. In this frame, the book covers shared-memory systems, multicores and compute clusters.
(2) Their programming.
The most popular parallel programming models are presented and utilized. The book covers widely used programming models, such as POSIX threads and OpenMP for shared-address space programming, which is suited for multicore systems, and MPI for message passing, which is a must on clusters.
(EN)