Popcorn razvija distribuirani sustav izvršavanja niti za Linux kernel.

Virginia Tech ponudio za raspravu programera Linux kernela, skup zakrpa s implementacijom distribuiranog sustava izvršavanja niti Kokice (Distributed Thread Execution), koji vam omogućuje organiziranje izvršavanja aplikacija na nekoliko računala uz distribuciju i transparentnu migraciju niti između hostova. Uz Popcorn, aplikacije se mogu pokrenuti na jednom hostu i zatim premjestiti na drugi host bez prekida. U višenitnim programima dopuštena je migracija pojedinačnih niti na druge hostove.

Za razliku od projekta CRIUDopuštajući spremanje stanja procesa i nastavak izvršenja na drugom sustavu, Popcorn pruža besprijekornu i dinamičku migraciju između hostova tijekom izvršavanja aplikacije, ne zahtijevajući nikakvu akciju korisnika i osiguravajući dosljednost virtualne memorije na svim hostovima koji izvode istodobne niti.

Obrazac snopa softvera Popcorn zakrpe na Linux kernel i библиотека s testovima koji pokazuju kako se Popcorn sistemski pozivi mogu koristiti za migraciju niti u distribuiranim aplikacijama. Na razini jezgre, predložena su proširenja podsustava virtualne memorije s implementacijom distribuirane zajedničke memorije, koja procesima na različitim hostovima omogućuje pristup zajedničkom i dosljednom virtualnom adresnom prostoru. Koherentnost stranice virtualne memorije osigurana je protokolom koji replicira memorijske stranice na glavno računalo kada se čitaju i poništava memorijske stranice kada se pišu.

Interakcija između hostova provodi se pomoću rukovatelja na razini jezgre za poruke koje se prenose putem TCP utičnice. Napominje se da se TCP/IP koristi za pojednostavljenje otklanjanja pogrešaka i testiranja tijekom procesa razvoja. Razvojni programeri razumiju da, iz perspektive sigurnosti i performansi, TCP/IP nije najbolji način za prijenos sadržaja struktura kernela i memorijskih stranica između hostova. Svi hostovi koji pokreću distribuirane aplikacije moraju imati istu razinu povjerenja. Nakon stabilizacije glavnih algoritama, koristit će se učinkovitiji način prijevoza.

Popcorn se razvija od 2014. kao istraživački projekt za proučavanje mogućnosti stvaranja distribuiranih aplikacija čije se niti mogu izvršavati na različitim čvorovima u heterogena računalni sustavi koji mogu kombinirati jezgre na temelju različitih arhitektura skupa instrukcija (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Skup zakrpa predloženih razvojnim programerima Linux kernela podržava samo izvođenje na računalima s x86 CPU-om, ali postoji i funkcionalnija verzija Popcorn Linuxa, koja omogućuje izvođenje aplikacija na računalima s različitim CPU arhitekturama (x86 i ARM). Da biste koristili Popcorn u heterogenim okruženjima, morate koristiti poseban sastavljač na temelju LLVM. Kada se izvodi distribuirano na hostovima s istom arhitekturom, nije potrebna ponovna izgradnja s posebnim kompajlerom.

Popcorn razvija distribuirani sustav izvršavanja niti za Linux kernel.

Osim toga, može se primijetiti Obavijest donekle sličan projekt Televilica s implementacijom početnog prototipa API-ja za pokretanje podređenih procesa na drugim računalima u klasteru (poput fork(), ali prenosi račvasti proces na drugo računalo).
Kod je napisan u Rustu i zasad omogućuje samo kloniranje vrlo jednostavnih procesa koji ne koriste sistemske resurse poput datoteka. Kada se napravi telefork poziv, memorija i strukture povezane s procesom kloniraju se na drugo računalo koje pokreće poslužiteljski rukovatelj (telepad). Korištenjem ptracea, memorijski odraz procesa se serijalizira i, zajedno sa stanjem procesa i registrima, prenosi na drugo računalo. API vam također omogućuje spremanje stanja procesa u datoteku i vraćanje kroz nju.

Izvor: opennet.ru

Dodajte komentar