Λ10 Παράλληλος & Κατανεμημένος Προγραμματισμός 2009 Μάθημα 0 ο 13/10/2009 Β. Δημακόπουλος
Ποιοσ είμαι; Βαςίλθσ Δθμακόπουλοσ, Επίκουροσ Κακθγθτισ Δίπλωμα Μθχανικοφ Η/Τ και Πλθροφορικισ, Πανεπιςτιμιο Πατρϊν (1990) MSc & PhD, Electrical and Computer Engineering, University of Victoria, Καναδάσ (1992 & 1996) τα Ιωάννινα από το 1998 Μεταπτυχιακά μακιματα (παλαιότερα) Παράλλθλα ςυςτιματα Παράλλθλεσ αρχιτεκτονικζσ: Δίκτυα διαςφνδεςθσ Κφρια ερευνθτικά ενδιαφζροντα: Παράλλθλα ςυςτιματα Αρχιτεκτονικζσ Δίκτυα διαςφνδεςθσ Επικοινωνίεσ κόμβων Πολυπφρθνα ςυςτιματα Προγραμματιςμόσ OpenMP (OMPi) MPI Λογιςμικό ςυςτιματοσ Μεταφραςτισ OMPi Βιβλιοκικεσ υποςτιριξθσ εκτζλεςθσ Κατανεμθμζνα ςυςτιματα P2P δίκτυα Επιδόςεισ Αναηιτθςθ πλθροφορίασ Αντίγραφα δεδομζνων #2
Σι περιλαμβάνει το σημερινό μάκθμα; Λίγα & προ-ειςαγωγικά πράγματα! Παράλλθλα ςυςτιματα Σι είναι; Πϊσ φτάςαμε ωσ εδϊ; Πϊσ μπορϊ να τα προγραμματίςω; Ζχει κάποια διαφορά με αυτά που ξζρω μζχρι ςτιγμισ; Τπάρχει κάποιοσ λόγοσ να το πάρω (ι να μθν το πάρω) αυτό το μάκθμα; Σι φλθ καλφπτει το μάκθμα; Πϊσ είναι οργανωμζνο (π.χ. βακμολόγθςθ) το μάκθμα; #3
Σεχνολογία ο νόμοσ του Moore Moore s Law 2X transistors/chip Every 1.5 years Called Moore s Law Microprocessors have become smaller, denser, and more powerful. Τι σημαίνει αυτό; Απάντηση: πολυπλοκότητα! #4
Ο νόμοσ του Bill Joy τισ επιδόςεισ Τι ζγινε εδώ;;; Based on integer SPEC benchmarks Επιδόςεισ εκκετικά αυξανόμενεσ #5
Πυκνότθτα ιςχφοσ #6
Πρόςφατο παρελκόν SMPs (symmetric multiprocessors) 2 4 επεξεργαςτζσ (μονοπφρθνοι) ςυνθκιςμζνοι, μζχρι 8 επεξεργαςτζσ ςε εμπορικά ςυςτιματα Πανάκριβα ςυςτιματα με 12-16 επεξεργαςτζσ ελάχιςτα Κοινι μνιμθ Σμιμα Πλθροφορικισ: Πολλά Sun με 2 UltraSparc Πολλά PC με 2 Pentium / Athlon atlantis με 4 Pentium III Xeon 700.000 δρχ/cpu! paraguay με 4 x Intel Xeon 7000 Paxville @ 3GHz 2 cores per CPU / 2 threads per core (hyperthreaded) Δωρεά τθσ Intel USA ςτο PARAGROUP (2008) #7
Dual core / Quad core / Multicore / Manycore? Πλζον και τα φτθνότερα PC ζχουν 1 επεξεργαςτι τουλάχιςτον διπφρθνο Διπφρθνοι αρχικά, τϊρα τετραπφρθνοι (Intel, AMD) Σ1 (Sun Niagara): 8πφρθνοι (με 4-way multithreaded πυρινεσ) από τον 12/2005! Πολλαπλϊν πυρινων (multicore) γενικά Manycore (πολλϊν πυρινων)?? Μιλάμε για πολλοφσ πυρήνεσ Σριψιφιο νοφμερο (> 64) Πότε? Σϊρα! Intel 80-πφρθνο πρωτότυπο Φεβ. 2007 80 απλά cores 2 floating point engines /core network-on-a-chip τφπου πλζγματοσ 100 million transistors, >1 Teraflop peak! #8
Clusters Παντοφ κι αυτά! υλλογι από διαςυνδεδεμζνουσ «κόμβουσ» Φτθνοί / ευρζωσ διακζςιμοι επεξεργαςτζσ (π.χ. Clusters από PCs) Ο μόνοσ τρόποσ να φτιάξουμε «οικονομικοφσ» υπερ-υπολογιςτζσ (πολλά Teraflops) Sandia Laboratories Red Storm (Cray, 2004) 13000 AMD Opterons (basically PC nodes), 75 Terabytes of memory > 100 Teraflops (peak) Linux Κόςτοσ: $90.000.000 ε αντιδιαςτολι με τον Earth Simulator ( NEC, Ιαπωνία, 2002) Διανυςματικόσ υπερυπολογιςτισ 5120 διανυςματικοί επεξεργαςτζσ, 10 Terabytes of memory 35 Teraflops (sustained) Κόςτοσ: $400.000.000 (2002, most expensive computer ever built) #9
Clusters Πανεπιςτιμιο Ιωαννίνων Κζντρο προςομοιϊςεων: 200 κόμβοι (κάκε κόμβοσ pc με 2 επεξεργαςτζσ) Σμιμα Πλθροφορικισ: 16 κόμβοι, κάκε κόμβοσ 2 CPUS, κάκε CPU διπφρθνθ Και τα δφο με gigabit ethernet Βελτιωμζνεσ επιδόςεισ με δίκτυα χαμθλισ κακυςτζρθςθσ Π.χ. Myrinet Πολφ ακριβότερα όμωσ Κάρτα δικτφο gigabit: 10-20 ευρϊ Cluster τμιματοσ Τλικϊν (Myrinet, πριν 6 χρόνια περίπου) Περίπου 100.000 ευρϊ για τα PC και άλλεσ 100.000 ευρϊ για τισ κάρτεσ δικτφου τουσ! Σο μζλλον: Clusters από πολυπφρθνουσ κόμβουσ #10
GPUs, GPGPUs, Cells, κλπ. Πάρα πολλά και πολφ απλά επεξεργαςτικά ςτοιχεία, κατάλλθλα είτε για ςυγκεκριμζνου τφπου υπολογιςμοφσ (GPUs) είτε και για γενικότερουσ υπολογιςμοφσ (GPGPUs, Cell). Πολφ τθσ μόδασ Πολφ γριγορα Ιδιαίτεροσ προγραμματιςμόσ Με μία λζξθ: Ετερογένεια Κλαςικόσ ιςχυρόσ πυρινασ/πυρινεσ + «ειδικοί» (γριγοροι, πολφ αλλά απλοί/ανίςχυροι) πυρινεσ Ετερογζνεια και ςτον τρόπο προγραμματιςμοφ #11
3 απλζσ ερωτιςεισ Σο excel κα τρζξει γρθγορότερα ςε αυτά τα μθχανιματα; Όχι! Αν είχα ζνα από αυτά τα μθχανιματα ςπίτι μου (ωσ PC), κα ζβλεπα μεγαλφτερθ ταχφτθτα; Ναι, κάποια (μικρι ςχετικά) βελτίωςθ ςτθν ταχφτθτα κα υπιρχε Γιατί όμωσ; ManyCore refers to many processors/chip 64? 128? Hard to say exact boundary How to program these? Use 2 CPUs for video/audio Use 1 for word processor, 1 for browser 76 for virus checking??? Parallelism must be exploited at all levels Πρζπει θ εφαρμογή να έχει προγραμματιςτεί παράλληλα ώςτε να χρηςιμοποιεί τουσ πολλαπλοφσ επεξεργαςτεσ #12
Γιατί να παρακολουκιςει κανείσ αυτό το μάκθμα; Σο μάκθμα μιλάει για παράλλθλουσ υπολογιςτζσ who cares? Οι παράλλθλοι υπολογιςτζσ ΔΕΝ είναι πλζον κάτι μακρινό / ςπάνιο / κλπ Σουσ χρθςιμοποιοφμε ΟΛΟΙ (multicore επεξεργαςτζσ) who cares? Όμωσ παρότι τουσ ζχουμε, ΔΕΝ ξζρουμε πωσ να τουσ προγραμματίηουμε Ακόμα και multicore επεξεργαςτι να ζχετε, αν γράψετε ζνα πρόγραμμα όπωσ τα γράφετε μζχρι τϊρα, ΜΟΝΟ το ζνα core κα δουλεφει. μαγκιά μασ! Περιηιτθτθ γνϊςθ ο παράλλθλοσ προγραμματιςμόσ Ερευνθτικζσ & εμπορικζσ ευκαιρίεσ To πράμα «κινείται» 3/2008: Η Microsoft και θ Intel βάηουν $10.000.000 για τθ δθμιουργία του ParLab ςτο Berkeley για να δουν τι κα κάνουν με τα πολλά cores 9/2009: To PARAGROUP ςυμμετζχει ςε πανευρωπαϊκι πρόταςθ φψουσ 30.000.000 για ζρευνα ςτον προγραμματιςμό embedded many-core systems καλά, θα έρθω άλλη μία φορά ςτο μάθημα και βλέπουμε #13
Θζματα που κα καλφψουμε Προγραμματιςμόσ μθχανϊν κοινισ μνιμθσ (SMPs, multicores κλπ) Βαςικι οργάνωςθ των μθχανϊν αυτϊν & ηθτιματα που ζχουν άμεςθ επίπτωςθ ςτον προγραμματιςτι Διεργαςίεσ Νιματα (posix threads, kernel/user level threads) OpenMP Προβλιματα και τεχνικζσ για άντλθςθ επιδόςεων Προγραμματιςμόσ μθχανϊν κατανεμθμζνθσ μνιμθσ Βαςικι οργάνωςθ των μθχανϊν αυτϊν & ηθτιματα που ζχουν άμεςθ επίπτωςθ ςτον προγραμματιςτι Κυρίωσ εναςχόλθςθ με MPI & MPI2 DSM και sdsm Προγραμματιςμόσ «περίεργων» ςυςτθμάτων GPUs (CUDA) Cell (simulator) Επιπλζον κζματα Transactional memory Reliability, power #14
Οργάνωςθ του μακιματοσ Διαλζξεισ Σρίτθ 10:00 13:00 Δεν επιτρζπεται καμία απουςία, χωρίσ ςυνεννόθςθ μαηί μου ΑΠΟ ΠΡΙΝ Προγραμματιςτικζσ εργαςίεσ κάκε 2 εβδομάδεσ περίπου Μελζτθ papers, προετοιμαςία παρουςίαςθσ και ςυηιτθςθ ςτθν τάξθ Κάκε 2 εβδομάδεσ περίπου Μετράει θ ςυμμετοχι Project Μελζτθ + προγραμματιςμόσ Θα ποφμε παραπάνω πράγματα ςε λίγο καιρό #15
Οργάνωςθ του μακιματοσ Πρόοδοσ / τελικζσ εξετάςεισ (???) Θα εξαρτθκοφν από τον αρικμό των φοιτθτϊν Πολλοί: εξετάςεισ και (αναγκαςτικά) ομαδικά project Αρκετοί: πρόοδοσ και projects, όχι τελικζσ εξετάςεισ Λίγοι: project και παραπάνω αςκιςεισ για αποφυγι εξετάςεων Εξαρτάται βζβαια και από το πϊσ ορίηεται το «πολλοί», «αρκετοί» και «λίγοι» Βακμολογία Πάλι, κα εξαρτθκεί από τον αρικμό των φοιτθτϊν τισ επόμενεσ 2 εβδομάδεσ κα κακοριςτοφν τα τελικά ποςοςτά των αςκιςεων, παρουςιάςεων, project και τυχόν εξετάςεων #16