Popcorn vyvíja distribuovaný systém spúšťania vlákien pre jadro Linuxu.

Virginia Tech ponúkol na diskusiu vývojárov jadra Linuxu, sadu záplat s implementáciou distribuovaného systému vykonávania vlákien Pražená kukurica (Distributed Thread Execution), ktorý umožňuje organizovať vykonávanie aplikácií na viacerých počítačoch s distribúciou a transparentnou migráciou vlákien medzi hostiteľmi. S Popcornom je možné spúšťať aplikácie na jednom hostiteľovi a potom ich bez prerušenia presunúť na iný hostiteľ. Vo viacvláknových programoch je povolená migrácia jednotlivých vlákien na iných hostiteľov.

Na rozdiel od projektu CRIUUmožnením uloženia stavu procesu a obnovenia vykonávania na inom systéme poskytuje Popcorn bezproblémovú a dynamickú migráciu medzi hostiteľmi počas vykonávania aplikácie, pričom nevyžaduje žiadnu akciu používateľa a zabezpečuje konzistenciu virtuálnej pamäte naprieč všetkými hostiteľmi so súbežnými vláknami.

Formulár zásobníka softvéru Popcorn náplasti do linuxového jadra a библиотека s testami demonštrujúcimi, ako možno použiť systémové volania Popcorn na migráciu vlákien v distribuovaných aplikáciách. Na úrovni jadra boli navrhnuté rozšírenia subsystému virtuálnej pamäte s implementáciou distribuovanej zdieľanej pamäte, ktorá umožňuje procesom na rôznych hostiteľoch pristupovať k spoločnému a konzistentnému virtuálnemu adresnému priestoru. Súdržnosť stránok virtuálnej pamäte je zabezpečená protokolom, ktorý replikuje pamäťové stránky hostiteľovi pri ich čítaní a pri zápise znehodnocuje pamäťové stránky.

Interakcia medzi hostiteľmi sa vykonáva pomocou obsluhy na úrovni jadra pre správy prenášané cez soket TCP. Je potrebné poznamenať, že TCP/IP sa používa na zjednodušenie ladenia a testovania počas procesu vývoja. Vývojári chápu, že z hľadiska bezpečnosti a výkonu nie je TCP/IP najlepším spôsobom prenosu obsahu štruktúr jadra a stránok pamäte medzi hostiteľmi. Všetci hostitelia s distribuovanými aplikáciami musia mať rovnakú úroveň dôveryhodnosti. Po stabilizácii hlavných algoritmov sa použije efektívnejší spôsob dopravy.

Popcorn sa od roku 2014 vyvíja ako výskumný projekt na štúdium možností vytvárania distribuovaných aplikácií, ktorých vlákna je možné spúšťať na rôznych uzloch v heterogénne výpočtové systémy, ktoré dokážu kombinovať jadrá založené na rôznych architektúrach inštrukčných sád (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Sada opráv navrhnutých pre vývojárov jadra Linuxu podporuje spúšťanie iba na hostiteľoch s x86 CPU, ale existuje aj funkčnejšia verzia Popcorn Linuxu, ktorá umožňuje aplikáciám bežať na hostiteľoch s rôznymi architektúrami CPU (x86 a ARM). Ak chcete použiť Popcorn v heterogénnych prostrediach, musíte použiť špeciálny kompilátor založené na LLVM. Pri distribuovanom behu na hostiteľoch s rovnakou architektúrou nie je potrebné opätovné zostavenie pomocou samostatného kompilátora.

Popcorn vyvíja distribuovaný systém spúšťania vlákien pre jadro Linuxu.

Okrem toho možno poznamenať oznámenia trochu podobný projekt Telefork s implementáciou počiatočného prototypu API na spúšťanie podriadených procesov na iných počítačoch v klastri (ako fork(), ale prenáša rozvetvený proces na iný počítač).
Kód je napísaný v jazyku Rust a zatiaľ umožňuje len klonovanie veľmi jednoduchých procesov, ktoré nevyužívajú systémové prostriedky, ako sú súbory. Keď sa uskutoční volanie telefork, pamäť a štruktúry súvisiace s procesom sa naklonujú do iného hostiteľa, na ktorom je spustený obslužný program servera (telepad). Pomocou ptrace je pamäťový odraz procesu serializovaný a spolu so stavom procesu a registrov prenesený do iného hostiteľa. Rozhranie API vám tiež umožňuje uložiť stav procesu do súboru a obnoviť ho prostredníctvom neho.

Zdroj: opennet.ru

Pridať komentár