Tecnologies aplicades a les ruïnes de la febre blockchain o els beneficis pràctics de la distribució de recursos

En els darrers anys, els canals de notícies s'han inundat de missatges sobre un nou tipus de xarxes de computació distribuïdes que apareixen literalment del no-res, resolent (o millor dit, intentant resoldre) una gran varietat de problemes: fer una ciutat intel·ligent, salvar el món dels drets d'autor. infractors o viceversa, transferint secretament informació o recursos, fugint de -sota el control de l'estat en una àrea o una altra. Independentment del camp, tots tenen una sèrie de característiques comunes a causa del fet que el combustible per al seu creixement van ser els algorismes i les tècniques que van arribar al públic durant el recent auge de les criptomonedes i tecnologies relacionades. Probablement cada tercer article sobre recursos especialitzats en aquell moment tenia la paraula "cadena de blocs" al títol: la discussió de noves solucions de programari i models econòmics es va convertir en la tendència dominant durant algun temps, en el context de la qual es trobaven altres àrees d'aplicació dels sistemes informàtics distribuïts. relegat a un segon pla.

Al mateix temps, visionaris i professionals van veure l'essència principal del fenomen: la informàtica distribuïda massiva, associada a la construcció de xarxes a partir d'un gran nombre de participants dispars i heterogenis, ha arribat a un nou nivell de desenvolupament. N'hi ha prou amb llençar els temes de bombo del cap i mirar el tema des de l'altra banda: totes aquestes xarxes, reunides a partir d'enormes piscines, que consisteixen en milers de participants heterogenis aïllats, no van aparèixer per si soles. Els entusiastes del moviment criptogràfic van ser capaços de resoldre problemes complexos de sincronització de dades i distribució de recursos i tasques d'una manera nova, cosa que va permetre reunir una massa similar d'equips i crear un nou ecosistema dissenyat per resoldre un problema molt enfocat.

Per descomptat, això no va passar pels equips i comunitats implicats en el desenvolupament de la informàtica distribuïda gratuïta, i els nous projectes no es van fer esperar.
No obstant això, malgrat l'augment significatiu del volum d'informació disponible sobre desenvolupaments en l'àmbit de la construcció de xarxes i el treball amb equips, els creadors de sistemes prometedors hauran de resoldre problemes greus.

El primer d'ells, per estrany que sembli, és el problema d'escollir una direcció.

La direcció pot ser correcta, o pot conduir a un carreró sense sortida; no hi ha escapatòria; els subministraments centralitzats de clarividents a la comunitat informàtica encara són tard. Però l'elecció s'ha de fer per no caure en el parany tradicional de l'equip agafant un àmbit massa ampli i intentant crear un altre projecte de computació general distribuïda no especialitzada des del principi. Sembla que l'abast del treball no fa tanta por, en la seva major part només cal aplicar els desenvolupaments existents: combinar nodes en una xarxa, adaptar algorismes per determinar topologies, intercanviar dades i controlar-ne la consistència, introduir mètodes per classificar nodes i trobar-los. consens i, per descomptat, només creeu el vostre propi llenguatge de consulta i tot el llenguatge i l'entorn informàtic. La idea d'un mecanisme universal és molt temptadora i apareix constantment en una àrea o una altra, però el resultat final segueix sent una de les tres coses: la solució creada o bé resulta ser un prototip limitat amb un munt de "ToDos" suspesos. " a l'endarreriment, o es converteix en un monstre inutilitzable disposat a arrossegar qualsevol persona que toqui el fetid "pantà de Turing", o simplement mor sense perill pel fet que el cigne, el cranc de riu i el lluç, que estaven tirant el projecte en una direcció incomprensible, simplement s'han sobreesforçat.

No repetim errors estúpids i triem una direcció que tingui una gamma clara de tasques i s'adapti bé al model de computació distribuïda. Podeu entendre les persones que intenten fer-ho tot alhora; per descomptat, hi ha molt per triar. I moltes coses semblen molt interessants tant des del punt de vista de l'R+D i del desenvolupament, com des del punt de vista econòmic. Mitjançant una xarxa distribuïda podeu:

  • Entrenar xarxes neuronals
  • Processa els fluxos de senyal
  • Calcula l'estructura de proteïnes
  • Renderitza escenes en XNUMXD
  • Simular hidrodinàmica
  • Prova estratègies de negociació per a borses

Per no deixar-nos portar amb la compilació d'una llista de coses interessants que estiguin ben paral·lelisades, escollirem la representació distribuïda com a altre tema.

La representació distribuïda en si no és, per descomptat, res nou. Els kits d'eines de renderització existents han suportat durant molt de temps la distribució de càrrega entre diferents màquines; sense això, viure al segle XXI seria bastant trist. No obstant això, no hauríeu de pensar que el tema s'ha tractat a tot arreu i que no hi ha res a fer; considerarem un problema urgent a part: crear una eina per crear una xarxa de renderització.

La nostra xarxa de renderització és una combinació de nodes que necessiten realitzar tasques de renderització amb nodes que tenen recursos informàtics gratuïts per processar la representació. Els propietaris de recursos connectaran les seves estacions a la xarxa de renderització per rebre i executar treballs de renderització mitjançant un dels motors de renderització compatibles amb la xarxa. En aquest cas, els proveïdors de tasques treballaran amb la xarxa com si es tractés d'un núvol, distribuint recursos de manera independent, supervisant la correcció de l'execució, gestionant riscos i altres problemes.

Així, ens plantejarem la creació d'un marc que admeti la integració amb un conjunt de motors de renderització populars i contingui components que proporcionin eines per organitzar una xarxa de nodes heterogènies i gestionar el flux de tasques.

El model econòmic de l'existència d'aquesta xarxa no té una importància fonamental, de manera que prendrem com a esquema inicial un esquema similar al que s'utilitza en els càlculs a les xarxes de criptomoneda: els consumidors del recurs enviaran fitxes als proveïdors que realitzen el treball de renderització. És molt més interessant entendre quines propietats ha de tenir un framework, per a això considerarem l'escenari principal d'interacció entre els participants de la xarxa.

Hi ha tres vessants d'interacció a la xarxa: proveïdor de recursos, proveïdor de tasques i operador de xarxa (també conegut com a centre de control, xarxa, etc. al text).

L'operador de xarxa proporciona al proveïdor de recursos una aplicació client o una imatge del sistema operatiu amb un conjunt de programari desplegat, que instal·larà a la màquina els recursos de la qual vol proporcionar, i un compte personal accessible a través de la interfície web, que li permetrà establir paràmetres d'accés al recurs i gestionar de forma remota el seu paisatge de servidors: controlar els paràmetres del maquinari, realitzar la configuració remota, reiniciar.

Quan es connecta un nou node, el sistema de gestió de la xarxa analitza l'equip i els paràmetres d'accés especificats, el classifica, assignant una qualificació determinada i el col·loca al registre de recursos. En el futur, per gestionar el risc, s'analitzaran els paràmetres d'activitat del node i s'ajustarà la qualificació del node per garantir l'estabilitat de la xarxa. Ningú estarà satisfet si la seva escena s'envia a renderitzar-se en targetes potents que sovint es congelen a causa del sobreescalfament?

Un usuari que necessita renderitzar una escena pot anar de dues maneres: carregar l'escena a un dipòsit de xarxa mitjançant la interfície web o utilitzar un connector per connectar el seu paquet de modelatge o el renderitzador instal·lat a la xarxa. En aquest cas, s'inicia un contracte intel·ligent entre l'usuari i la xarxa, la condició estàndard per a la realització del qual és la generació del resultat del càlcul de l'escena per part de la xarxa. L'usuari pot supervisar el procés de realització d'una tasca i gestionar els seus paràmetres a través de la interfície web del seu compte personal.

La tasca s'envia al servidor, on s'analitzen el volum de l'escena i el nombre de recursos sol·licitats per l'iniciador de la tasca, després de la qual cosa el volum total es descompon en parts adaptades per al càlcul sobre el nombre i el tipus de recursos assignats per la xarxa. . La idea general és que la visualització es pot dividir en moltes tasques petites. Els motors s'aprofiten d'això distribuint aquestes tasques entre diversos proveïdors de recursos. La manera més senzilla és representar petites parts de l'escena anomenades segments. Quan cada segment està preparat, la tasca local es considera completada i el recurs passa a la següent tasca pendent.

Per tant, no hi ha cap diferència com a tal per al renderitzador si els càlculs es realitzen en una única màquina o en una graella de moltes estacions de càlcul individuals. La representació distribuïda simplement afegeix més nuclis al conjunt de recursos utilitzats per a una tasca. A través de la xarxa, rep totes les dades necessàries per representar un segment, el calcula, envia aquest segment de nou i passa a la següent tasca. Abans d'entrar a l'agrupació general de la xarxa, cada segment rep un conjunt de metainformació que permet als nodes d'execució seleccionar les tasques informàtiques més adequades per a ells.

Els problemes de segmentació i distribució dels càlculs s'han de resoldre no només des del punt de vista de l'optimització del temps d'execució, sinó també des del punt de vista de l'ús òptim dels recursos i l'estalvi energètic, ja que d'això depèn l'eficiència econòmica de la xarxa. . Si la solució no té èxit, seria més aconsellable instal·lar un miner al node o apagar-lo perquè no faci soroll i no malgasti electricitat.

Tanmateix, tornem al procés. Quan es rep una tasca, també es forma un contracte intel·ligent entre el grup i el node, que s'executa quan el resultat de la tasca es calcula correctament. En funció dels resultats del compliment del contracte, el node pot rebre una recompensa d'una forma o una altra.

El centre de control controla el procés d'execució de la tasca, recopila els resultats del càlcul, envia els incorrectes per tornar a processar i classificar la cua, supervisa el termini estàndard per a la realització de la tasca (perquè no passi que l'últim segment no sigui ocupat per qualsevol node).

Els resultats dels càlculs passen per l'etapa de composició, després de la qual l'usuari rep els resultats de la representació i la xarxa pot rebre una recompensa.

Així, sorgeix la composició funcional d'un marc paisatgístic dissenyat per construir sistemes de renderització distribuïts:

  1. Comptes d'usuari personals amb accés web
  2. Kit de programari per a la instal·lació en nodes
  3. Per sistema de control:
    • Subsistema de control d'accés
    • Subsistema de descomposició de tasques de renderització
    • Subsistema de distribució de tasques
    • Subsistema de composició
    • Subsistema de gestió del paisatge del servidor i de la topologia de la xarxa
    • Subsistema de registre i auditoria
    • Subsistema expert en aprenentatge
    • Rest API o una altra interfície per a desenvolupadors externs

Què penses? Quines preguntes planteja el tema i quines respostes t'interessen?

Font: www.habr.com

Afegeix comentari