Εφαρμοσμένες τεχνολογίες στα ερείπια του πυρετού blockchain ή τα πρακτικά οφέλη της διανομής πόρων

Τα τελευταία χρόνια, οι ειδήσεις έχουν πλημμυρίσει με μηνύματα σχετικά με έναν νέο τύπο κατανεμημένων δικτύων υπολογιστών που εμφανίζονται κυριολεκτικά από το πουθενά, επιλύοντας (ή μάλλον, προσπαθώντας να λύσουν) μια μεγάλη ποικιλία προβλημάτων - κάνοντας μια πόλη έξυπνη, σώζοντας τον κόσμο από τα πνευματικά δικαιώματα παραβάτες ή το αντίστροφο, μεταφέροντας κρυφά πληροφορίες ή πόρους, διαφεύγοντας από τον έλεγχο του κράτους σε έναν ή τον άλλο τομέα. Ανεξάρτητα από το πεδίο, όλα έχουν μια σειρά κοινών χαρακτηριστικών λόγω του γεγονότος ότι το καύσιμο για την ανάπτυξή τους ήταν οι αλγόριθμοι και οι τεχνικές που ήρθαν στο κοινό κατά την πρόσφατη άνθηση στα κρυπτονομίσματα και τις σχετικές τεχνολογίες. Πιθανώς κάθε τρίτο άρθρο για εξειδικευμένους πόρους εκείνη την εποχή είχε τη λέξη «blockchain» στον τίτλο - η συζήτηση για νέες λύσεις λογισμικού και οικονομικών μοντέλων έγινε η κυρίαρχη τάση για αρκετό καιρό, στο πλαίσιο της οποίας άλλοι τομείς εφαρμογής κατανεμημένων υπολογιστικών συστημάτων ήταν υποβιβάστηκε στο παρασκήνιο.

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

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

Το πρώτο από αυτά, όσο περίεργο κι αν ακούγεται, είναι το πρόβλημα της επιλογής σκηνοθεσίας.

Η κατεύθυνση μπορεί να είναι σωστή ή μπορεί να οδηγήσει σε αδιέξοδο - δεν υπάρχει διαφυγή από αυτό· οι κεντρικές προμήθειες διορατικών στην κοινότητα της πληροφορικής είναι ακόμη αργά. Αλλά η επιλογή πρέπει να γίνει έτσι ώστε να μην πέσουμε στην παραδοσιακή παγίδα της ομάδας που παίρνει πολύ ευρεία περιοχή και προσπαθεί να δημιουργήσει ένα άλλο μη εξειδικευμένο γενικό κατανεμημένο υπολογιστικό έργο από την αρχή. Φαίνεται ότι το εύρος της εργασίας δεν είναι τόσο τρομακτικό, ως επί το πλείστον χρειάζεται απλώς να εφαρμόσουμε τις υπάρχουσες εξελίξεις: να συνδυάσουμε κόμβους σε ένα δίκτυο, να προσαρμόσουμε αλγόριθμους για τον προσδιορισμό τοπολογιών, την ανταλλαγή δεδομένων και την παρακολούθηση της συνέπειάς τους, να εισαγάγουμε μεθόδους για την κατάταξη κόμβων και την εύρεση συναίνεση και, φυσικά, απλώς δημιουργήστε τη δική σας γλώσσα ερωτημάτων και ολόκληρο το περιβάλλον γλώσσας και υπολογιστών. Η ιδέα ενός καθολικού μηχανισμού είναι πολύ δελεαστική και εμφανίζεται συνεχώς σε έναν ή τον άλλο τομέα, αλλά το τελικό αποτέλεσμα εξακολουθεί να είναι ένα από τα τρία πράγματα: η λύση που δημιουργήθηκε είτε αποδεικνύεται περιορισμένο πρωτότυπο με ένα σωρό αναρτημένα «ToDos στο υστέρημα, ή γίνεται ένα άχρηστο τέρας έτοιμο να παρασύρει όποιον αγγίξει τον άθλιο «βάλτο Τούρινγκ», ή απλώς πεθαίνει με ασφάλεια από το γεγονός ότι ο κύκνος, οι καραβίδες και οι λούτσοι, που τραβούσαν το έργο σε μια ακατανόητη κατεύθυνση, απλά καταπονήθηκαν.

Ας μην επαναλάβουμε ανόητα λάθη και ας διαλέξουμε μια κατεύθυνση που έχει ένα σαφές εύρος εργασιών και ταιριάζει καλά στο μοντέλο κατανεμημένων υπολογιστών. Μπορείτε να κατανοήσετε τους ανθρώπους που προσπαθούν να κάνουν τα πάντα ταυτόχρονα - φυσικά, υπάρχουν πολλά να διαλέξετε. Και πολλά πράγματα φαίνονται εξαιρετικά ενδιαφέροντα τόσο από την άποψη της Ε&Α και της ανάπτυξης, όσο και από την άποψη της οικονομίας. Χρησιμοποιώντας ένα κατανεμημένο δίκτυο μπορείτε:

  • Εκπαιδεύστε τα νευρωνικά δίκτυα
  • Ροές σημάτων διεργασίας
  • Υπολογίστε τη δομή της πρωτεΐνης
  • Απόδοση τρισδιάστατων σκηνών
  • Προσομοίωση υδροδυναμικής
  • Δοκιμάστε στρατηγικές συναλλαγών για χρηματιστήρια

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

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

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

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

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

Υπάρχουν τρεις πλευρές αλληλεπίδρασης στο δίκτυο: πάροχος πόρων, πάροχος εργασιών και χειριστής δικτύου (γνωστός και ως κέντρο ελέγχου, δίκτυο, κ.λπ. στο κείμενο).

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

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

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

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

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

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

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

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

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

Έτσι, προκύπτει η λειτουργική σύνθεση ενός πλαισίου τοπίου που έχει σχεδιαστεί για την κατασκευή κατανεμημένων συστημάτων απόδοσης:

  1. Προσωπικοί λογαριασμοί χρηστών με πρόσβαση στο διαδίκτυο
  2. Κιτ λογισμικού για εγκατάσταση σε κόμβους
  3. Με σύστημα ελέγχου:
    • Υποσύστημα ελέγχου πρόσβασης
    • Υποσύστημα αποσύνθεσης εργασίας απόδοσης
    • Υποσύστημα κατανομής εργασιών
    • Υποσύστημα σύνθεσης
    • Υποσύστημα διαχείρισης τοπίου διακομιστή και τοπολογίας δικτύου
    • Υποσύστημα καταγραφής και ελέγχου
    • Υποσύστημα Learning Expert
    • Rest API ή άλλη διεπαφή για εξωτερικούς προγραμματιστές

Τι νομίζετε; Ποια ερωτήματα εγείρει το θέμα και ποιες απαντήσεις σας ενδιαφέρουν;

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο