Aplikované technologie na troskách blockchainové horečky nebo praktické výhody distribuce zdrojů

V posledních letech byly zpravodajské kanály zaplaveny zprávami o novém typu distribuovaných počítačových sítí, které se objevují doslova odnikud a řeší (nebo spíše se snaží vyřešit) širokou škálu problémů – činí město chytrým, zachraňují svět před autorskými právy narušitelé nebo naopak, tajně přenášet informace nebo zdroje, unikat z -pod státní kontroly v té či oné oblasti. Bez ohledu na obor mají všechny řadu společných rysů díky tomu, že palivem pro jejich růst byly algoritmy a techniky, které se na veřejnost dostaly během nedávného boomu kryptoměn a souvisejících technologií. Pravděpodobně každý třetí článek o specializovaných zdrojích měl v té době v názvu slovo „blockchain“ - dominantním trendem se na nějakou dobu stala diskuse o nových softwarových řešeních a ekonomických modelech, na jejichž pozadí se rozvíjely další oblasti aplikací distribuovaných výpočetních systémů. odsunuta do pozadí.

Vizionáři a profesionálové přitom viděli hlavní podstatu fenoménu: masivní distribuované výpočty, spojené s budováním sítí z velkého počtu nesourodých a heterogenních účastníků, dosáhly nové úrovně rozvoje. Stačí vyhodit z hlavy hype témata a podívat se na věc z druhé strany: všechny tyto sítě sestavené z obrovských bazénů, které se skládají z tisíců izolovaných heterogenních účastníků, nevznikly samy o sobě. Nadšenci kryptohnutí dokázali vyřešit složité problémy synchronizace dat a distribuce zdrojů a úkolů novým způsobem, což umožnilo dát dohromady podobnou masu zařízení a vytvořit nový ekosystém určený k řešení jednoho úzce zaměřeného problému.

To samozřejmě neprošlo týmy a komunitami zapojenými do vývoje bezplatného distribuovaného počítání a nové projekty na sebe nenechaly dlouho čekat.
I přes výrazný nárůst objemu dostupných informací o vývoji v oblasti budování sítí a práce se zařízeními však budou muset tvůrci perspektivních systémů řešit vážné problémy.

První z nich, jakkoli to může znít zvláštně, je problém výběru směru.

Směr může být správný, nebo může vést do slepé uličky – z toho není úniku, centralizované dodávky jasnovidců do IT komunity mají stále zpoždění. Volba však musí být provedena tak, abychom nespadli do tradiční pasti, kdy tým zabírá příliš širokou oblast a snaží se od začátku vytvořit další nespecializovaný obecný distribuovaný výpočetní projekt. Zdá se, že rozsah práce není tak děsivý, z velké části potřebujeme jen aplikovat stávající vývoj: spojit uzly do sítě, přizpůsobit algoritmy pro určování topologií, výměnu dat a sledování jejich konzistence, zavést metody pro klasifikaci uzlů a hledání konsensus, a samozřejmě si jen vytvořit svůj vlastní dotazovací jazyk a celý jazyk a výpočetní prostředí. Myšlenka univerzálního mechanismu je velmi lákavá a neustále se objevuje v té či oné oblasti, ale konečným výsledkem je stále jedna ze tří věcí: vytvořené řešení se buď ukáže jako omezený prototyp s hromadou pozastavených „ToDos“. “ v nedodělku, nebo se z něj stane nepoužitelná příšera připravená odtáhnout každého, kdo se dotkne páchnoucí „Turingovy bažiny“, nebo prostě bezpečně zemře na to, že labuť, raci a štiky, kteří projekt táhli nepochopitelným směrem, prostě se přetížili.

Neopakujme hloupé chyby a volme směr, který má jasný rozsah úkolů a dobře se hodí k distribuovanému výpočetnímu modelu. Dokážete pochopit lidi, kteří se snaží dělat vše najednou – samozřejmě je z čeho vybírat. A spousta věcí vypadá nesmírně zajímavě jak z pohledu VaV a vývoje, tak z pohledu ekonomiky. Pomocí distribuované sítě můžete:

  • Trénujte neuronové sítě
  • Zpracovat toky signálů
  • Vypočítejte strukturu bílkovin
  • Renderujte XNUMXD scény
  • Simulovat hydrodynamiku
  • Otestujte obchodní strategie pro burzy

Abychom se nenechali unést sestavováním seznamu zajímavostí, které jsou dobře paralelizované, zvolíme jako další téma distribuované vykreslování.

Samotné distribuované vykreslování samozřejmě není žádnou novinkou. Stávající sady nástrojů pro renderování již dlouho podporují rozložení zátěže mezi různé stroje, bez toho by bylo žít v jednadvacátém století docela smutné. Neměli byste si však myslet, že téma bylo pokryto široko daleko a není tam co dělat - budeme zvažovat samostatný naléhavý problém: vytvoření nástroje pro vytváření sítě pro vykreslování.

Naše vykreslovací síť je kombinací uzlů, které potřebují provádět vykreslovací úlohy, s uzly, které mají volné výpočetní zdroje pro zpracování vykreslování. Vlastníci prostředků připojí své stanice k vykreslovací síti, aby mohli přijímat a provádět vykreslovací úlohy pomocí jednoho z podporovaných vykreslovacích enginů sítě. V tomto případě budou poskytovatelé úloh pracovat se sítí jako s cloudem, nezávisle distribuovat zdroje, sledovat správnost provádění, řídit rizika a další problémy.

Zvážíme tedy vytvoření rámce, který by měl podporovat integraci se sadou oblíbených renderovacích enginů a obsahovat komponenty, které poskytují nástroje pro organizaci sítě heterogenních uzlů a řízení toku úloh.

Ekonomický model existence takové sítě nemá zásadní význam, proto si jako výchozí schéma vezmeme schéma podobné tomu, které se používá při výpočtech v kryptoměnových sítích – spotřebitelé zdroje pošlou tokeny dodavatelům provádějícím renderovací práce. Je mnohem zajímavější pochopit, jaké vlastnosti by měl mít rámec, pro který budeme zvažovat hlavní scénář interakce mezi účastníky sítě.

V síti existují tři strany interakce: poskytovatel zdrojů, poskytovatel úloh a provozovatel sítě (v textu také řídicí centrum, síť atd.).

Provozovatel sítě poskytne poskytovateli prostředků klientskou aplikaci nebo obraz operačního systému s nasazenou sadou softwaru, kterou nainstaluje na stroj, jehož prostředky chce poskytovat, a osobní účet přístupný přes webové rozhraní, který mu umožní nastavit přístupové parametry ke zdroji a vzdáleně spravovat jeho serverovou krajinu: ovládat hardwarové parametry, provádět vzdálenou konfiguraci, restartovat.

Když je připojen nový uzel, systém správy sítě analyzuje zařízení a specifikované přístupové parametry, seřadí je, přiřadí určité hodnocení a umístí je do registru zdrojů. V budoucnu budou za účelem řízení rizika analyzovány parametry aktivity uzlu a bude upraveno hodnocení uzlu, aby byla zajištěna stabilita sítě. Nikoho nepotěší, když se jeho scéna pošle k renderu na výkonné karty, které často zamrzají kvůli přehřívání?

Uživatel, který potřebuje vykreslit scénu, může jít dvěma způsoby: nahrát scénu do síťového úložiště přes webové rozhraní nebo pomocí pluginu připojit svůj modelovací balíček nebo nainstalovaný renderer k síti. V tomto případě je mezi uživatelem a sítí iniciován smart kontrakt, jehož standardní podmínkou pro dokončení je vygenerování výsledku výpočtu scény sítí. Uživatel může sledovat proces plnění úkolu a spravovat jeho parametry prostřednictvím webového rozhraní svého osobního účtu.

Úloha je odeslána na server, kde je analyzován objem scény a počet zdrojů požadovaných iniciátorem úlohy, poté je celkový objem rozložen na části přizpůsobené pro výpočet počtu a typu zdrojů přidělených sítí. . Obecná myšlenka je, že vizualizaci lze rozdělit na mnoho malých úkolů. Motory toho využívají tím, že tyto úkoly rozdělují mezi více poskytovatelů zdrojů. Nejjednodušší způsob je vykreslit malé části scény zvané segmenty. Když je každý segment připraven, je místní úkol považován za dokončený a zdroj se přesune k dalšímu nevyřízenému úkolu.

Pro renderer tedy není rozdíl jako takový, zda jsou výpočty prováděny na jediném stroji nebo na mřížce mnoha jednotlivých výpočetních stanic. Distribuované vykreslování jednoduše přidává další jádra do fondu zdrojů používaných pro úlohu. Prostřednictvím sítě přijímá všechna data potřebná k vykreslení segmentu, vypočítá je, odešle tento segment zpět a přejde k další úloze. Před vstupem do obecného síťového fondu obdrží každý segment sadu metainformací, které umožňují vykonávajícím uzlům vybrat pro ně nejvhodnější výpočetní úlohy.

Problémy segmentace a distribuce výpočtů je nutné řešit nejen z hlediska optimalizace doby provádění, ale také z hlediska optimálního využití zdrojů a úspory energie, protože na tom závisí ekonomická účinnost sítě. . Pokud je řešení neúspěšné, bylo by vhodnější nainstalovat na uzel miner nebo jej vypnout, aby nehlučel a neplýtval elektřinou.

Vraťme se však k procesu. Když je přijata úloha, vytvoří se také inteligentní smlouva mezi fondem a uzlem, která se provede, když je výsledek úlohy správně vypočítán. Na základě výsledků plnění smlouvy může uzel získat odměnu v té či oné formě.

Řídicí centrum řídí proces provádění úkolu, sbírá výsledky výpočtů, odesílá nesprávné k přepracování a řadí frontu, hlídá standardní termín dokončení úkolu (aby se nestalo, že poslední segment nezabere jakýkoli uzel).

Výsledky výpočtů procházejí fází skládání, po které uživatel obdrží výsledky vykreslování a síť může získat odměnu.

Vzniká tak funkční kompozice krajinného rámce určeného pro budování distribuovaných vykreslovacích systémů:

  1. Osobní uživatelské účty s webovým přístupem
  2. Softwarová sada pro instalaci na uzly
  3. Podle řídicího systému:
    • Subsystém řízení přístupu
    • Vykreslovací subsystém rozkladu úloh
    • Subsystém rozdělení úkolů
    • Kompozitní subsystém
    • Subsystém správy serverové krajiny a topologie sítě
    • Logovací a auditní subsystém
    • Učící se expertní subsystém
    • Rest API nebo jiné rozhraní pro externí vývojáře

Co myslíš? Jaké otázky téma vyvolává a jaké odpovědi vás zajímají?

Zdroj: www.habr.com

Přidat komentář