Для ядра Linux развіваецца сістэма размеркаванага выканання струменяў Popcorn

Політэхнічны універсітэт Віргініі прапанаваў для абмеркавання распрацоўнікамі ядра Linux набор патчаў з рэалізацыяй сістэмы размеркаванага выканання струменяў Папкорн (Distributed Thread Execution), якая дазваляе арганізаваць выкананне прыкладанняў на некалькіх кампутарах з размеркаваннем і празрыстай міграцыяй патокаў паміж хастамі. Пры дапамозе Popcorn праграмы могуць быць запушчаны на адным хасце, пасля чаго без прыпынку працы перамешчаныя на іншы хост. У шматструменных праграмах дапускаецца міграцыя на іншыя хасты асобных патокаў.

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

Праграмны стэк Popcorn ўтвараюць патчы да ядра Linux і бібліятэка з тэстамі, якія дэманструюць як можна выкарыстоўваць сістэмныя выклікі Popcorn для міграцыі патокаў у размеркавана выкананых дадатках. На ўзроўні ядра прапанаваны пашырэнні да падсістэмы віртуальнай памяці з рэалізацыяй падзялянай размеркаванай памяці (distributed shared memory), якая дазваляе працэсам на розных хастах звяртацца да агульнай і ўзгодненай віртуальнай адраснай прасторы. Узгодненасць старонак віртуальнай памяці забяспечваецца пры дапамозе пратакола, які рэплікуе на хост старонкі памяці пры звароце да іх на чытанне і анулюе старонкі памяці пры выкананні запісу.

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

Popcorn развіваецца з 2014 года як даследчы праект па вывучэнні магчымасцяў стварэння размеркаваных прыкладанняў, плыні якіх могуць выконвацца на розных вузлах у гетэрагенных вылічальных сістэмах, у якіх могуць камбінавацца ядры на базе розных архітэктур набору каманд (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Прапанаваны распрацоўнікам ядра Linux набор патчаў падтрымлівае толькі выкананне на хастах з CPU x86, але маецца і больш функцыянальны варыянт Popcorn Linux, які дазваляе выконваць прыкладанні на хастах з рознымі архітэктурамі CPU (x86 і ARM). Для выкарыстання Popcorn у гетэрагенных асяродках неабходна выкарыстоўваць спецыяльны кампілятар на аснове LLVM. Пры размеркаваным выкананні на хастах з адной архітэктурай перазборка асобным кампілятарам не патрабуецца.

Для ядра Linux развіваецца сістэма размеркаванага выканання струменяў Popcorn

Акрамя таго, можна адзначыць анонс чымсьці падобнага праекту Telefork з рэалізацыяй пачатковага прататыпа API для запуску даччыных працэсаў на іншых кампутарах у кластары (як fork(), але пераносіць які адгаліноўваецца працэс на іншы кампутар).
Код напісаны на мове Rust і пакуль дазваляе кланаваць толькі самыя простыя працэсы, у якіх не выкарыстоўваюцца сістэмныя рэсурсы, такія як файлы. Пры выкананні выкліку telefork памяць і звязаныя з працэсам структуры клануюцца на іншы хост, на якім запушчаны серверны апрацоўшчык (telepad). Пры дапамозе ptrace адлюстраванне памяці працэсу серыялізуецца і разам са станам працэсу і рэгістраў пераносіцца на іншы хост. API таксама дазваляе захоўваць стан працэсу ў файл і аднаўляць праз яго.

Крыніца: opennet.ru

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