Aplikované technológie na troskách blockchainovej horúčky či praktické výhody distribúcie zdrojov

V posledných rokoch boli spravodajské kanály zaplavené správami o novom type distribuovaných počítačových sietí, ktoré sa objavujú doslova z ničoho nič, riešia (alebo skôr snažia sa vyriešiť) širokú škálu problémov – robia mesto inteligentnejším, zachraňujú svet pred autorskými právami. porušovatelia alebo naopak, tajne prenášajú informácie alebo zdroje, unikajú spod štátnej kontroly v tej či onej oblasti. Bez ohľadu na oblasť majú všetky množstvo spoločných čŕt, pretože palivom pre ich rast boli algoritmy a techniky, ktoré sa dostali na verejnosť počas nedávneho boomu kryptomien a súvisiacich technológií. Snáď každý tretí článok o špecializovaných zdrojoch mal v tom čase v názve slovo „blockchain“ - dominantným trendom sa na istý čas stala diskusia o nových softvérových riešeniach a ekonomických modeloch, na pozadí ktorej sa rozvíjali aj ďalšie oblasti aplikácie distribuovaných výpočtových systémov. odsunuté do úzadia.

Vizionári a profesionáli zároveň videli hlavnú podstatu tohto fenoménu: masívne distribuované výpočty spojené s budovaním sietí z veľkého počtu nesúrodých a heterogénnych účastníkov dosiahli novú úroveň rozvoja. Stačí vyhodiť hype témy z hlavy a pozrieť sa na vec z druhej strany: všetky tieto siete zostavené z obrovských bazénov, ktoré pozostávajú z tisícok izolovaných heterogénnych účastníkov, nevznikli samy od seba. Nadšenci krypto hnutia dokázali vyriešiť zložité problémy synchronizácie dát a distribúcie zdrojov a úloh novým spôsobom, čo umožnilo zostaviť podobnú masu zariadení a vytvoriť nový ekosystém určený na riešenie jedného úzko zameraného problému.

Tímy a komunity, ktoré sa podieľajú na vývoji bezplatnej distribuovanej výpočtovej techniky, to samozrejme neprešlo a nové projekty na seba nenechali dlho čakať.
Napriek výraznému nárastu objemu dostupných informácií o vývoji v oblasti budovania sietí a práce so zariadeniami však budú musieť tvorcovia perspektívnych systémov riešiť vážne problémy.

Prvým z nich, nech to znie akokoľvek zvláštne, je problém výberu smeru.

Smer môže byť správny, alebo môže viesť do slepej uličky – z toho niet úniku, centralizované dodávky jasnovidcov do IT komunity stále meškajú. Voľba však musí byť urobená tak, aby sa nedostal do tradičnej pasce tímu, ktorý zaberá príliš širokú oblasť a snaží sa od začiatku vytvoriť ďalší nešpecializovaný všeobecný distribuovaný výpočtový projekt. Zdá sa, že rozsah práce nie je taký strašidelný, z väčšej časti musíme použiť existujúci vývoj: spojiť uzly do siete, prispôsobiť algoritmy na určovanie topológií, výmenu údajov a monitorovanie ich konzistencie, zaviesť metódy na klasifikáciu uzlov a vyhľadávanie konsenzus a, samozrejme, len si vytvorte vlastný dopytovací jazyk a celé jazykové a výpočtové prostredie. Myšlienka univerzálneho mechanizmu je veľmi lákavá a neustále sa objavuje v jednej alebo druhej oblasti, ale konečný výsledok je stále jedna z troch vecí: vytvorené riešenie sa buď ukáže ako obmedzený prototyp s množstvom pozastavených „Úloh“. “ alebo sa z neho stane nepoužiteľné monštrum pripravené odtiahnuť každého, kto sa dotkne páchnuceho „Turingovho močiara“, alebo jednoducho bezpečne zomrie na to, že labute, raky a šťuky, ktoré ťahali projekt nepochopiteľným smerom, jednoducho sa presilili.

Neopakujme hlúpe chyby a vyberme si smer, ktorý má jasný rozsah úloh a dobre sa hodí pre distribuovaný výpočtový model. Dokážete pochopiť ľudí, ktorí sa snažia robiť všetko naraz – samozrejme, je z čoho vyberať. A veľa vecí vyzerá mimoriadne zaujímavo ako z pohľadu výskumu a vývoja a vývoja, tak aj z pohľadu ekonomiky. Pomocou distribuovanej siete môžete:

  • Trénujte neurónové siete
  • Spracovať toky signálov
  • Vypočítajte štruktúru bielkovín
  • Renderujte XNUMXD scény
  • Simulujte hydrodynamiku
  • Otestujte obchodné stratégie pre burzy

Aby sme sa nenechali uniesť zostavovaním zoznamu zaujímavostí, ktoré sú dobre paralelizované, zvolíme si ako ďalšiu tému distribuované vykresľovanie.

Samotné distribuované vykresľovanie samozrejme nie je žiadnou novinkou. Existujúce sady nástrojov na vykresľovanie už dlho podporujú distribúciu záťaže medzi rôzne stroje; bez toho by bol život v dvadsiatom prvom storočí dosť smutný. Nemali by ste si však myslieť, že téma je pokrytá široko ďaleko a nie je tam čo robiť - zvážime samostatný naliehavý problém: vytvorenie nástroja na vytvorenie siete vykresľovania.

Naša vykresľovacia sieť je kombináciou uzlov, ktoré potrebujú vykonávať vykresľovacie úlohy s uzlami, ktoré majú voľné výpočtové zdroje na spracovanie vykresľovania. Vlastníci zdrojov pripoja svoje stanice k vykresľovacej sieti, aby mohli prijímať a vykonávať úlohy vykresľovania pomocou jedného z podporovaných vykresľovacích motorov siete. V tomto prípade budú poskytovatelia úloh pracovať so sieťou ako s cloudom, nezávisle distribuovať zdroje, monitorovať správnosť vykonávania, riadiť riziká a iné problémy.

Preto zvážime vytvorenie rámca, ktorý by mal podporovať integráciu so sadou populárnych renderovacích motorov a obsahovať komponenty, ktoré poskytujú nástroje na organizáciu siete heterogénnych uzlov a riadenie toku úloh.

Ekonomický model existencie takejto siete nemá zásadný význam, preto si ako úvodnú schému vezmeme schému podobnú tej, ktorá sa používa pri výpočtoch v kryptomenových sieťach – spotrebitelia zdroja budú posielať tokeny dodávateľom vykonávajúcim rendering. Je oveľa zaujímavejšie pochopiť, aké vlastnosti by mal mať rámec, pre ktorý budeme brať do úvahy hlavný scenár interakcie medzi účastníkmi siete.

V sieti existujú tri strany interakcie: poskytovateľ zdrojov, poskytovateľ úloh a prevádzkovateľ siete (v texte tiež známe ako riadiace centrum, sieť atď.).

Prevádzkovateľ siete poskytne poskytovateľovi prostriedkov klientsku aplikáciu alebo obraz operačného systému s nasadenou sadou softvéru, ktorý nainštaluje na stroj, ktorého zdroje chce poskytovať, a osobný účet prístupný cez webové rozhranie, ktorý mu umožní nastaviť parametre prístupu k zdroju a vzdialene spravovať jeho serverovú krajinu: ovládať hardvérové ​​parametre, vykonávať vzdialenú konfiguráciu, reštartovať.

Keď je pripojený nový uzol, systém správy siete analyzuje zariadenie a špecifikované prístupové parametre, zoradí ich, pridelí určité hodnotenie a umiestni ich do registra zdrojov. V budúcnosti sa za účelom riadenia rizika analyzujú parametre aktivity uzla a upraví sa hodnotenie uzla tak, aby bola zabezpečená stabilita siete. Nikoho nepoteší, ak sa jeho scéna pošle na render na výkonných kartách, ktoré často zamrznú kvôli prehriatiu?

Používateľ, ktorý potrebuje vyrenderovať scénu, môže ísť dvoma spôsobmi: nahrať scénu do sieťového úložiska cez webové rozhranie alebo použiť plugin na pripojenie svojho modelovacieho balíka alebo nainštalovaného renderera k sieti. V tomto prípade sa medzi užívateľom a sieťou iniciuje smart kontrakt, ktorého štandardnou podmienkou dokončenia je vygenerovanie výsledku výpočtu scény sieťou. Používateľ môže cez webové rozhranie svojho osobného účtu sledovať proces plnenia úlohy a spravovať jej parametre.

Úloha sa odošle na server, kde sa analyzuje objem scény a počet zdrojov požadovaných iniciátorom úlohy, potom sa celkový objem rozloží na časti prispôsobené na výpočet počtu a typu zdrojov pridelených sieťou. . Všeobecnou myšlienkou je, že vizualizáciu možno rozdeliť do mnohých malých úloh. Motory to využívajú na distribúciu týchto úloh medzi viacerých poskytovateľov zdrojov. Najjednoduchším spôsobom je vykresliť malé časti scény nazývané segmenty. Keď je každý segment pripravený, lokálna úloha sa považuje za dokončenú a zdroj sa presunie na ďalšiu nespracovanú úlohu.

Pre renderer teda nie je rozdiel ako taký, či sa výpočty vykonávajú na jedinom stroji alebo na mriežke mnohých jednotlivých výpočtových staníc. Distribuované vykresľovanie jednoducho pridáva viac jadier do fondu zdrojov použitých na úlohu. Prostredníctvom siete prijíma všetky údaje potrebné na vykreslenie segmentu, vypočíta ich, odošle tento segment späť a prejde na ďalšiu úlohu. Pred vstupom do všeobecného sieťového fondu dostane každý segment súbor metainformácií, ktoré umožňujú vykonávajúcim uzlom vybrať pre ne najvhodnejšie výpočtové úlohy.

Problémy segmentácie a distribúcie výpočtov je potrebné riešiť nielen z hľadiska optimalizácie času vykonávania, ale aj z hľadiska optimálneho využitia zdrojov a úspory energie, keďže od toho závisí ekonomická efektívnosť siete. . Ak je riešenie neúspešné, bolo by vhodnejšie nainštalovať na uzol baníka alebo ho vypnúť, aby nehlučne a neplytval elektrinou.

Vráťme sa však k procesu. Po prijatí úlohy sa medzi oblasťou a uzlom vytvorí aj inteligentná zmluva, ktorá sa vykoná, keď je výsledok úlohy správne vypočítaný. Na základe výsledkov plnenia zmluvy môže uzol získať odmenu v jednej alebo druhej forme.

Riadiace centrum riadi proces vykonávania úlohy, zbiera výsledky výpočtov, odosiela nesprávne na prepracovanie a zoraďuje poradie, sleduje štandardný termín dokončenia úlohy (aby sa nestalo, že posledný segment nezaberie do akýkoľvek uzol).

Výsledky výpočtov prechádzajú fázou skladania, po ktorej používateľ dostane výsledky vykresľovania a sieť môže získať odmenu.

Vzniká tak funkčné zloženie krajinného rámca určeného na budovanie distribuovaných vykresľovacích systémov:

  1. Osobné používateľské účty s webovým prístupom
  2. Softvérová súprava pre inštaláciu na uzly
  3. Podľa riadiaceho systému:
    • Subsystém kontroly prístupu
    • Subsystém rozkladu úloh vykresľovania
    • Subsystém distribúcie úloh
    • Kompozitný subsystém
    • Subsystém správy serverovej krajiny a topológie siete
    • Subsystém protokolovania a auditu
    • Učenie expertný subsystém
    • Rest API alebo iné rozhranie pre externých vývojárov

Co si myslis? Aké otázky vyvoláva téma a aké odpovede vás zaujímajú?

Zdroj: hab.com

Pridať komentár