Primijenjene tehnologije na ruševinama blockchain groznice ili praktične prednosti distribucije resursa

Posljednjih godina izvori vijesti bili su preplavljeni porukama o novoj vrsti distribuiranih računalnih mreža koje se pojavljuju doslovno niotkuda, rješavajući (ili bolje rečeno, pokušavajući riješiti) široku lepezu problema - čineći grad pametnim, spašavajući svijet od autorskih prava prekršitelji ili obrnuto, tajno prenoseći informacije ili resurse, bježeći ispod državne kontrole u jednom ili drugom području. Bez obzira na područje, svi oni imaju niz zajedničkih značajki zbog činjenice da su gorivo za njihov rast bili algoritmi i tehnike koje su izašle u javnost tijekom nedavnog procvata kriptovaluta i povezanih tehnologija. Vjerojatno je svaki treći članak o specijaliziranim resursima u to vrijeme imao riječ "blockchain" u naslovu - rasprava o novim softverskim rješenjima i ekonomskim modelima postala je dominantan trend neko vrijeme, na pozadini čega su ostala područja primjene distribuiranih računalnih sustava potisnut u drugi plan.

Istodobno, vizionari i profesionalci uvidjeli su glavnu bit fenomena: masivno distribuirano računalstvo, povezano s izgradnjom mreža od velikog broja različitih i heterogenih sudionika, doseglo je novu razinu razvoja. Dovoljno je izbaciti hype teme iz glave i pogledati temu s druge strane: sve te mreže, sastavljene od ogromnih bazena, koji se sastoje od tisuća izoliranih heterogenih sudionika, nisu se pojavile same od sebe. Entuzijasti kripto pokreta uspjeli su riješiti složene probleme sinkronizacije podataka i raspodjele resursa i zadataka na nov način, što je omogućilo sastavljanje slične mase opreme i stvaranje novog ekosustava dizajniranog za rješavanje jednog usko usmjerenog problema.

Naravno, to nije mimoišlo timove i zajednice uključene u razvoj besplatno distribuiranog računarstva, a novi projekti nisu se dugo čekali.
Međutim, unatoč značajnom povećanju količine dostupnih informacija o razvoju na području izgradnje mreža i rada s opremom, kreatori obećavajućih sustava morat će riješiti ozbiljne probleme.

Prvi od njih je, ma koliko čudno zvučalo, problem odabira smjera.

Smjer može biti ispravan, a može i voditi u slijepu ulicu - tu nema izlaza, centralizirana opskrba informatičke zajednice vidovnjacima još uvijek kasni. Ali izbor se mora napraviti kako se ne bi upalo u tradicionalnu zamku tima koji uzima preširoko područje i od samog početka pokušava stvoriti još jedan nespecijalizirani opći projekt distribuiranog računalstva. Čini se da opseg posla i nije tako strašan, većim dijelom samo treba primijeniti postojeće razvoje: spojiti čvorove u mrežu, prilagoditi algoritme za određivanje topologija, razmjenu podataka i praćenje njihove konzistentnosti, uvesti metode za rangiranje čvorova i pronalaženje konsenzus i, naravno, samo kreirajte svoj vlastiti upitni jezik i cjelokupno jezično i računalno okruženje. Ideja o univerzalnom mehanizmu vrlo je primamljiva i stalno se pojavljuje na jednom ili drugom području, ali krajnji rezultat je još uvijek jedna od tri stvari: stvoreno rješenje ili se pokaže kao ograničeni prototip s hrpom suspendiranih zadataka ” u zaostatku, ili postaje neupotrebljivo čudovište spremno odvući svakoga tko dotakne smrdljivu “Turingovu močvaru”, ili jednostavno sigurno umire od činjenice da su labud, rak i štuka, koji su projekt vukli u neshvatljivom smjeru, jednostavno su se prenapregli.

Nemojmo ponavljati glupe pogreške i izaberimo smjer koji ima jasan raspon zadataka i dobro je prilagođen modelu distribuiranog računalstva. Možete razumjeti ljude koji pokušavaju učiniti sve odjednom - naravno, postoji mnogo izbora. I mnogo toga izgleda izuzetno zanimljivo kako sa stajališta istraživanja i razvoja, tako i sa stajališta ekonomije. Korištenjem distribuirane mreže možete:

  • Uvježbavanje neuronskih mreža
  • Procesni tokovi signala
  • Izračunajte strukturu proteina
  • Renderirajte XNUMXD scene
  • Simulirajte hidrodinamiku
  • Testirajte strategije trgovanja za burze

Kako se ne bismo zanosili sastavljanjem liste zanimljivih stvari koje su dobro paralelizirane, za daljnju temu odabrat ćemo distribuirano renderiranje.

Samo distribuirano renderiranje nije, naravno, ništa novo. Postojeći skupovi alata za renderiranje već dugo podržavaju raspodjelu opterećenja na različitim strojevima; bez toga bi život u dvadeset prvom stoljeću bio prilično tužan. Međutim, ne biste trebali misliti da je tema pokrivena nadaleko i naširoko, i da se tu nema što učiniti - razmotrit ćemo poseban gorući problem: stvaranje alata za stvaranje mreže renderiranja.

Naša mreža za iscrtavanje kombinacija je čvorova koji trebaju izvršiti zadatke iscrtavanja s čvorovima koji imaju besplatne računalne resurse za obradu iscrtavanja. Vlasnici resursa povezat će svoje stanice s mrežom za iscrtavanje kako bi primali i izvršavali poslove iscrtavanja koristeći jedan od podržanih mehanizama za iscrtavanje mreže. U tom će slučaju davatelji zadataka raditi s mrežom kao da je oblak, neovisno distribuirati resurse, nadzirati ispravnost izvršenja, upravljati rizicima i drugim problemima.

Stoga ćemo razmotriti stvaranje okvira koji bi trebao podržavati integraciju sa skupom popularnih motora za renderiranje i sadržavati komponente koje pružaju alate za organiziranje mreže heterogenih čvorova i upravljanje protokom zadataka.

Ekonomski model postojanja takve mreže nije od temeljne važnosti, pa ćemo kao početnu shemu uzeti shemu sličnu onoj koja se koristi u izračunima u mrežama kriptovaluta - potrošači resursa slat će tokene dobavljačima koji obavljaju rad renderiranja. Mnogo je zanimljivije razumjeti koja bi svojstva okvir trebao imati, za što ćemo razmotriti glavni scenarij interakcije između sudionika mreže.

Postoje tri strane interakcije u mreži: pružatelj resursa, pružatelj zadataka i mrežni operater (tzv. kontrolni centar, mreža itd. u tekstu).

Mrežni operater osigurava pružatelju resursa klijentsku aplikaciju ili sliku operativnog sustava s postavljenim skupom softvera, koji će on instalirati na stroj čije resurse želi pružiti, i osobni račun dostupan putem web sučelja, što mu omogućuje da postaviti parametre pristupa resursu i daljinski upravljati njegovim krajolikom poslužitelja: kontrolirati hardverske parametre, izvršiti udaljenu konfiguraciju, ponovno pokrenuti.

Kada se spoji novi čvor, sustav upravljanja mrežom analizira opremu i specificirane pristupne parametre, rangira je, dodjeljuje joj određenu ocjenu i smješta je u registar resursa. U budućnosti će se, kako bi se upravljalo rizikom, analizirati parametri aktivnosti čvora, a ocjena čvora će se prilagoditi kako bi se osigurala stabilnost mreže. Nitko neće biti zadovoljan ako se njegova scena pošalje na render na snažnim karticama koje se često smrzavaju zbog pregrijavanja?

Korisnik koji treba renderirati scenu može ići na dva načina: učitati scenu u mrežni repozitorij putem web sučelja ili upotrijebiti dodatak za povezivanje svog paketa za modeliranje ili instaliranog renderera na mrežu. U ovom slučaju, između korisnika i mreže pokreće se pametni ugovor čiji je standardni uvjet za završetak generiranje rezultata izračuna scene od strane mreže. Korisnik može pratiti proces izvršavanja zadatka i upravljati njegovim parametrima putem web sučelja svog osobnog računa.

Zadatak se šalje na poslužitelj, gdje se analizira volumen scene i broj resursa koje je inicijator zadatka zatražio, nakon čega se ukupni volumen rastavlja na dijelove prilagođene izračunu o broju i vrsti resursa koje mreža dodjeljuje. . Opća ideja je da se vizualizacija može rastaviti na mnogo malih zadataka. Motori to iskorištavaju distribucijom ovih zadataka između više pružatelja resursa. Najjednostavniji način je renderiranje malih dijelova scene koji se nazivaju segmenti. Kada je svaki segment spreman, lokalni se zadatak smatra dovršenim, a resurs prelazi na sljedeći neizvršeni zadatak.

Prema tome, za renderer nema nikakve razlike hoće li se izračuni izvoditi na jednom stroju ili na mreži mnogih pojedinačnih računalnih stanica. Distribuirano prikazivanje jednostavno dodaje više jezgri u skup resursa koji se koriste za zadatak. Preko mreže prima sve podatke potrebne za renderiranje segmenta, izračunava ih, šalje taj segment natrag i prelazi na sljedeći zadatak. Prije ulaska u opći skup mreže, svaki segment prima skup metainformacija koje omogućuju izvršnim čvorovima odabir najprikladnijih računalnih zadataka za njih.

Problemi segmentacije i distribucije izračuna moraju se rješavati ne samo sa stajališta optimizacije vremena izvršenja, već i sa gledišta optimalnog korištenja resursa i uštede energije, jer o tome ovisi ekonomska učinkovitost mreže. . Ako je rješenje neuspješno, bilo bi preporučljivije instalirati rudar na čvor ili ga isključiti kako ne bi stvarao buku i ne trošio struju.

Ipak, vratimo se procesu. Kada se primi zadatak, također se formira pametni ugovor između skupa i čvora, koji se izvršava kada se rezultat zadatka ispravno izračuna. Na temelju rezultata ispunjenja ugovora, čvor može dobiti nagradu u jednom ili drugom obliku.

Kontrolni centar kontrolira proces izvršenja zadatka, prikuplja rezultate izračuna, šalje neispravne na ponovnu obradu i rangira u red čekanja, prati standardni rok za izvršenje zadatka (kako se ne bi dogodilo da zadnji segment nije zauzet od strane bilo koji čvor).

Rezultati izračuna prolaze kroz fazu komponiranja, nakon čega korisnik dobiva rezultate renderiranja, a mreža može dobiti nagradu.

Tako se pojavljuje funkcionalni sastav pejzažnog okvira dizajniranog za izgradnju distribuiranih sustava prikazivanja:

  1. Osobni korisnički računi s pristupom webu
  2. Softverski komplet za instalaciju na čvorove
  3. Po sustavu upravljanja:
    • Podsustav kontrole pristupa
    • Podsustav dekompozicije zadataka renderiranja
    • Podsustav raspodjele zadataka
    • Podsustav za slaganje
    • Podsustav upravljanja krajolikom poslužitelja i topologijom mreže
    • Podsustav evidentiranja i revizije
    • Podsustav stručnjaka za učenje
    • Rest API ili drugo sučelje za vanjske programere

Što misliš? Koja pitanja postavlja tema i koji vas odgovori zanimaju?

Izvor: www.habr.com

Dodajte komentar