Διαχει ριση & Επεξεργασι α Μ.Ο. Δεδομε νων Δρ. Παπαδα κης Στε λιος, Τ.Ε.Ι. Κρη της, Δ.Ε. Αγ. Νικολα ου 5/03/2019
Table of contents 1 Συστοιχι ες υπολογιστω ν 2 Πλατφο ρμες προγραμματισμου 3 Σχεδι ασης Συστοιχι ας
Συστοιχι ες υπολογιστω ν Ορισμο ς Συστοιχι α υπολογιστω ν (computer cluster) ονομα ζεται μια ομα δα υπολογιστω ν διασυνδεδεμε νων με σω ενο ς τυποποιημε νου δικτυ ου πολυ υψηλη ς ταχυ τητας, με σκοπο τη μεταξυ τους συνεργασι α για την επι λυση ενο ς συγκεκριμε νου προβλη ματος. Δομικά υλικά Απλοι υπολογιστε ς γραφει ου. Μια συστοιχι α μπορει να αποτελει ται και απο υπολογιστε ς υψηλω ν επιδο σεων. Η προστιθε μενη αξι α στη συστοιχι α προκυ πτει απο την επικοινωνι α μεταξυ αυτω ν των υπολογιστικω ν κο μβων με σα απο ε να υπερταχυ δι κτυο, τοπικο η ευρει ας περιοχη ς. Γρη γορα δι κτυα, GigaBit Ethernet, το ΑΤΜ, και το WDM
Σκοπιμο τητα Στην παρα λληλη επεξεργασι α ε χουμε στενη συνεργασι α με σα απο πυκνη επικοινωνι α Στην κατανεμημε νη η συνεργασι α ει ναι χαλαρη και η επικοινωνι α αραιο τερη. Άρα βασικο ς παρα γοντας σχεδιασμου : πυκνότητα της επικοινωνίας Προσομοι ωση της λειτουργι ας ενο ς μεγα λου υπολογιστη. Διαφα νεια στο χρη στη. Ομοιογενει ς και ετερογενει ς συστοιχι ες Πλεονεκτη ματα Μειονεκτη ματα
Πλατφο ρμες προγραμματισμου OpenMp κατα λληλο για πολυ-επεξεργαστε ς κοινη ς UMA μνη μης. MPI κατα λληλο για πολυεπεξεργαστε ς και πολυυπολογιστε ς. PVM προ γονος του MPI cuda, opencl εξειδικευμε νο για κα ρτες γραφικω ν. Map Reduce frameworks κατα λληλο για κατανεμημε νης Αρχιτεκτονικη ς συστη ματα, συνη θως μεγα λης κλι μακας. hadoop, spark, dask,... υλικολογισμικα στην κατηγορι α mapreduce.
Σχεδι αση συστοιχι ας Μεταγωγός 1 Gbit Ethernet Διαδίκτυο Μεταγωγός 1 Gbit Ethernet P P P M D είτε M D Αρχιτεκτονική 1: χρη ση τοπικω ν δι σκων. Το βασικο τερο κριτη ριο εδω ει ναι το χαμηλο κο στος κτη σης. Κα θε υπολογιστικο ς κο μβος ει ναι ε νας πλη ρης υπολογιστη ς αποτελου μενος απο επεξεργαστη, τοπικη μνη μη, και σκληρο δι σκο. Λο γω χαμηλου κο στους κτη σης και υψηλη ς ταχυ τητας, το πιο συνηθισμε νο δι κτυο ει ναι το GB Ethernet (Σχη μα 2.10).
Σχεδι αση συστοιχι ας Μεταγωγός 1 Gbit Ethernet Διαδίκτυο Μεταγωγός 1 Gbit Ethernet P RAID Box M D D.... D D D D FC-AL Προς RAID Box Αρχιτεκτονική 2: χρη ση δικτυακου αποθηκευτικου χω ρου (Storage Area Network SAN). Η επιλογη αυτη ς της λυ σης γι νεται ο ταν ει ναι κρι σιμη η διατη ρηση συνε πειας δεδομε νων μετα απο μια βλα βη σε κα ποιο δι σκο. ο λοι οι δι σκοι συγκεντρω νονται πι σω απο ε ναν ελεγκτη RAID controller
Σχεδι αση συστοιχι ας ιαδίκτυο Μεταγωγός 1 Gbit Ethernet P P P P Συστοιχία δίσκων M D D D D D D.... D RAID-C D D D D D D Προς Αποθήκευση Αρχιτεκτονική 3: Σχεδι αση για επεξεργασι α συναλλαγω ν Για την αναζη τηση σε εξαιρετικα μεγα λες βα σεις δεδομε νων, χρειαζο μαστε μεγα λο αποθηκευτικο χω ρο και υψηλη επεξεργαστικη ισχυ. Xρη ση πολυεπεξεργαστω ν για τους υπολογιστικου ς κο μβους, με δικο τους τοπικο δι σκο κεντρικο αποθηκευτικο χω ρο τυ που Storage enclosures ο οποι ος προσπελα ζεται με σω ενο ς ελεγκτη RAID (Σχη μα
Παρα δειγμα: google Κα θε ερω τημα στον διακομιστη της Google ξεκινα ει μια διαδικασι α αναζη τησης με σα σε ε να τερα στιο ο γκο πληροφοριω ν, μεγε θους πολλω ν δεκα δων TeraByte. Η συστοιχι α αποτελει ται απο δυ ο ειδω ν κο μβους: διακομιστές ευρετηρίων και διακομιστές εγγράφων. η αναζη τηση μπορει να μετατραπει σε παρα λληλη με τη διαι ρεση του ευρετηρι ου (index) σε τμη ματα που ονομα ζονται θραυ σματα ευρετηρι ου (index shards). Την αναζη τηση στα θραυ σματα εκτελου ν οι λεγο μενοι διακομιστε ς ευρετηρι ων (index servers). οι διακομιστε ς εγγρα φων (document servers) εξα γουν πληροφορι ες απο τα κει μενα ο πως ο τι τλος, η διευ θυνση URL, και μια περι ληψη του κειμε νου. Ικριω ματα (racks) των 80 υπολογιστω ν
Θε ματα σχετικα με τις συστοιχι ες Η διαχει ριση της ενε ργειας και η απαγωγη της θερμο τητας απο τα ικριω ματα. Η κατα το δυνατο ν ι ση κατανομη φορτι ου εργασι ας στους υπολογιστε ς με δεδομε νες τις διαφορετικε ς γενιε ς Pentium που υπα ρχουν και τις διαφορετικε ς δυνατο τητες κα θε υπολογιστη. Η ανοχη στα σφα λματα, η διαχει ριση των κο μβων, και η αντικατα - σταση τους.
Οι απαιτη σεις του συστη ματος Μπορει να χειριστει περισσο τερες απο 1000 αιτη σεις αναζη τησης ανα δευτερο λεπτο. Η υπηρεσι α ει ναι συνεχω ς διαθε σιμη και η λειτουργι α της αδια λειπτη. Η καθυστε ρηση απο κρισης στον χρη στη ει ναι μικρο τερη απο 0,5 δευτερο λεπτα. Η υπηρεσι α ψα χνει περισσο τερες απο 1,5 δισεκατομμυ ριο διευθυ ν- σεις URL.
Παρα δειγμα: ο υπερυπολογιστη ς Jaguar Χαρακτηριστικα του υπερυπολογιστη Jaguar της εταιρει ας Cray στην ε κδοση XT5 Μαζικα παρα λληλος υπολογιστη ς Διαθε τει 18688 γενικου ς υπολογιστικου ς κο μβους Ένα διπλο 6-πυ ρηνο επεξεργαστη Opteron 2435 με συχνο τητα λειτουργι ας 2,6 GHz και μνη μη 16 GB, ανα κο μβο Συ νολο 224,256 πυρήνες, συνολικη μνήμη 300 PetaByte (= 300000 GB), Επι δοση στην καλυ τερη περι πτωση 2,3 PetaFLOPS (FLOPS = Floating Point Operations per Second). λειτουργικο συ στημα τυ που Unix (Cray Linux) Δι κτυο SeaStar 2+ της Cray, με με γιστο ευ ρος ζω νης 57,6 GB/s. Με χρι το καλοκαι ρι του 2010 θεωρου νταν ο ταχυ τερος υπολογιστη ς στον κο σμο συ μφωνα με τη λι στα TOP500.
Μοντε λα προγραμματισμου SIMT (OpenMP, GPU) Single instruction multiple threads SPMD (MPI, PVM) Single Program multiple data mapreduce (hadoop,spark, dask)
Η διασυ νδεση OpenMp Η OpenMP υποθε τει ο τι υπα ρχει κοινο χρηστη μνη μη την οποι α μοιρα ζονται N επεξεργαστε ς. Βασικε ς ε ννοιες Διεργασία (process), Νήμα (thread). Το μοντε λο OpenMp ει ναι το: SPMT SingleProgram Multiple Threads. H λογικη μονα δα εκτε λεσης ει ναι το Νη μα.
Ανα λυση των εννοιω ν Διεργασι α Η διεργασία: Ει ναι ε να προ γραμμα σε εκτε λεση. Συστατικά στοιχεία ο μετρητη ς προγρα μματος (program counter), οι καταχωρητε ς, το τμη μα κω δικα (code segment) της μνη μης, το τμη μα δεδομε νων (data segment) της μνη μης, το τμη μα στοι βας (stack segment) της μνη μης, ο που αποθηκευ ονται προσωρινα οι μεταβλητε ς του προγρα μματος ο ταν αυτο καλει μια συνα ρτηση, οι απαραι τητοι πο ροι του λειτουργικου συστη ματος (processid, userid, δει κτες προς πιθανα αρχει α που χρησιμοποιει το προ γραμμα, κλπ.),
Το Νη μα Το Νη μα Ει ναι λογική μονα δα επεξεργασι ας. Ελαφρά διεργασία Έχει δικο του μετρητη προγρα μματος. Δεν ε χει δικο του χω ρο διευθυ νσεων αλλα μοιρα ζεται το χω ρο διευθυ νσεων της κυ ριας διεργασι ας Πρωτευ ον Νη μα Κα θε διεργασι α ο ταν δημιουργει ται δημιουργει αυτο ματα ε να νη μα εκτε λεσης που ονομα ζεται πρωτεύον νήμα Όλα τα α λλα νη ματα δημιουργου νται απο το πρωτευ ον νη μα Η εκτε λεση του κω δικα πραγματοποιει ται απο τα νη ματα Η ανα θεση των νημα των (λογικε ς μονα δες επεξεργασι ας) στους πυρη νες (φυσικε ς μονα δες επεξεργασι ας) γι νεται απο το λειτουργικο συ στημα.
Η διασυ νδεση OpenMP Η διασυ νδεση OpenMp ει ναι ε να συ νολο απο συναρτη σεις βιβλιοθη - κης οι οποι ες μπορου ν να κληθου ν απο δια φορες γλω σσες υψηλου επιπε δου (π.χ., C, C++ και διευκολυ νει την εφαρμογη του μοντε λου SPMT. Βασι ζεται σε δυο εντολε ς fork και join fork: Η εντολη αυτη παρα γει ε να νέο νήμα Το παλιο νη μα, που κα λεσε τη συνα ρ- τηση fork, εξακολουθει να εκτελει ται και, ε τσι, τα δυ ο νη ματα εκτελου νται παρα λληλα. Μια δευ τερη fork παρα γει ε να τρι το νη μα. Γενικα ε να νη μα που εκτελει k εντολε ς fork παρα γει k νε α νη ματα. join: Η εντολη αυτη ει ναι ε να νοητό φράγμα ο που τα νη ματα δι νουν ραντεβου. Όλα τα νη ματα καταστρε φονται ο ταν φθα - νουν εκει, εκτο ς απο το μητρικο νη μα που συνεχι ζει την εκτε λεση του.
Σχηματικα Με τη χρη ση της διασυ νδεσης OpenMP μπορου με να παρεμβα λουμε παρα λληλα τμη ματα κω δικα ανα μεσα στα σειριακα. Μητρικό Νήμα fork join Σε ε να παρα λληλο τμη μα, τα νη ματα δημιουργου νται με την εντολη fork και καταστρε φονται με την join.
Ελα χιστο συ νολο εντολω ν για την υλοποι ηση του SPMT Σε ψευδοεντολε ς: Κα θε Νη μα πρε πει να ξε ρει την ταυτο τητα του. Η ταυτο τητα αυτη αποδι δεται αυτο ματα απο το συ στημα. Πο σα συνολικα νη ματα εκτελου νται στην ι δια ομα δα. μλο καρε το νη μα με ταυτο τητα tid. περι μενε το νη μα με ταυτο τητα id. Στει λε δεδομε να στο νη μα με ταυτο τητα tid Λα βε δεδομε να απο το νη μα με ταυτο τητα id
Παρα δειγμα 1 // Σκελετο ς προγρα μματος C με τη χρη ση της διασυ νδεσης OpenMP 2 # <. > 3 # <. > 4 (int, char * []) { 5 int,, ; 6 /* Σειριακο ς κω δικας */ 7. 8. 9. 10 #pragma omp parallel private(mythreadid, var) shared(numthreads) 11 { /* Παρα λληλο τμη μα - εκτελει ται απο ο λα τα νη ματα */ 12 = (); /* get my thread-id (private) */ 13 = (); /* συνολικο πλη θος νημα των */ 14 if ( == 0) 15 { 16... /* εκτελει ται απο το νη μα 0 */ 17 } else if ( == 1) 18 { 19... /* εκτελει ται απο το νη μα 1 */ 20 } 21 else if ( == 2) { 22... /* εκτελει ται απο το νη μα 2 */ 23... /* κλπ */ 24 } 25 } /* Τε λος παρα λληλου τμη ματος. Όλα τα νη ματα καταστρε φονται εκτο ς απο ε να που συνεχι ζει */ 26 /* Συνεχι ζεται ο σειριακο ς κω δικας */ 27. 28. 29. 30 }
Θε ματα τα οποι α ανακυ πτουν Το OpenMp εφαρμο ζεται κυρι ως σε αρχιτεκτονικε ς κοινη ς μνη μης. π.χ. πολυπυ ρηνους επεξεργαστε ς. Δημιουργι α λογικών μονα δων επεξεργασι ας (fork). Εδω οι λογικε ς μονα δες ει ναι τα Νήματα (Threads). Επι λυση συνθηκω ν ανταγωνισμου Race Conditions που εμφανι ζονται ο ταν περισσο τερες απο μια λογικε ς μονα δες επεξεργασι ας θε λουν να χρησιμοποιη σουν τον ι διο πο ρο. Συνη θως εδω ο κοινο χρηστος πο ρος ει ναι η Μνήμη. Συγχρονισμο ς των λογικω ν μονα δων επεξεργασι ας ε τσι ω στε η μια να περιμε νει την α λλη. Σειρειοποίηση - Serialization - Συγχρονισμο ς με χρι να φτα σουν ο λες σε συγκεκριμε νο σημει ο εκτε λεσης φράγμα. - barrier - join.
Άσκηση Θεωρου με ο τι ε χουμε μια εργασι α T 1 η οποι α τυπω νει στην οθο νη α ρτιους ακε ραιους απο 0 ε ως 100. Θεωρου με ο τι ε χουμε μια εργασι α T 2 η οποι α τυπω νει στην οθο νη περιττου ς ακε ραιους απο 1 ε ως 99. Δημιουργι α και συγχρονισμο ς διεργασιω ν 1 Να δημιουργηθου ν δυο λογικε ς μονα δες επεξεργασι ας και στην κα θε μια να ανατεθει η αντι στοιχη εργασι α. Τι θα παρατηρη σουμε; 2 Να συγχρονιστου ν οι δυο μονα δες ε τσι ω στε οι αριθμοι να γρα φονται κατα αυ ξουσα σειρα. 3 Να σημειωθει ο τι αν k Z το τε 2k ει ναι α ρτιος και 2k + 1 ει ναι περιττο ς αριθμο ς.
Η διασυ νδεση MPI MPI: Message Passing Interface Σε αντι θεση με την OpenMP, λειτουργει στα πλαι σια του αρχιτεκτονικου μοντε λου του πολυ-υπολογιστη κατανεμημε νης μνη μης. ει ναι κατα λληλο για τον προγραμματισμο εμπορικω ν μηχανω ν κατανεμημε νης μνη μης. Για τον προγραμματισμο συστοιχιω ν υπολογιστω ν. Το MPI ακολουθει τη φιλοσοφι α Ένα Προ γραμμα, Πολλα Δεδομε να (Single Program Multiple Data SPMD). Βασική φιλοσοφία του SPMD Δημιουργου νται πολλα αντι γραφα του ι διου προγρα μματος (διεργασι ες) τα οποι α εκτελου νται παρα λληλα στους διαθε σιμους υπολογιστε ς. Αν ε χουμε P διεργασι ες, κα θε διεργασι α ο μως διακρι νεται απο τις υπο λοιπες με ε ναν αυ ξοντα αριθμο απο 0 ε ως P 1. Με αυτο ν τον τρο πο, καθι σταται εφικτο η κα θε διεργασι α να εκτελει και διαφορετικε ς εντολε ς.
Παρα δειγμα 1 ^^ ^^ ^^ # <. > 2 ^^ ^^ ^^ # <. > 3 ^^ ^^ ^^ 4 ^^ ^^ ^^ (int, char * []) { 5 ^^ ^^ ^^, ; 6 ^^ ^^ ^^ 7 ^^ ^^ ^^ /* Καθορισμο ς αρχικω ν συνθηκω ν του MPI */ 8 ^^ ^^ ^^ (&, & ); 9 ^^ ^^ ^^ /* Ευ ρεση αριθμου διεργασιω ν */ 10 ^^ ^^ ^^ (, & ); 11 ^^ ^^ ^^ /* Bρες το δικο μου id */ 12 ^^ ^^ ^^ (, & ); 13 ^^ ^^ ^^ 14 ^^ ^^ ^^ ( == 0) { 15 ^^ ^^ ^^... /* εκτελει ται απο τη διεργασι α 0 */ 16 ^^ ^^ ^^ } else if ( == 1) { 17 ^^ ^^ ^^... /* εκτελει ται απο τη διεργασι α 1 */ 18 ^^ ^^ ^^ } else if ( == 2) { 19 ^^ ^^ ^^... /* εκτελει ται απο τη διεργασι α 2 */ 20 ^^ ^^ ^^... /* κλπ */ 21 ^^ ^^ ^^ } 22 ^^ ^^ ^^ } 23 ^^ ^^ ^^ 24 ^^ ^^ ^^ /* Τερματισμο ς του MPI */ 25 ^^ ^^ ^^ (); 26 ^^ ^^ ^^ } 27 ^^ ^^
Παρατηρη σεις Δεν γνωρι ζουμε ποιος υπολογιστη ς θα τρε ξει ποια διεργασι α. Κα θε διεργασι α λαμβα νει μια ταυτο τητα απο το συ στημα. Κα θε διεργασι α μπορει να γνωρι σει την ταυτο τητα που ε λαβε απο το συ στημα Κα θε διεργασι α μπορει να ξε ρει το συ νολο των διεργασιω ν Κα θε διεργασι α μπορει να στει λει και να λα βει δεδομε να σε α λλες διεργασι ες, υπο τη μορφη μηνυμα των
Ασκη σεις Περιγραφη του μοντε λου SPMD Να εφαρμοστει το μοντε λο SPMD για τον παραλληλισμο της ευ ρεσης του αθροι σματος ενο ς πι νακα N στοιχει ων Εργασι α Να εφαρμοστει το μοντε λο SPMD για τον παραλληλισμο της ευ ρεσης του με γιστου στοιχει ου απο N μη ταξινομημε να δεδομε να, τα οποι α ει ναι αποθηκευμε να στο αρχει ο. Το μοντε λο SPMD να υλοποιηθει με ψευδοκω δικα.
Παρα δειγμα ping-pong το προ βλημα Να γραφτει κω δικας σε MPI ο οποι ος να εκτυπω νει στην οθο νη εναλα ξ Ping-pong Τι θεται θε μα συγχρονισμου διεργασιω ν Τι θεται θε μα ανταλαγη ς δεδομε νων μεταξυ των διεργασιω ν. Η εκτε λεση γι νεται σε κοινη ς μνη μης υπολογιστικο συστημα. Η εκτε λεση γινεται σε κατανεμημε νης μνη μης υπολογιστικο συ στημα.