30 Σεπ 2025 14:03 - Στέργιος Παπαδημητρίου

  Βιβλιογραφία και διαμόρφωση της ύλης για το μάθημα "Παράλληλος και Κατανεμημένος Υπολογισμός"

Το μάθημα λόγω ιδιαίτερων συνθηκών που προέκυψαν μετά από σοβαρά προβλήματα υγείας του διδάσκοντα, θα περιλαμβάνει και την ανάπτυξη γραπτής ερευνητικής εργασίας. Το θέμα της εργασίας είναι ελεύθερη επιλογή πάνω στην ύλη του μαθήματος, η εργασία θα είναι ατομική, μεγέθους 10-15 σελ. και θα παραδοθεί είτε με email ή τυπωμένη μαζί με το γραπτό του μαθήματος, θα διευκρινιστεί αργότερα. Όσο περισσότερα μαθήματα χαθούν, τόσο θα αυξάνει η βαρύτητα της εργασίας στον τελικό βαθμό.


Όλα τα ξενόγλωσσα βιβλία που θα χρησιμοποιήσω στις παρουσιάσεις υπάρχουν διαθέσιμα για download από το site:


https://sourceforge.net/projects/booksforihucs/files/


H παράγραφος "Διαμόρφωση της ύλης", στο τέλος του εξαμήνου θα περιγράφει την εξετασθέα ύλη, ενδιάμεσα θα αντιστοιχούν στην παραδοθείσα ύλη, αλλά όχι με απόλυτη ακρίβεια.


Το εργαστήριο του μαθήματος θα γίνει όπως και η θεωρία, χωρίς απουσίες και με παρόμοιο τρόπο εξέτασης. Θα εξεταστεί μαζί με την θεωρία σε ξεχωριστά θέματα (π.χ. 1 ώρα για τα θέματα θεωρίας και 30 minutes για τα θέματα εργαστηρίου).


Το βασικό βιβλίο θα είναι του Αθανάσιου Μάργαρη, "Εισαγωγή στην Παράλληλη Επεξεργασία", που είναι και η πρώτη επιλογή στον Εύδοξο.

Στα μαθήματα θα χρησιμοποιήσω πολύ τα ξενόγλωσσα, όμως το περισσότερο υλικό θα καλύπτεται πλήρως από αντίστοιχα κεφάλαια του παραπάνω βιβλίου.


Επίσης πρόκειται να χρησιμοποιήσω το βιβλίο

"Multicore And GPU Programming, An Integrated Approach", Gerassimos Barlas, 2023" το οποίο είναι τελείως πρόσφατο και φαίνεται ως το καλύτερο και πληρέστερο ξενόγλωσσο βιβλίο στον Παράλληλο Υπολογισμό.

Το source code του βιβλίου περιέχεται στο file mcore_code_v2.0.zip.

Οι παρουσιάσεις που συνοψίζουν τα βασικότερα από το υλικό του βιβλίου, υπάρχουν στο file: PresentationSlides_Multicore_Barlas_PDF.zip.


Αλλο πολύ σύγχρονο και εξαιρετικό βιβλίο είναι το

"Data Parallel C++", 2nd edition, Apress 2023,

το οποίο εξειδικεύεται στο open μοντέλο SYCL για C++, το οποίο παραμένει low level και efficient αλλά είναι περισότερο δομημένο και εύχρηστο σε σχέση με C based μοντέλα π.χ. CUDA, παρέχοντας ταυτόχρονα σημαντική υποστήριξη για implicit higher level parallelism.


Επίσης πολύ καλό βιβλίο αναφορικά με CUDA ίσως το καλύτερο και το κλασικότερο, είναι το:

"Programming Massively Parallel Processors", David B. Kirk, Wen-mei Hwo, 4th edition, 2023"



Διαμόρφωση της ύλης


Από το βιβλίο "Multicore And GPU Programming, An Integrated Approach", Gerassimos Barlas:


Το Κεφάλαιο 1 είναι εισαγωγικό, χρειάζεται βέβαια μια ανάγνωση.

Κεφάλαιο 3 - Threads and Concurrency in standard C++

Σελ. 65-77

Σελ. 78-93

Σελ. 117 (από ενότητα 3.8. Atomic Data Types) - 131

Σελ. 152 (3.11 Asynchronous Threads) - 161


Από το βιβλίο "Εισαγωγή στην Παράλληλη Επεξεργασία του Α. Μάργαρη"


Το Κεφάλαιο 1 είναι εισαγωγικό, περιγράφει όμως αρκετές βασικές έννοιες.


Επίσης από το βιβλίο: "C++ High Performance, Second Edition 2020, Bjorn Andrist, Viktor Sehr, Packt Publications"

https://sourceforge.net/projects/booksforihucs/files/Bjo_rn%20Andrist%2C%20Viktor%20Sehr%20-%20C%2B%2B%20High%20Performance-Packt%20Publishing%20%282020%29.pdf/download

τα Κεφάλαια:

  • Chapter 11: Concurrency σελ. 325-385
  • Chapter 12: Coroutines and Lazy Generators σελ. 386-438
  • Chapter 13: Asynchronous Programming with Coroutines σελ. 439-464
  • Chapter 14: Parallel Algorithms, σελ. 465-497