Прыкладныя тэхналогіі на руінах блокчейн-ліхаманкі або аб практычнай карысці размеркавання рэсурсаў

У апошнія гады навінныя стужкі пазапаўнялі паведамленні аб якія з'яўляюцца літаральна з ніадкуль размеркаваных вылічальных сетках новага тыпу, вырашальных (дакладней, якія спрабуюць вырашыць) самыя разнастайныя задачы - зрабіць горад разумным, выратаваць мір ад парушальнікаў аўтарскіх мае рацыю або наадварот, таемна перадаць інфармацыю ці рэсурсы, збегчы з -пад кантролю дзяржавы ў той ці іншай сферы. Незалежна ад сферы, усе яны валодаюць побач агульных рыс, абумоўленых тым, што палівам для іх росту з'явіліся алгарытмы і методыкі, якія выйшлі ў шырокія масы падчас нядаўняга буму криптовалют і злучаных з імі тэхналогій. Мусіць, кожны трэці артыкул на профільных рэсурсах у той час у назове мела слова "блокчейн" - абмеркаванне новых праграмных рашэнняў і эканамічных мадэляў некаторы час стала дамінантным трэндам, на фоне якога іншыя сферы ўжывання сістэм размеркаваных вылічэнняў былі адсунутыя на другі план.

У той жа час візіянеры і прафесіяналы ўбачылі асноўную сутнасць з'явы: масавыя размеркаваныя вылічэнні, звязаныя з пабудовай сетак з вялікай колькасці разрозненых і разнастайных удзельнікаў, выйшлі на новы ўзровень развіцця. Досыць выкінуць з галавы хайповые тэмы і зірнуць на прадмет з іншага боку: усе гэтыя сеткі, сабраныя з велізарных пулаў, у якіх складаюцца тысячы адасобленых разнастайных удзельнікаў, з'явіліся не самі па сабе. Энтузіясты крыпта-руху змаглі вырашыць у новым ключы складаныя праблемы сінхранізацыі дадзеных і размеркаванні рэсурсаў і задач, што і дазволіла сабраць разам падобную масу абсталявання і стварыць новую экасістэму, прызначаную для рашэння адной вузканакіраванай задачы.

Зразумела, гэта не прайшло міма каманд і супольнасцяў, якія займаюцца развіццём свабодных размеркаваных вылічэнняў, і новыя праекты не прымусілі сябе чакаць.
Аднак, нягледзячы на ​​сур'ёзнае павелічэнне аб'ёму даступных звестак аб напрацоўках у галіне пабудовы сетак і працы з абсталяваннем, стваральнікам перспектыўных сістэм давядзецца вырашаць сур'ёзныя праблемы.

Першай з іх, як бы дзіўна гэта ні гучала, з'яўляецца праблема выбару кірунку

Кірунак можа быць правільным, можа весці ў тупік - ад гэтага не збегчы, цэнтралізаваныя пастаўкі празорцаў у IT-супольнасць пакуль што спазняюцца. Але выбар варта зрабіць, каб не патрапіць у традыцыйную пастку, якая складаецца ў тым, што каманда бярэ занадта шырокую вобласць і са старту спрабуе стварыць яшчэ адзін неспецыялізаваны праект размеркаваных вылічэнняў шырокага профіля. Здаецца, што фронт работ не такі страшны, трэба па большай частцы проста прымяніць існуючыя напрацоўкі: аб'яднаць вузлы ў сетку, адаптаваць алгарытмы вызначэння тапалогій, абмену дадзенымі і кантролю іх кансістэнтнасці, укараніць методыкі ранжыравання вузлоў і знаходжання кансенсусу, ну і, вядома, усяго толькі стварыць сваю мову запытаў і ўсё моўнае і вылічальнае асяроддзе. Ідэя ўніверсальнага механізму вельмі павабная і ўвесь час усплывае ў той ці іншай сферы, але на вынахадзе па-ранейшаму атрымліваецца адно з трох: створанае рашэнне альбо апыняецца насамрэч абмежаваным прататыпам з кучай якія падвіслі “ToDo” у бэклогу, альбо становіцца неюзабельным монстрам, гатовым пацягнуць любога які дакрануўся ў смуродную "цьюрынгавую багну", альбо ж проста шчасна памірае ад таго, што якія цягнулі ў незразумелы бок праект лебедзь, рак і шчупак банальна надарваліся.

Не будзем паўтараць дурных памылак і абярэм кірунак, якое мае зразумелае кола задачы і добра падыходнае пад мадэль размеркаваных вылічэнняў. Можна зразумець людзей, якія спрабуюць зрабіць усё і адразу - выбраць, вядома, ёсць з чаго. І шмат што выглядае вельмі цікава як з пункту R&D і распрацоўкі, так і з пункту гледжання эканомікі. Пры дапамозе размеркаванай сеткі можна:

  • Вучыць нейронавыя сеткі
  • Апрацоўваць патокі сігналаў
  • Вылічаць структуру бялкоў
  • Праводзіць рэндэрынг трохмерных сцэн
  • Мадэляваць гідрадынаміку
  • Тэставаць гандлёвыя стратэгіі для фондавых біржаў

Каб не захапляцца складаннем спісу цікавых рэчаў, якія добра паралеляцца, выберам у якасці нашай далейшай тэмы размеркаваны рэндэрынг.

Сам па сабе размеркаваны рэндэрынг - з'ява, зразумела, ні разу не новае. існуючыя рэндэр-тулкіты даўно падтрымліваюць размеркаванне нагрузкі па розных машынах, без гэтага ў дваццаць першым стагоддзі жыць было б даволі сумна. Аднак не варта думаць, што тэма выезджаная ўздоўж і ўпоперак, і рабіць там няма чаго - мы разгледзім асобную актуальную праблему: стварэнне інструмента для фарміравання рэндэр-сеткі.

Сетка рэндэрынгу ў нас - гэта аб'яднанне вузлоў, якім неабходна выконваць задачы рэндэрынгу, з вузламі, у якіх ёсць свабодныя вылічальныя рэсурсы для апрацоўкі рэндэрынгу. Уладальнікі рэсурсаў будуць падключаць свае станцыі да сеткі рэндэрынгу, каб атрымліваць і выконваць заданні рэндэрынгу з выкарыстаннем аднаго з падтрымліваемых сеткай рэндэрынгаў. Пастаўшчыкі задач пры гэтым будуць працаваць з сеткай як з воблакам, якое самастойна выконвае размеркаванне рэсурсаў, кантроль карэктнасці выканання, кіраванне рызыкамі і іншыя праблемы.

Такім чынам мы будзем разглядаць стварэнне фрэймворка, які павінен падтрымліваць інтэграцыю з наборам папулярных рэндэр-рухавічкоў і ўтрымоўваць у сабе кампаненты, якія прадстаўляюць інструментар для арганізацыі сеткі з разнастайных вузлоў і кіраванні струменем задач.

Эканамічная мадэль існавання падобнай сеткі не мае прынцыповага значэння, таму за зыходную прымем схему, падобную з прымяняецца ў вылічэннях у криптовалютных сетках – спажыўцы рэсурсу будуць адпраўляць токены пастаўшчыкам, якія выконваюць працу рэндэрынгу. Куды цікавей зразумець, якімі ўласцівасцямі павінен валодаць фрэймворк, для чаго разгледзім асноўны сцэнар узаемадзеяння ўдзельнікаў сеткі.

У сетцы існуюць тры бакі ўзаемадзеяння: пастаўшчык рэсурсаў, пастаўшчык задач і аператар сеткі (ён жа цэнтр кіравання, сетка і г.д. па тэксце).

Аператар сеткі падае пастаўшчыку рэсурсу прыкладанне-кліент ці выява аперацыйнай сістэмы з разгорнутым наборам софту, якія той усталюе на машыну, рэсурсы якой ён жадае падаць, і даступны праз вэб-інтэрфейс асабісты кабінет, які дазваляе яму задаваць параметры доступу да рэсурсу і выдалена кіраваць сваім серверным ландшафтам: кантраляваць параметры жалеза, выконваць выдаленую настройку, перазагружаць.

Сістэма кіравання сеткай пры падлучэнні новага вузла праводзіць аналіз абсталявання і зададзеных параметраў доступу, ранжыруе яго, прысвойваючы вызначаны рэйтынг, і змяшчае ў рэестр рэсурсаў. У далейшым у мэтах кіравання рызыкай параметры актыўнасці вузла будуць аналізавацца, і рэйтынг вузла будзе карэкціравацца для забеспячэння стабільнасці працы сеткі. Нікому ж не будзе прыемна, калі іх сцэну адправяць рэндэрыцца на магутныя, але часта якія завісаюць ад перагрэву карты?

Карыстальнік, якому неабходна адрэндэрыць якую-небудзь сцэну, можа пайсці двума шляхамі: загрузіць сцэну ў рэпазітар сеткі праз вэб-інтэрфейс або пры дапамозе плагіна падлучыць свой пакет мадэлявання або ўсталяваны рэндэрэр да сеткі. Пры гэтым паміж карыстачом і сеткай ініцыюецца смарт-кантракт, штатнай умовай завяршэння якога з'яўляецца генерацыя сеткай выніку вылічэнні сцэны. Сачыць за працэсам выканання задання і кіраваць яго параметрамі карыстач можа праз вэб-інтэрфейс свайго асабістага кабінета.

Заданне паступае на сервер, дзе аналізуецца аб'ём сцэны і колькасць запытаных ініцыятарам задачы рэсурсаў, пасля чаго выконваецца дэкампазіцыя агульнага аб'ёму на часткі, адаптаваныя для вылічэння на выдзеленай сеткай колькасці і тыпе рэсурсаў. Агульная ідэя заключаецца ў тым, што візуалізацыя можа быць разбіта на мноства невялікіх задач. Рухавікі карыстаюцца гэтай перавагай, размяркоўваючы гэтыя задачы сярод мноства пастаўшчыкоў рэсурсаў. Найпросты спосаб - рэндэрынгу невялікіх частак сцэны, званых сегментамі. Калі кожны сегмент гатовы, лакальная задача лічыцца выкананай, рэсурс пераходзіць да выканання наступнай з нявырашаных.

Такім чынам, для рэндэрэра няма як такой розніцы, ці выконваюцца вылічэнні на адной машыне ці ж на грыдзе з мноства асобных вылічальных станцый. Размеркаваны рэндэрынг проста дадае больш ядраў у пул выкарыстоўваных для задачы рэсурсаў. Праз сетку ён атрымлівае ўсе дадзеныя, неабходныя для рэндэрынгу сегмента, вылічае яго, адпраўляе гэты сегмент назад і пераходзіць да наступнай задачы. Перад паступленнем у агульны пул сеткі кожны сегмент атрымлівае набор метаінфармацыі, які дазваляе вузлам-выканаўцам выбіраць найболей падыходныя для іх вылічальныя задачы.

Задачы сегментацыі і размеркавання вылічэнняў пры гэтым павінны вырашацца не толькі з пункту гледжання аптымізацыі часу выканання, але і з пункту гледжання аптымальнага выкарыстання рэсурсаў і энергазберажэння, бо ад гэтага залежыць эканамічная эфектыўнасць сеткі. У выпадку няўдалага рашэння на вузел будзе мэтазгодней паставіць майнер або выключыць яго, каб не шумеў і не марнаваў электрычнасць.

Аднак вернемся да працэсу. Пры атрыманні задачы паміж пулам і вузлом таксама фармуецца смарт-кантракт, які выконваецца пры карэктным вылічэнні выніку задачы. Па выніках выканання кантракта вузел можа атрымліваць узнагароду ў тым ці іншым выглядзе.

Цэнтр кіравання кантралюе працэс выканання задачы, збіраючы вынікі вылічэнняў, адпраўляючы на ​​паўторную апрацоўку некарэктныя і ранжыруючы чаргу, адсочваючы нарматыўны тэрмін выканання задачы (каб не здарылася, што апошні сегмент не бярэцца ў працу ніводным вузлом).

Вынікі вылічэнняў праходзяць этап кампозінгу, пасля чаго карыстач атрымлівае вынікі рэндэрынгу, а сетка можа атрымаць узнагароду.

Такім чынам з вымалёўваецца функцыянальны склад ландшафтнага фрэймворка, прызначанага для пабудовы сістэм размеркаванага рэндэрынгу:

  1. Асабістыя кабінеты карыстальнікаў з вэб-доступам
  2. Камплект ПЗ для ўстаноўкі на вузлы
  3. Па сістэмы кіравання:
    • Падсістэма кіравання доступам
    • Падсістэма дэкампазіцыі задач рэндэрынгу
    • Падсістэма размеркавання задач
    • Падсістэма кампозінгу
    • Падсістэма кіравання серверным ландшафтам і тапалогіяй сеткі
    • Падсістэма лагіравання і аўдыту
    • Навучальная экспертная падсістэма
    • Rest API ці іншы інтэрфейс для вонкавых распрацоўнікаў

А што вы думаеце? Якія пытанні спараджае тэма і якія адказы вам цікавыя?

Крыніца: habr.com

Дадаць каментар