A Popcorn elosztott szálvégrehajtási rendszert fejleszt a Linux kernelhez.

Virginia Tech felajánlotta A Linux kernel fejlesztőinek megbeszélésére egy elosztott szál-végrehajtási rendszert megvalósító javításkészlet Popcorn (Distributed Thread Execution), amely lehetővé teszi az alkalmazások végrehajtásának megszervezését több számítógépen a szálak hosztok közötti elosztásával és átlátható migrációjával. A Popcorn segítségével az alkalmazások egy gazdagépen indíthatók, majd megszakítás nélkül áthelyezhetők egy másik gazdagépre. A többszálú programokban megengedett az egyes szálak áttelepítése más gazdagépekre.

A projekttel ellentétben CRIUAzáltal, hogy lehetővé teszi a folyamatállapot mentését és a végrehajtás folytatását egy másik rendszeren, a Popcorn zökkenőmentes és dinamikus migrációt biztosít a gazdagépek között az alkalmazás végrehajtása során, nem igényel felhasználói beavatkozást, és biztosítja a virtuális memória konzisztenciáját az összes, párhuzamos szálakat futtató gazdagépen.

Popcorn szoftver verem formában foltok a Linux kernelhez és библиотека tesztekkel, amelyek bemutatják, hogyan használhatók a Popcorn rendszerhívások szálak migrálására elosztott alkalmazásokban. Kernel szinten a virtuális memória alrendszer kiterjesztését javasolták az elosztott megosztott memória megvalósításával, amely lehetővé teszi, hogy a különböző gazdagépeken lévő folyamatok hozzáférjenek egy közös és konzisztens virtuális címtérhez. A virtuális memórialapok koherenciáját egy olyan protokoll biztosítja, amely replikálja a memórialapokat a gazdagéphez olvasáskor, és érvényteleníti a memórialapokat íráskor.

A gazdagépek közötti interakció egy kernel szintű kezelő segítségével történik a TCP socketen keresztül továbbított üzenetekhez. Megjegyzendő, hogy a TCP/IP-t a fejlesztési folyamat során a hibakeresés és a tesztelés egyszerűsítésére használják. A fejlesztők tisztában vannak azzal, hogy biztonsági és teljesítmény szempontjából a TCP/IP nem a legjobb módja a kernelstruktúrák és a memórialapok tartalmának átvitelének a gazdagépek között. Minden elosztott alkalmazásokat futtató gazdagépnek azonos szintű megbízhatósággal kell rendelkeznie. A fő algoritmusok stabilizálása után egy hatékonyabb szállítási mód kerül alkalmazásra.

A Popcorn 2014 óta fejleszt kutatási projektként az elosztott alkalmazások létrehozásának lehetőségeit, amelyek szálai különböző csomópontokon futtathatók. heterogén olyan számítási rendszerek, amelyek különböző utasításkészlet-architektúrákon (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA) alapuló magokat kombinálhatnak. A Linux kernel fejlesztőinek javasolt javításkészlet csak x86-os CPU-val rendelkező gépeken támogatja a végrehajtást, de létezik a Popcorn Linux funkcionálisabb verziója is, amely lehetővé teszi az alkalmazások futtatását különböző CPU architektúrájú gépeken (x86 és ARM). A Popcorn heterogén környezetben való használatához speciális eszközt kell használnia fordítóprogram LLVM alapján. Az azonos architektúrájú gazdagépeken történő elosztott végrehajtáshoz nincs szükség külön fordítóval történő újraépítésre.

A Popcorn elosztott szálvégrehajtási rendszert fejleszt a Linux kernelhez.

Ezen kívül meg lehet jegyezni közlemény kicsit hasonló projekt Telefork egy kezdeti prototípus API megvalósításával a gyermekfolyamatok elindításához a fürt más számítógépein (például a fork(), de átviszi az elágazott folyamatot egy másik számítógépre).
A kód Rust nyelven íródott, és eddig csak nagyon egyszerű folyamatok klónozását teszi lehetővé, amelyek nem használnak rendszererőforrásokat, például fájlokat. Telefork hívás indításakor a memória és a folyamattal kapcsolatos struktúrák egy másik gazdagépre klónozódnak, amely a szerverkezelőt (telepad) futtatja. A ptrace segítségével egy folyamat memóriareflexiója sorba rendeződik, és a folyamat állapotával és a regiszterekkel együtt átkerül egy másik gazdagépre. Az API azt is lehetővé teszi, hogy a folyamat állapotát fájlba mentse, és azon keresztül visszaállítsa.

Forrás: opennet.ru

Hozzászólás