Σύμπλεγμα από το raspberry pi 3. Δημιουργία συστήματος ανάπτυξης εφαρμογών χρησιμοποιώντας το Docker

Στο σημερινό guest post, ο Bruce Tulloch, Διευθύνων Σύμβουλος και Διευθύνων Σύμβουλος της BitScope Designs, συζητά τις χρήσεις του υπολογισμού συμπλέγματος με το Raspberry Pi και τον πρόσφατο πιλότο του συμπλέγματος Los Alamos National Laboratory 3000-Pi που κατασκευάστηκε με το BitScope Blade.

Οι υπολογιστές υψηλής απόδοσης και το Raspberry Pi συνήθως δεν εκφέρονται με την ίδια ανάσα, αλλά το Εθνικό Εργαστήριο του Los Alamos κατασκευάζει ένα σύμπλεγμα Raspberry Pi με 3000 πυρήνες ως πιλοτικό, προτού κλιμακωθεί σε 40.000 πυρήνες ή περισσότερους το επόμενο έτος.

Αυτό είναι εκπληκτικό, αλλά γιατί;

Παραδοσιακά συμπλέγματα Raspberry Pi

Όπως οι περισσότεροι άνθρωποι, αγαπάμε ένα καλό σύμπλεγμα! Οι άνθρωποι τα χτίζουν με το Raspberry Pi από την αρχή, επειδή είναι φθηνό, εκπαιδευτικό και διασκεδαστικό. Έχουν κατασκευαστεί με το αρχικό Pi, Pi 2, Pi 3, ακόμη και το Pi Zero, αλλά κανένα από αυτά τα cluster δεν έχει αποδειχθεί ιδιαίτερα πρακτικό.

Αυτό όμως δεν τους εμπόδισε να είναι χρήσιμοι! Είδα αρκετά συμπλέγματα Raspberry Pi στο συνέδριο την περασμένη εβδομάδα.

Ένα μικρό που τράβηξε την προσοχή μου ήταν από τους ανθρώπους στο openio.io , οι οποίοι χρησιμοποίησαν ένα μικρό σύμπλεγμα Raspberry Pi Zero W για να επιδείξουν την κλιμακούμενη πλατφόρμα αποθήκευσης αντικειμένων που ορίζεται από λογισμικό, η οποία σε μεγάλα μηχανήματα χρησιμοποιείται για τη διαχείριση petabyte δεδομένων, αλλά η οποία είναι τόσο ελαφρύ που τρέχει μια χαρά σε αυτό:

Υπήρχε ένα άλλο ελκυστικό παράδειγμα στο περίπτερο ARM, όπου η πλατφόρμα κοντέινερ της ιδιαιτερότητας των εργαστηρίων Berkeley Labs αποδείχθηκε ότι λειτουργεί πολύ αποτελεσματικά σε ένα μικρό σύμπλεγμα κατασκευασμένο με Raspberry Pi 3.

Το αγαπημένο μου σόου ήταν από το Εδιμβούργο Parallel Computing Center (EPCC): Ο Nick Brown χρησιμοποίησε ένα σύμπλεγμα Pi 3 για να εξηγήσει τους υπερυπολογιστές στα παιδιά με μια συναρπαστική διαδραστική εφαρμογή. Η ιδέα ήταν οι επισκέπτες στο περίπτερο να σχεδιάσουν ένα φτερό αεροσκάφους, να το προσομοιώσουν σε όλο το σύμπλεγμα και να εξετάσουν εάν ένα αεροσκάφος που χρησιμοποιεί τη νέα πτέρυγα θα μπορούσε να πετάξει από το Εδιμβούργο στη Νέα Υόρκη με γεμάτη δεξαμενή καυσίμου. Το δικό μου τα κατάφερε, ευτυχώς!

Συστάδες Raspberry Pi επόμενης γενιάς

Κατασκευάζουμε συστάδες Raspberry Pi μικρής κλίμακας βιομηχανικής αντοχής εδώ και λίγο καιρό με το BitScope Blade.

Όταν το Εθνικό Εργαστήριο του Los Alamos μας προσέγγισε μέσω του παρόχου HPC SICORP με αίτημα τη δημιουργία ενός συμπλέγματος που θα περιλαμβάνει πολλές χιλιάδες κόμβους, εξετάσαμε όλες τις επιλογές πολύ προσεκτικά. Χρειαζόταν να είναι πυκνό, αξιόπιστο, χαμηλής ισχύος και εύκολο στη διαμόρφωση και την κατασκευή. Δεν χρειαζόταν «να κάνει επιστήμη», αλλά χρειαζόταν να λειτουργήσει σχεδόν με κάθε άλλο τρόπο, όπως θα έκανε ένα σύμπλεγμα HPC πλήρους κλίμακας.

Θα διαβάσω και θα απαντήσω στις σκέψεις σας στα σχόλια κάτω από αυτήν την ανάρτηση.

Σημείωση του συντάκτη:

Εδώ είναι μια φωτογραφία του Bruce που φορά ένα jetpack. Ωραίο, σωστά;!


16 σχόλια

    Παιδιά πρέπει να αρχίσετε να φτιάχνετε ένα "σετ ανεγέρσεως" υπολογιστή. Ως παιδί, έλαβα ένα σετ ανόρθωσης όταν ήμουν 7-8 χρονών για τα Χριστούγεννα. Έφτιαξα ό,τι μπορούσε να σκεφτεί κανείς. Αργότερα έγινα Μηχανολόγος Μηχανικός. Σχεδίασα εξαρτήματα για τουρμπίνες αερίου GE και όταν ανάβετε τα φώτα σας, έχω άμεση σύνδεση με την τροφοδοσία RPis σε όλο τον κόσμο.

    Έχετε τα περισσότερα από τα θεμελιώδη μέρη αυτή τη στιγμή. Χρειάζεστε ένα λεωφορείο, κάτι σαν το δίαυλο CM DDR3. Εάν το RPi 3B ή όποτε βγαίνει το RPi 4, είχε έναν προσαρμογέα ή pinouts που συνδέονται με αυτόν τον δίαυλο, η ομαδοποίηση θα ήταν εύκολη. Θα μπορούσα να οραματιστώ τέσσερα CM με τετραπλό επεξεργαστή, έναν επεξεργαστή γραφικών/εξορύκτη Bitcoin σε ένα CM, έναν CM με SSD κ.λπ. Σετ ανάρτησης υπολογιστή…

    • Τι συμβαίνει με τη χρήση του διακόπτη και του υφάσματος ethernet ως «διαύλου» στο υπάρχον υλικό;

    Υπάρχει διαθέσιμη μια σύντομη παρουσίαση βίντεο που να συζητά το σύμπλεγμα Los Alamos Pi, πώς κατασκευάστηκε, σε τι θα χρησιμοποιηθεί και γιατί επιλέχθηκε αυτή η λύση έναντι άλλων;

    Επίσης, δεδομένου του ενδιαφέροντος για το OctoPi και άλλα συμπλέγματα Pi, θα μπορούσε να υπάρξει μια ενότητα αφιερωμένη στην παράλληλη επεξεργασία στο φόρουμ του Raspberry Pi;

    • Αυτή είναι μια καλή ιδέα. Νομίζω ότι είναι η κατάλληλη στιγμή.

    Είναι διαθέσιμο το demo του airwing δωρεάν;

    • Το EPCC Raspberry Pi Cluster ονομάζεται Wee Archie () και (όπως το Los Alamos που κατασκευάσαμε) είναι ένα «μοντέλο», αν και για έναν κάπως διαφορετικό σκοπό. Στην περίπτωσή τους, είναι εκπρόσωπος του Archer (http://www.archer.ac.uk/) ενός υπερυπολογιστή παγκόσμιας κλάσης που βρίσκεται και λειτουργεί στο Ηνωμένο Βασίλειο την Εθνική Υπηρεσία Υπερυπολογιστών. Ο Nick Brown (https://www.epcc.ed.ac.uk/about/staff/dr-nick-brown) είναι ο τύπος πίσω από το demo που είδα στο SC17. Ρίξτε του μια γραμμή!

    Χαίρομαι που έφυγα από το τμήμα υπολογιστών υψηλής απόδοσης τώρα. Αυτό είναι τρέλα. Ο κακός κώδικας Fortran τόσο διαδεδομένος στα εργαστήρια δεν πρόκειται να εκτελεστεί το ίδιο στην αρχιτεκτονική ARM όταν οι υπερυπολογιστές στους οποίους πρόκειται να εκτελεστεί ο κώδικας θα χρησιμοποιούνται σε μηχανήματα αρχιτεκτονικής Intel. Αυτό το έργο πρόκειται να δώσει στους ασκούμενους ένα πεδίο παιχνιδιού για να μάθουν τι θα έπρεπε να έχουν μάθει στο κολέγιο.

    • Ένα από τα εκκρεμή ζητήματα με τον υπολογισμό exascale είναι ότι είναι αναποτελεσματικό να σημειωθεί ένας υπολογισμός που εκτελείται σε τόσους πολλούς πυρήνες σε τόσα πολλά κουτιά. Ταυτόχρονα, η πιθανότητα όλοι οι κόμβοι να λειτουργούν άψογα κατά τη διάρκεια του υπολογισμού μειώνεται εκθετικά καθώς προστίθενται περισσότεροι κόμβοι.

      Αποτελεσματικά αποδοτικά παράλληλα συστήματα κατανεμημένης μνήμης συγκρίθηκαν με κοτόπουλα βοσκής. Όταν σκέφτεστε κοπάδια τόσο μεγάλα που χρειάζονται μεγαβάτ για να τα ταΐσετε, ίσως είναι καλύτερο να εξασκηθείτε με το βοσκή κατσαρίδων. Δεν πρόκειται για τη ρύθμιση της απόδοσης των κωδικών Fortran, αλλά για τον τρόπο διαχείρισης σφαλμάτων υλικού σε έναν μαζικά κατανεμημένο παράλληλο υπολογισμό. Όπως αναφέρθηκε στο δελτίο τύπου, δεν ξέρουμε καν πώς να εκκινήσουμε μια μηχανή exascale: Μέχρι να ξεκινήσει ο τελευταίος κόμβος, πολλοί άλλοι κόμβοι έχουν ήδη καταρρεύσει. Κατά τη γνώμη μου, είναι εφικτή η μοντελοποίηση αυτών των δυσκολιών exascale με ένα τεράστιο σύμπλεγμα υπολογιστών Raspberry Pi. Για παράδειγμα, η απόρριψη 1 GB μνήμης RAM μέσω της δικτύωσης 100 Mbit του Pi είναι παρόμοια αναλογία δεδομένων προς εύρος ζώνης με την απόρριψη 1 TB RAM μέσω διασύνδεσης 100 Gbit.

      • Σημείο για τον Έρικ. Το ζήτημα είναι η κλίμακα, η εκκίνηση, η λειτουργία των μηχανημάτων, η είσοδος και έξοδος των δεδομένων και ο έλεγχος για την αποφυγή απώλειας τεράστιου όγκου υπολογιστικής εργασίας.

        Μερικά ενδιαφέροντα πράγματα που έμαθα από αυτό το έργο…

        Κανονικά κάποιος πιστεύει ότι τα ποσοστά σφάλματος της τάξης των 10^-18 είναι αρκετά καλά, αλλά σε αυτή την κλίμακα μπορεί κανείς να τα συναντήσει κατά τη διάρκεια μιας μόνο βολής σε ένα μεγάλο μηχάνημα. Σε exascale αυτό θα είναι χειρότερο. Η λέξη που χρησιμοποιεί η κοινότητα HPC για αυτό είναι «ανθεκτικότητα». οι μηχανές πρέπει να είναι σε θέση να κάνουν την επιστήμη με αξιόπιστο και επαληθεύσιμο τρόπο παρά αυτά τα προβλήματα του «πραγματικού κόσμου» που παρεμβαίνουν στη λειτουργία του υποκείμενου συμπλέγματος.

        Κάνουν πολλή «σύγχρονη επιστήμη» σε μαζική κλίμακα, έτσι η ανάγκη για σημεία ελέγχου είναι αναπόφευκτη και το Los Alamos βρίσκεται σε αρκετά μεγάλο υψόμετρο (περίπου 7.300 πόδια), έτσι οι μηχανές υπόκεινται σε υψηλότερα επίπεδα κοσμικής ακτινοβολίας. Αυτό σημαίνει ότι αντιμετωπίζουν υψηλότερα ποσοστά «αναλογικών σφαλμάτων» που μπορεί να προκαλέσουν υπολογιστικά σφάλματα και τυχαία σφάλματα κόμβου.

        Όλα αυτά τα είδη προβλημάτων μπορούν να μοντελοποιηθούν, να δοκιμαστούν και να κατανοηθούν χρησιμοποιώντας το Raspberry Pi Cluster με πολύ χαμηλότερο κόστος και χαμηλότερη ισχύ από ό,τι σε μεγάλα μηχανήματα. Η πρόσβαση root σε ένα σύμπλεγμα πυρήνων 40.000 για παρατεταμένες χρονικές περιόδους είναι σαν ένα όνειρο που έγινε πραγματικότητα για τα παιδιά που η δουλειά τους είναι να λύσουν αυτά τα προβλήματα.

    Φτιάχνω 120 συμπλέγματα Raspberry Pi για τρισδιάστατη σάρωση. Χρησιμοποιήστε καθαρή πολυεκπομπή UDP για να τα ελέγξετε όλα χρησιμοποιώντας μια ενιαία μετάδοση πακέτων δικτύου. Λειτουργεί πολύ καλά :-)

    Αυτό είναι πολύ παρόμοιο με αυτό που θέλουμε με ένα νέο έργο λαϊκής βάσης. Αλλά αντί για ένα φυσικό σύμπλεγμα που βρίσκεται κοντά, Σκεφτόμαστε μια «συλλογική» (είδος Borg, αλλά στη συνέχεια ωραία…), για την εκτέλεση τρισδιάστατης απόδοσης GPU Three.js. Έχω ένα πρωτότυπο που τρέχει στο If you Bing ή Google στο sustasphere, θα βρείτε το αντίστοιχο GitHub (όχι όμως εντελώς ενημερωμένο). Το τρέχον πρωτότυπο αποδίδεται (προφανώς) στο πρόγραμμα περιήγησής σας. Με το συλλογικό, οι κλήσεις του προγράμματος περιήγησής σας θα δρομολογούνται (ελπίζουμε) σε χιλιάδες Raspberry's. κάθε τραγάνισμα σε πραγματικό χρόνο ένα μέρος της τρισδιάστατης απόδοσης. Στο «το κεφάλι μου», σκέφτομαι το Open Suze στοιβαγμένο με το Express.js.

    Για την ενεργειακή τροφοδοσία κάθε κόμβου, ευχαριστούμε τον άνεμο και μια βίδα αρχαιμία, με υδραυλική κεφαλή, με ένα απλό δυναμό ποδηλάτου…

    Ωραίο, αλλά γιατί; Θα θέλαμε να τιμήσουμε έναν απόηχο από το παρελθόν (The Port Huron Statement). εισάγουν μια εικονική σφαίρα αξιοπρέπειας. Δίνοντας στους ανθρώπους την ευκαιρία να εκφράσουν τα συναισθήματά τους. ορίζοντας πάλι την έννοια της αξιοπρέπειας. Φανταστείτε τον Μότσαρτ να ερμηνεύει το Nozze di Figaro (για μένα ένα τέλειο παράδειγμα για να φέρω την τέχνη στους ανθρώπους και να μοιράζομαι σκέψεις για την ηθική). και να είσαι σε θέση να είσαι πραγματικά εκεί, να κυκλοφορείς, να «μετράς τα ρουθούνια» και ίσως ακόμη και να «γίνεσαι σωματικός».

    Ναι, θα χρειαστείτε κάποια GPU-collective για αυτό.

    Με βάση την εμπειρία σας, θα μπορούσατε να μας συμβουλεύσετε για την πορεία μας; Βοηθήστε τη χρήση στη λήψη σωστών αποφάσεων;

    > πρόσφατος πιλότος του συμπλέγματος Los Alamos National Laboratory 3000-Pi

    Θα πρέπει να διαβάζει σύμπλεγμα 750 Pi, 5 blades των 150 Pis το καθένα, με συνολικά 3000 πυρήνες (4 πυρήνες το καθένα ανά CPU)

    Εντάξει, είμαι λάτρης των raspberry pi 3. Αλλά αναρωτιόμουν αν χρησιμοποιούσαν LFS με το σύμπλεγμα λεπίδων bitscope; …και αν ναι, πώς ήταν η απόδοση;

    • Όχι LFS αλλά ούτε και Raspbian (εκτός από την αρχική δοκιμή). Τελικά θα δημοσιεύσουν περισσότερα για να εξηγήσουν τι κάνουν, αλλά αρκεί να πούμε ότι πρόκειται για μια πολύ λιτή στοίβα λογισμικού που έχει ως στόχο να τους διευκολύνει να προσομοιώσουν τη λειτουργία μεγάλων συμπλεγμάτων σε αυτό το «μικρό».

    Γιατί είναι «σημαντικό να αποφεύγεται η χρήση των καρτών Micro SD»;

    Έχω στο μυαλό μου μια εφαρμογή για ένα σύμπλεγμα pi, για το οποίο θα χρειαστώ τοπική αποθήκευση. Αν δεν μπορώ να χρησιμοποιήσω την κάρτα MicroSD, τότε τι;

    • Όταν εκτελείτε ένα σύμπλεγμα 750 κόμβων (όπως κάνει το Los Alamos), η διαχείριση και η ενημέρωση εικόνων σε όλες τις κάρτες SD 750 είναι, λοιπόν, ένας εφιάλτης.

      Εάν το σύμπλεγμα σας είναι μικρότερο, μπορεί να μην είναι πρόβλημα (πράγματι, συχνά το κάνουμε μόνο αυτό για μικρά Blade Racks 20 ή 40 κόμβων).

      Ωστόσο, το άλλο ζήτημα είναι η ευρωστία.

      Οι κάρτες SD τείνουν να φθείρονται (το πόσο γρήγορα εξαρτάται από πώς κάνειςχρησιμοποιήστε τα). Οι κόμβοι εκκίνησης PXE (net) δεν φθείρονται. Η τοπική αποθήκευση μπορεί επίσης να μην είναι απαραίτητη (εάν χρησιμοποιείτε σύστημα αρχείων που εξυπηρετείται από NFS ή NBD μέσω του LAN), αλλά το εύρος ζώνης πρόσβασης στον (απομακρυσμένο) χώρο αποθήκευσης μπορεί να είναι πρόβλημα (αν όλοι οι κόμβοι μεταπηδούν στο LAN ταυτόχρονα, ανάλογα με το δίκτυο του δικτύου σας ή/και το εύρος ζώνης διακομιστή NFS/NBD).

      Η άλλη επιλογή είναι τα USB sticks (που είναι συνδεδεμένα στις θύρες USB του Raspberry Pi). Είναι (συνήθως) πιο γρήγορες και (μπορεί να είναι) πιο αξιόπιστες από τις κάρτες SD και μπορείτε να κάνετε εκκίνηση και από αυτές!

      Τούτου λεχθέντος, δεν υπάρχει πρόβλημα με τις κάρτες SD που χρησιμοποιούνται εντός των ορίων τους στα Raspberry Pi Cluster.

Χρησιμοποιείται από λάτρεις για διάφορους σκοπούς. Για παράδειγμα, ο ενθουσιώδης David Guill αποφάσισε να το χρησιμοποιήσει για να δημιουργήσει ένα σύμπλεγμα - μια ομάδα υπολογιστών που συνδέονται μεταξύ τους και αντιπροσωπεύουν, από τη σκοπιά του χρήστη, έναν ενιαίο πόρο υλικού. Αποφασίστηκε να ονομαστεί το έργο 40-Node Raspi Cluster. Αξίζει να σημειωθεί ότι ο David χρειαζόταν το σύμπλεγμα για να αποκτήσει εμπειρία στον προγραμματισμό σε κατανεμημένα συστήματα, έτσι το σύμπλεγμα Raspberry Pi θα αντικαταστήσει έναν πραγματικό υπερ-υπολογιστή κατά τη διάρκεια της εκπαίδευσής του.

Απλώς, θα ήταν δυνατό να συναρμολογηθεί ένα σύμπλεγμα από ένα Raspberry Pi, χρησιμοποιώντας μια μονάδα ραφιών ή ένα φθηνό ντουλάπι αντί για θήκη (όπως στην περίπτωση του ), αλλά επειδή ο David ενδιαφέρεται για την τροποποίηση, αποφάσισε να φτιάξει ένα κομψό σύμπλεγμα , όσο το δυνατόν πιο κοντά σε εμφάνιση και ευκολία σε σειριακές λύσεις. Και, πρέπει να πω, ο David πέτυχε, γιατί το έργο του είναι πολύ πιο στοχαστικό από πολλές σειριακές υποθέσεις. Παρεμπιπτόντως, το σώμα του έργου 40-Node Raspi Cluster είναι κατασκευασμένο από ακρυλικά πάνελ, κομμένα σε μέγεθος χρησιμοποιώντας λέιζερ και κολλημένα μεταξύ τους με το χέρι.

Κύριος χαρακτηριστικά γνωρίσματαΧάλυβας έργου 40-Node Raspi Cluster: δροσερή εμφάνιση, αρκετά συμπαγές μέγεθος (όπως ένας μεγάλος πύργος), εύκολη πρόσβαση σε όλα τα εξαρτήματα και δυνατότητα αντικατάστασής τους χωρίς να χρειάζεται να αποσυναρμολογήσετε τη θήκη, στερέωση χωρίς βίδα των εξαρτημάτων πυρήνα και πολλών εξαρτημάτων, επίσης ως παραγγελία στα καλώδια (και υπάρχουν αρκετά από αυτά σε αυτό το έργο). Αυτό το έργο περιλαμβάνει 40 συμπαγείς υπολογιστές Raspberry Pi (40 πυρήνες Broadcom BCM2835 με συχνότητα 700 MHz, 20 GB κατανεμημένης μνήμης RAM), δύο διακόπτες 24 θυρών, ένα τροφοδοτικό ATX, πέντε σκληρούς δίσκους 1 TB (με δυνατότητα επέκτασης έως και 12 τεμάχια ), 440 GB μνήμης flash, καθώς και ρούτερ με ασύρματη συνδεσιμότητα.


Οι υπολογιστές Raspberry Pi σε αυτό το έργο ομαδοποιούνται σε ομάδες των τεσσάρων σε προσαρμοσμένες ακρυλικές βάσεις, από τις οποίες υπάρχουν δέκα σε αυτό το έργο. Χάρη σε αυτή τη συναρμολόγηση (όπως στους διακομιστές blade), παρέχεται εύκολη πρόσβαση και εύκολη αντικατάσταση συμπαγών υπολογιστών. Κάθε blade Raspberry Pi έχει τον δικό του συμπαγή μετατροπέα DC-DC, που τροφοδοτείται από ένα κοινό τροφοδοτικό ATX. Η ψύξη του συμπλέγματος πραγματοποιείται με τη χρήση τεσσάρων ανεμιστήρων 140 mm, πίσω από τους οποίους τοποθετούνται φίλτρα.

Η αφθονία των LED προσθέτει επιπλέον "τροποποίηση" στο έργο 40-Node Raspi Cluster - υπάρχουν περισσότερα από τριακόσια από αυτά στο έργο (σε μίνι υπολογιστές, διακόπτες, δρομολογητές και ανεμιστήρες) και κατά τη λειτουργία θα αναβοσβήνουν σύμφωνα με το φορτίο. Οι διαστάσεις αυτού του έργου είναι 25 x 39 x 55 cm, και το κατά προσέγγιση κόστος κατασκευής είναι $3.000.

Με εξωτερικούς και εσωτερική όψη, καθώς και τις δυνατότητες του έργου 40-Node Raspi Cluster, μπορείτε να δείτε στις συνημμένες φωτογραφίες και βίντεο. Εάν αυτό το έργο σας ενδιαφέρει, τότε μπορείτε να εξοικειωθείτε με αυτό με περισσότερες λεπτομέρειες, και ο David περιέγραψε την κατασκευή αυτού του τέρατος με μεγάλη λεπτομέρεια, μπορείτε να επισκεφθείτε την αντίστοιχη σημείωση στον προσωπικό του ιστότοπο.

Μια δημοφιλής χρήση των υπολογιστών Raspberry Pi είναι η δημιουργία συμπλεγμάτων. Τα Raspberry Pies είναι μικρά και φθηνά, επομένως είναι πιο εύκολο να τα χρησιμοποιήσετε για να δημιουργήσετε ένα σύμπλεγμα από ό,τι θα ήταν με υπολογιστές. Ένα σύμπλεγμα Raspberry Pies θα πρέπει να είναι αρκετά μεγάλο για να ανταγωνιστεί έναν μόνο υπολογιστή. πιθανότατα θα χρειαστείτε περίπου 20 Πίτες για να δημιουργήσετε ένα σύμπλεγμα με τόση υπολογιστική ισχύ όσο ένας υπολογιστής. Αν και ένα σύμπλεγμα Pi μπορεί να μην είναι τόσο ισχυρό, είναι μια εξαιρετική ευκαιρία να μάθετε για τους κατανεμημένους υπολογιστές.

Υπάρχουν πολλοί διαφορετικοί τύποι κατανεμημένων υπολογιστών που μπορούν να χρησιμοποιηθούν για διαφορετικούς σκοπούς. Υπάρχουν σούπερ υπολογιστές που χρησιμοποιούνται για την επίλυση μαθηματικών προβλημάτων όπως η μοντελοποίηση καιρικών συνθηκών ή η προσομοίωση χημικών αντιδράσεων. Αυτά τα συστήματα χρησιμοποιούν συχνά το Message Passing Interface (MPI). Μια ομάδα στο Πανεπιστήμιο του Σαουθάμπτον κατασκεύασε έναν υπερυπολογιστή βασισμένο σε MPI 64 κόμβων. Αυτό το σύστημα χρησιμοποιείται για τη διδασκαλία των μαθητών σχετικά με τους υπερυπολογιστές.

Μια άλλη τεχνολογία που χρησιμοποιείται συχνά στους κατανεμημένους υπολογιστές είναι το Hadoop, το οποίο διανέμει δεδομένα σε πολλούς κόμβους. Το Hadoop χρησιμοποιείται συχνά για την επεξεργασία μεγάλων συνόλων δεδομένων και την εξόρυξη δεδομένων. Ένας μηχανικός της Nvidia δημιούργησε ένα μικρό σύμπλεγμα Hadoop χρησιμοποιώντας Raspberry Pies. Χρησιμοποιεί το σύμπλεγμα του για να πειραματιστείτε και δοκιμάστε ιδέες πριν τις αναπτύξετε σε πιο ισχυρά συστήματα.

Χρησιμοποιώντας ένα σύμπλεγμα Raspberry Pi ως διακομιστή ιστού

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

Αυτός ο ιστότοπος φιλοξενείται πλέον σε ένα σύμπλεγμα Raspberry Pi. Οι κόμβοι εργασίας είναι τυπικοί διακομιστές ιστού που περιέχουν το ίδιο περιεχόμενο. Μόλις εγκατέστησα το Apache σε αυτά και αντέγραψα τον ιστότοπό μου σε κάθε κόμβο.

Χρησιμοποιώ ένα επιπλέον Raspberry Pi για να φιλοξενήσω ένα αντίγραφο ανάπτυξης αυτού του ιστότοπου και για να ελέγξω το σύμπλεγμα. Αυτό το Pi είναι συνδεδεμένο στο τοπικό μου δίκτυο μέσω wifi, ώστε να μπορώ να έχω πρόσβαση στο αντίγραφο ανάπτυξης του ιστότοπού μου από τον φορητό υπολογιστή μου.

Το επιπλέον Pi διαθέτει επίσης σύνδεση ethernet με το σύμπλεγμα Pi. Όταν θέλω να ενημερώσω τον ιστότοπό μου, μπορώ να μεταφέρω αλλαγές από τον ιστότοπο ανάπτυξης στη ζωντανή τοποθεσία στο σύμπλεγμα. Οι ενημερώσεις ιστότοπου τοποθετούνται σε αρχεία .tar.gz τα οποία οι κόμβοι εργαζομένων κατεβάζουν αυτόματα από τον ιστότοπο ανάπτυξης. Μετά τη λήψη, οι ενημερώσεις αποσυσκευάζονται στο τοπικό σύστημα αρχείων.

Διαμόρφωση των διακομιστών Raspberry Pi

Όλες οι πίτες σε αυτό το σύστημα είναι ακέφαλοι. Μπορώ να συνδεθώ στο Pi με τον ιστότοπο ανάπτυξης χρησιμοποιώντας το πρωτόκολλο απομακρυσμένης επιφάνειας εργασίας και από αυτό το Pi μπορώ να συνδεθώ στο Worker Pies χρησιμοποιώντας SSH.

Όλες οι πίτες στο σύμπλεγμα χρησιμοποιούν μια στατική διεύθυνση IP. Σε ένα μεγαλύτερο σύμπλεγμα θα ήταν πιθανώς καλύτερο να εγκαταστήσετε έναν διακομιστή DHCP στον εξισορροπητή φορτίου. Οι διευθύνσεις IP που χρησιμοποιούνται στο σύμπλεγμα βρίσκονται στο υποδίκτυο 192.168.1.xxx.

Για κάθε εργαζόμενο Pi, εγκατέστησα μια κάρτα SD 4 GB χρησιμοποιώντας την πιο πρόσφατη έκδοση του Raspbian. Στο raspi-config έβαλα τις παρακάτω επιλογές:

  • επέκταση fs
  • ορίστε το όνομα κεντρικού υπολογιστή
  • ορίστε τον κωδικό πρόσβασης
  • ορίστε το διαχωρισμό μνήμης στα 16MB για τη GPU
  • overclock της CPU στα 800MHz
  • ενεργοποιήστε το ssh

Σε κάθε κάρτα εγκατέστησα τον Apache και κάποιες βιβλιοθήκες που απαιτούνται από το CMS, το libxml2 και το python-libxml2. Χρησιμοποίησα αυτήν την εντολή για να ενεργοποιήσω την επανεγγραφή mod, η οποία απαιτείται επίσης από το CMS μου:

$ sudo a2enmod επανεγγραφή

Τέλος, αντέγραψα μερικά σενάρια σε κάθε κάρτα SD που επιτρέπουν σε κάθε Pi να συγχρονίζει το περιεχόμενό του με το Pi ανάπτυξης. Σε ένα μεγαλύτερο σύμπλεγμα θα άξιζε να δημιουργήσετε μια εικόνα κάρτας SD με όλες αυτές τις τροποποιήσεις να γίνουν εκ των προτέρων.

Κατασκευή εξισορροπητή φορτίου

Το πρόγραμμα εξισορρόπησης φορτίου πρέπει να έχει δύο διεπαφές δικτύου, μία για τη λήψη αιτημάτων από έναν δρομολογητή και μία άλλη διεπαφή δικτύου για την προώθηση αιτημάτων στο σύμπλεγμα διακομιστών. Οι κόμβοι στο σύμπλεγμα βρίσκονται σε διαφορετικό υποδίκτυο από το υπόλοιπο δίκτυο, επομένως η διεύθυνση IP της δεύτερης διεπαφής του εξισορροπητή φορτίου πρέπει να βρίσκεται στο ίδιο υποδίκτυο με το υπόλοιπο σύμπλεγμα. Η πρώτη διεπαφή του εξισορροπητή φορτίου έχει διεύθυνση IP 192.168.0.3 ενώ η διεύθυνση IP της δεύτερης διεπαφής είναι 192.168.1.1. Όλες οι πίτες στο σύμπλεγμα έχουν διευθύνσεις IP στο υποδίκτυο 192.168.1.xxx.

Κατασκεύασα τη συσκευή εξισορρόπησης φορτίου χρησιμοποιώντας έναν παλιό υπολογιστή με 512 MB μνήμης RAM και CPU 2,7 GHz x86. Πρόσθεσα μια δεύτερη κάρτα PCI ethernet και εγκατέστησα το Lubuntu, μια ελαφριά έκδοση του Ubuntu. Επρόκειτο να εγκαταστήσω το Ubuntu, αλλά αυτός ο υπολογιστής είναι αρκετά παλιός, οπότε το Lubuntu είναι πιθανώς καλύτερη επιλογή. Χρησιμοποίησα έναν υπολογιστή επειδή δεν ήμουν σίγουρος αν ένα μόνο Pi θα ήταν αρκετά ισχυρό για να λειτουργήσει ως εξισορροπητής φορτίου και ένα Pi έχει μόνο μία σύνδεση ethernet. Θέλω να βελτιωθούν και οι δύο συνδέσεις δικτύου του εξισορροπητή φορτίου απόδοση και σταθερότητα.

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

Ρύθμιση του λογισμικού εξισορρόπησης φορτίου

Υπάρχουν πολλές διαφορετικές εφαρμογές λογισμικού εξισορρόπησης φορτίου. Χρησιμοποίησα τη μονάδα load balancer του Apache επειδή είναι εύκολο να ρυθμιστεί. Πρώτα βεβαιώθηκα ότι το λειτουργικό σύστημα του υπολογιστή μου ήταν ενημερωμένο:

ενημέρωση sudo apt-get
αναβάθμιση sudo apt-get

Μετά εγκατέστησα το Apache:

sudo apt-get install apache2

Αυτές οι μονάδες Apache πρέπει να είναι ενεργοποιημένες:

proxy sudo a2enmod
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer

Το επόμενο βήμα είναι να επεξεργαστείτε το /etc/apache2/sites-available/default προκειμένου να διαμορφώσετε το load balancer. Η μονάδα διακομιστή μεσολάβησης απαιτείται για την προώθηση HTTP, αλλά είναι καλύτερο να μην επιτρέψετε στον διακομιστή σας να συμπεριφέρεται ως διακομιστής μεσολάβησης. Οι ανεπιθύμητοι και οι χάκερ συχνά χρησιμοποιούν διακομιστές μεσολάβησης άλλων ατόμων για να κρύψουν τη διεύθυνση IP τους, επομένως είναι σημαντικό να απενεργοποιήσετε αυτήν τη λειτουργία χαρακτηριστικό προσθέτοντας αυτήν τη γραμμή:

Το ProxyRequests είναι απενεργοποιημένο

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

Διεπαφή διαχειριστή ισορροπίας

Η μονάδα εξισορρόπησης έχει μια διεπαφή ιστού που καθιστά δυνατή την παρακολούθηση της κατάστασης των διακομιστών υποστήριξης και τη διαμόρφωση των ρυθμίσεών τους. Μπορείτε να ενεργοποιήσετε τη διεπαφή ιστού προσθέτοντας αυτόν τον κώδικα στο /etc/apache2/sites-available/default:

Είναι επίσης απαραίτητο να δώσουμε εντολή στον Apache να χειρίζεται αιτήματα στη σελίδα /balancer-manager τοπικά αντί να προωθούνται αυτά τα αιτήματα σε έναν διακομιστή εργαζόμενο. Όλα τα άλλα αιτήματα προωθούνται στο σύμπλεγμα που ορίζεται παραπάνω.

ProxyPass /balancer-manager !

ProxyPass/balancer://rpicluster/

Μόλις αποθηκευτούν αυτές οι αλλαγές, ο Apache θα πρέπει να επανεκκινηθεί με αυτήν την εντολή:

$ sudo /etc/init.d/apache2 επανεκκίνηση

όταν ανοίγω ένα πρόγραμμα περιήγησης και πηγαίνω στο http://192.168.0.3, βλέπω την πρώτη σελίδα του ιστότοπού μου. Αν πάω στο http://192.168.0.3/balancer-manager, βλέπω αυτή τη σελίδα στην εικόνα στα δεξιά.

Το τελευταίο βήμα για τη σύνδεση του συμπλέγματος είναι η προσαρμογή των ρυθμίσεων προώθησης θυρών στο δρομολογητή μου. Απλώς έπρεπε να ορίσω έναν κανόνα για την προώθηση πακέτων HTTP στη διεύθυνση http://192.168.0.3.

Εδώ είναι το πλήρες /etc/apache2/sites-available/default για το load balancer: ServerAdmin webmaster@localhost DocumentRoot /var/www Επιλογές FollowSymLinks Allow Override AllΕπιλογές Ευρετήρια FollowSymLinks Πολλαπλές προβολές AllowOverride All Order επιτρέπονται, αρνούνται να επιτρέπεται από όλους ScriptAlias ​​/cgi-bin/ /usr/lib/cgi-bin/ AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch AddHandler cgi-script .py Παραγγελία να επιτρέπεται, άρνηση Να επιτρέπεται από όλα Το ProxyRequests είναι απενεργοποιημένο BalancerMember http://192.168.1.2:80 BalancerMember http://192.168.1.3:80 BalancerMember http://192.168.1.4:80 BalancerMember http://192.168.1.5:80 AllowOverride None allow from all Proxyden lbmethod=από αιτήματα ProxyPass /balancer-manager !

ProxyPass / balancer://rpicluster/ ErrorLog $(APACHE_LOG_DIR)/error.log # Οι πιθανές τιμές περιλαμβάνουν: εντοπισμός σφαλμάτων, πληροφορίες, ειδοποίηση, προειδοποίηση, σφάλμα, crit, # ειδοποίηση, εμφάνιση.

Προειδοποίηση LogLevel CustomLog $(APACHE_LOG_DIR)/access.log συνδυαστικά Η μονάδα BitScope Cluster περιέχει 150 μικροϋπολογιστές Raspberry Pi με ενσωματωμένους διακόπτες δικτύου. Φωτογραφία: BitScopeΟι προγραμματιστές και οι επιστήμονες δεν έχουν πάντα εύκολη πρόσβαση σε έναν πραγματικό υπερυπολογιστή υψηλής απόδοσης για να δοκιμάσουν τα προγράμματά τους. Επιπλέον, οι υπερυπολογιστές είναι συνήθως ήδη απασχολημένοι 24 ώρες την ημέρα με άλλο λογισμικό. Είναι δύσκολο να βρεις το παράθυρο. Πρέπει να γράψετε μια αίτηση εκ των προτέρων και να μπείτε στη σειρά. Πως

νέο πρόγραμμα

θα λειτουργήσει σε πραγματικό περιβάλλον πολυεπεξεργαστή, πόσο καλά είναι η εργασία παραλληλισμένη;



Για να βοηθήσει τους προγραμματιστές, που ανατέθηκε από το Τμήμα Υπολογιστών Υψηλής Απόδοσης του Εθνικού Εργαστηρίου του Λος Άλαμος, η αυστραλιανή εταιρεία BitScope έχει αναπτύξει «δοκιμαστικές» ενότητες υπολογιστών BitScope Cluster από 150 μίνι υπολογιστές Raspberry Pi που μπορούν να συνδυαστούν σε ένα σύμπλεγμα και να δοκιμάσουν τα προγράμματά τους σε τους.

Το Εθνικό Εργαστήριο του Λος Άλαμος λειτουργεί έναν από τους δέκα πιο ισχυρούς υπερυπολογιστές στον κόσμο - τον Trinity.

Υπερυπολογιστής Trinity στο Εθνικό Εργαστήριο του Λος Άλαμος

Η ηγεσία του εργαστηρίου ξεκίνησε να βρει έναν τρόπο να δώσει στους προγραμματιστές πρόσβαση σε παράλληλους υπολογιστές υψηλής απόδοσης χωρίς να έχουν πραγματικά πρόσβαση στον ίδιο τον υπερυπολογιστή, ώστε να μπορούν να δοκιμάσουν τα προγράμματά τους.



«Οι μονάδες Raspberry Pi επιτρέπουν στους προγραμματιστές να καταλάβουν πώς να γράφουν τέτοιο λογισμικό και να το κάνουν να λειτουργεί αξιόπιστα, χωρίς να χρειάζεται να έχουν πάγκο δοκιμών ίδιου μεγέθους που κοστίζει ένα τέταρτο του δισεκατομμυρίου δολαρίων και καταναλώνει 25 μεγαβάτ ηλεκτρικής ενέργειας», λέει ο Gary Glider του Εθνικό Εργαστήριο Alamosa.

Κάθε ενότητα έχει 144 ενεργούς κόμβους, έξι εφεδρικούς κόμβους και έναν κόμβο ελέγχου. Η μονάδα έχει μορφή 6U όταν εγκαθίσταται σε rack διακομιστή κέντρου δεδομένων. Όπως αναφέρεται στον επίσημο ιστότοπο, ένα σύμπλεγμα 1000 κόμβων καταλαμβάνει ένα rack 42U θα κοστίζει περίπου $120-150 ανά κόμβο. Αυτή είναι μια αρκετά μεγάλη σήμανση σε σύγκριση με την τυπική τιμή του Raspberry Pi, η οποία είναι γνωστό ότι είναι $35.

Κάθε ενότητα του BitScope Cluster αποτελείται από δομικά στοιχεία που ονομάζονται «Πακέτα συμπλέγματος». Η εγκατάσταση μιας μονάδας σε ράφια πραγματοποιείται ακριβώς με τη μορφή αυτών των "πακέτων".



Πακέτο συμπλέγματος

Ένας κόμβος (μικροϋπολογιστής Raspberry Pi 3) περιέχει έναν τετραπύρηνο επεξεργαστή ARMv8 64 bit στα 1,2 MHz. Έτσι, αν φανταστούμε ένα σύμπλεγμα, για παράδειγμα, πέντε μονάδων, τότε θα υπάρχουν 720 ενεργοί κόμβοι, δηλαδή 2880 ενεργοί πυρήνες επεξεργαστή. Αρκεί να ελέγξουμε πόσο καλά το πρόγραμμα είναι παραλληλισμένο.



Έτσι μοιάζει από κοντά μια σειρά μίνι υπολογιστών στο Cluster Pack.

Αν και μια τέτοια λύση είναι πράγματι πολύ φθηνότερη από έναν υπερυπολογιστή, δεν μπορεί να ονομαστεί προϋπολογισμός. Μόνο ένας μεγάλος ερευνητικός οργανισμός μπορεί να αντέξει οικονομικά ένα mini-cluster για $100 χιλιάδες ή $150 χιλιάδες μόνο για προγράμματα δοκιμών. Στην πραγματικότητα, τέτοιες ενότητες είναι πιθανώς σχεδιασμένες για αυτούς τους πλούσιους ερευνητικούς οργανισμούς - ιδιοκτήτες υπερυπολογιστών. Ωστόσο, οι δημιουργοί του μίνι υπερυπολογιστή λένε ότι είναι «η πιο οικονομική, επεκτάσιμη λύση στον κόσμο: φθηνή στην κατασκευή, λειτουργία και υποστήριξη».

Οι μονάδες BitScope Cluster παρέχουν επίσης σημαντική εξοικονόμηση ενέργειας στην κατανάλωση. Μπορείτε να υπολογίσετε την κατανάλωση ενέργειας καθενός από αυτούς μόνοι σας, μετρώντας 5 W ανά κόμβο. Αν υποθέσουμε ότι οι εφεδρικοί κόμβοι έχουν ελάχιστη κατανάλωση ενέργειας, τότε οι μονάδες παραμένουν με 144 ενεργούς κόμβους και έναν κόμβο ελέγχου. Σύνολο 145×5=725 W.

Το BitScope σκοπεύει να κυκλοφορήσει αυτές τις μονάδες προς δωρεάν πώληση κάποια στιγμή στις αρχές του 2018.

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

Σχετικά άρθρα

2024 liveps.ru. Εργασίες για το σπίτι και έτοιμα προβλήματα στη χημεία και τη βιολογία.