Uporabljene tehnologije na ruševinah blockchain mrzlice ali praktične koristi distribucije virov

V zadnjih letih so bili viri novic preplavljeni s sporočili o novi vrsti porazdeljenih računalniških omrežij, ki se pojavljajo dobesedno od nikoder in rešujejo (ali bolje rečeno, poskušajo rešiti) najrazličnejše probleme – naredijo mesto pametno, rešijo svet pred avtorskimi pravicami. kršiteljev ali obratno, tajno prenašajo informacije ali vire, uhajajo izpod državnega nadzora na enem ali drugem področju. Ne glede na področje imajo vse številne skupne značilnosti, saj so bili gorivo za njihovo rast algoritmi in tehnike, ki so prišle v javnost med nedavnim razmahom kriptovalut in sorodnih tehnologij. Verjetno je imel vsak tretji članek o specializiranih virih v tistem času v naslovu besedo "blockchain" - razprava o novih programskih rešitvah in ekonomskih modelih je nekaj časa postala prevladujoč trend, v ozadju katerega so bila druga področja uporabe porazdeljenih računalniških sistemov. potisnjen v ozadje.

Hkrati so vizionarji in strokovnjaki videli glavno bistvo pojava: masivno porazdeljeno računalništvo, povezano z gradnjo omrežij velikega števila različnih in heterogenih udeležencev, je doseglo novo raven razvoja. Dovolj je, da vržete hype teme iz glave in pogledate na temo z druge strani: vsa ta omrežja, sestavljena iz ogromnih bazenov, ki jih sestavlja na tisoče izoliranih heterogenih udeležencev, se niso pojavila sama od sebe. Navdušenci nad kripto gibanjem so lahko kompleksne probleme sinhronizacije podatkov ter distribucije virov in nalog rešili na nov način, kar je omogočilo sestavljanje podobne množice opreme in ustvarjanje novega ekosistema, namenjenega reševanju enega ozko usmerjenega problema.

Seveda to ni šlo mimo ekip in skupnosti, ki se ukvarjajo z razvojem brezplačnega porazdeljenega računalništva, in ni bilo treba čakati na nove projekte.
Kljub znatnemu povečanju obsega razpoložljivih informacij o razvoju na področju gradnje omrežij in dela z opremo bodo morali ustvarjalci obetavnih sistemov rešiti resne težave.

Prvi med njimi, ne glede na to, kako čudno se sliši, je problem izbire smeri.

Smer je lahko pravilna, lahko pa vodi v slepo ulico - iz tega ni izhoda, centralizirana dobava jasnovidcev IT skupnosti še vedno zamuja. Vendar se je treba odločiti tako, da se ne ujamejo v tradicionalno past ekipe, ki vzame preširoko področje in od samega začetka poskuša ustvariti še en nespecializiran splošni porazdeljeni računalniški projekt. Zdi se, da obseg dela ni tako strašljiv, večinoma moramo le uporabiti obstoječi razvoj: združiti vozlišča v omrežje, prilagoditi algoritme za določanje topologij, izmenjavo podatkov in spremljanje njihove konsistentnosti, uvesti metode za rangiranje vozlišč in iskanje soglasja in seveda samo ustvarite svoj jezik poizvedb ter celotno jezikovno in računalniško okolje. Zamisel o univerzalnem mehanizmu je zelo mamljiva in se nenehno pojavlja na enem ali drugem področju, vendar je končni rezultat še vedno ena od treh stvari: ustvarjena rešitev se izkaže kot dejansko omejen prototip s kupom visečih " ToDos« v zaostanku, ali pa postane neuporabna pošast, ki je pripravljena odvleči vsakogar, ki se dotakne smrdljivega »turingovega močvirja«, ali pa preprosto varno umre zaradi dejstva, da so labod, rak in ščuka, ki so projekt vlekli v nerazumljivo smer. , so se enostavno prenapeli.

Ne ponavljajmo neumnih napak in izberimo smer, ki ima jasen nabor nalog in je zelo prilagojena modelu porazdeljenega računalništva. Lahko razumete ljudi, ki poskušajo narediti vse naenkrat - seveda je izbira med veliko. In veliko stvari je videti izjemno zanimivih tako z vidika R&R in razvoja kot z vidika ekonomije. Z uporabo porazdeljenega omrežja lahko:

  • Usposabljanje nevronskih mrež
  • Procesni signalni tokovi
  • Izračunajte strukturo beljakovin
  • Upodabljanje XNUMXD prizorov
  • Simulirajte hidrodinamiko
  • Preizkusite trgovalne strategije za borze

Da se ne bomo zapeljali s sestavljanjem seznama zanimivih stvari, ki so dobro vzporedne, bomo za nadaljnjo temo izbrali porazdeljeno upodabljanje.

Samo porazdeljeno upodabljanje seveda ni nič novega. Obstoječi kompleti orodij za upodabljanje že dolgo podpirajo porazdelitev obremenitve med različnimi stroji; brez tega bi bilo življenje v enaindvajsetem stoletju zelo žalostno. Vendar ne bi smeli misliti, da je bila tema pokrita daleč naokoli in tam ni kaj storiti - obravnavali bomo ločen pereč problem: ustvarjanje orodja za ustvarjanje omrežja upodabljanja.

Naše omrežje upodabljanja je kombinacija vozlišč, ki morajo izvajati naloge upodabljanja z vozlišči, ki imajo proste računalniške vire za obdelavo upodabljanja. Lastniki virov bodo povezali svoje postaje z omrežjem za upodabljanje, da bodo prejemali in izvajali opravila za upodabljanje z enim od mehanizmov za upodabljanje, ki jih podpira omrežje. V tem primeru bodo ponudniki opravil delali z omrežjem, kot da bi šlo za oblak, neodvisno razdeljevali vire, spremljali pravilnost izvajanja, obvladovali tveganja in druge težave.

Zato bomo razmislili o ustvarjanju ogrodja, ki bi moralo podpirati integracijo z naborom priljubljenih mehanizmov upodabljanja in vsebovati komponente, ki zagotavljajo orodja za organizacijo omrežja heterogenih vozlišč in upravljanje toka nalog.

Ekonomski model obstoja takšnega omrežja ni bistvenega pomena, zato bomo kot prvotno shemo vzeli shemo, podobno tisti, ki se uporablja pri izračunih v omrežjih kriptovalut - potrošniki vira bodo pošiljali žetone dobaviteljem, ki opravljajo delo upodabljanja. Veliko bolj zanimivo je razumeti, katere lastnosti bi moral imeti okvir, za kar bomo upoštevali glavni scenarij interakcije med udeleženci omrežja.

Obstajajo tri strani interakcije v omrežju: ponudnik virov, ponudnik opravil in operater omrežja (v besedilu imenovan nadzorni center, omrežje itd.).

Omrežni operater ponudniku virov zagotovi odjemalsko aplikacijo ali sliko operacijskega sistema z nameščenim naborom programske opreme, ki jo bo namestil na stroj, katerega vire želi zagotoviti, in osebni račun, dostopen prek spletnega vmesnika, ki mu omogoča, da nastavi parametre dostopa do vira in na daljavo upravlja njegovo strežniško pokrajino: nadzira parametre strojne opreme, izvede oddaljeno konfiguracijo, znova zažene.

Ko je priključeno novo vozlišče, sistem za upravljanje omrežja analizira opremo in podane parametre dostopa, ga rangira, dodeli določeno oceno in ga postavi v register virov. V prihodnosti bodo za obvladovanje tveganja analizirani parametri dejavnosti vozlišča in ocena vozlišča prilagojena, da se zagotovi stabilnost omrežja. Nihče ne bo zadovoljen, če se njegova scena pošlje upodabljati na zmogljive kartice, ki zaradi pregrevanja pogosto zamrznejo?

Uporabnik, ki mora upodobiti sceno, lahko gre na dva načina: naloži sceno v omrežni repozitorij prek spletnega vmesnika ali uporabi vtičnik za povezavo svojega paketa za modeliranje ali nameščenega upodabljalnika v omrežje. V tem primeru se med uporabnikom in omrežjem sproži pametna pogodba, katere standardni pogoj za dokončanje je generiranje rezultata izračuna scene s strani omrežja. Uporabnik lahko spremlja postopek dokončanja naloge in upravlja njene parametre prek spletnega vmesnika svojega osebnega računa.

Naloga se pošlje na strežnik, kjer se analizira obseg prizora in število virov, ki jih zahteva iniciator opravila, nakar se skupni volumen razdeli na dele, prilagojene za izračun glede na število in vrsto virov, ki jih dodeli omrežje. . Splošna ideja je, da je mogoče vizualizacijo razdeliti na številne majhne naloge. Motorji to izkoristijo tako, da te naloge porazdelijo med več ponudnikov virov. Najenostavnejši način je upodabljanje majhnih delov scene, imenovanih segmenti. Ko je vsak segment pripravljen, se lokalna naloga šteje za dokončano in vir se premakne na naslednjo odprto nalogo.

Tako za upodabljalnik ni pomembno, ali se izračuni izvajajo na enem samem stroju ali na omrežju številnih posameznih računalniških postaj. Porazdeljeno upodabljanje preprosto doda več jeder v skupino virov, ki se uporabljajo za nalogo. Prek omrežja prejme vse podatke, potrebne za upodabljanje segmenta, jih izračuna, ta segment pošlje nazaj in nadaljuje z naslednjo nalogo. Preden vstopi v splošno omrežno skupino, vsak segment prejme nabor metainformacij, ki izvajalnim vozliščem omogoča, da izberejo najprimernejše računalniške naloge zanje.

Težave segmentacije in porazdelitve izračunov je treba rešiti ne le z vidika optimizacije časa izvajanja, temveč tudi z vidika optimalne rabe virov in varčevanja z energijo, saj je od tega odvisna ekonomska učinkovitost omrežja. . Če je rešitev neuspešna, bi bilo bolj priporočljivo na vozlišče namestiti rudar ali ga izklopiti, da ne povzroča hrupa in ne troši električne energije.

Vendar se vrnimo k procesu. Ko je naloga prejeta, se med bazenom in vozliščem oblikuje tudi pametna pogodba, ki se izvrši, ko je rezultat naloge pravilno izračunan. Na podlagi rezultatov izpolnjevanja pogodbe lahko vozlišče prejme nagrado v takšni ali drugačni obliki.

Nadzorni center nadzira proces izvajanja nalog, zbiranje rezultatov izračuna, pošiljanje napačnih v ponovno obdelavo in rangiranje v čakalno vrsto, spremljanje standardnega roka za izvedbo naloge (da se ne zgodi, da zadnji segment ni zavzet katero koli vozlišče).

Rezultati izračunov gredo skozi fazo sestavljanja, po kateri uporabnik prejme rezultate upodabljanja, omrežje pa lahko prejme nagrado.

Tako se pojavi funkcionalna sestava krajinskega ogrodja, zasnovanega za gradnjo porazdeljenih sistemov upodabljanja:

  1. Osebni uporabniški računi s spletnim dostopom
  2. Komplet programske opreme za namestitev na vozlišča
  3. Po nadzornem sistemu:
    • Podsistem za nadzor dostopa
    • Podsistem dekompozicije opravil upodabljanja
    • Podsistem za razdelitev nalog
    • Podsistem za sestavljanje
    • Strežniška pokrajina in podsistem za upravljanje topologije omrežja
    • Podsistem beleženja in revizije
    • Učni ekspertni podsistem
    • Rest API ali drug vmesnik za zunanje razvijalce

Kaj misliš? Kakšna vprašanja odpira tema in kakšni odgovori vas zanimajo?

Vir: www.habr.com

Dodaj komentar