Popcorn sedang mengembangkan sistem eksekusi thread terdistribusi untuk kernel Linux.

Teknologi Virginia ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» untuk diskusi oleh pengembang kernel Linux, satu set patch dengan implementasi sistem eksekusi thread terdistribusi Popcorn (Eksekusi Thread Terdistribusi), yang memungkinkan Anda mengatur eksekusi aplikasi di beberapa komputer dengan distribusi dan migrasi thread yang transparan antar host. Dengan Popcorn, aplikasi dapat diluncurkan di satu host dan kemudian dipindahkan ke host lain tanpa gangguan. Dalam program multithread, migrasi thread individual ke host lain diperbolehkan.

Berbeda dengan proyek KRIUDengan memungkinkan status proses disimpan dan eksekusi dilanjutkan di sistem lain, Popcorn menyediakan migrasi yang mulus dan dinamis antar host selama eksekusi aplikasi, tidak memerlukan tindakan pengguna dan memastikan konsistensi memori virtual di semua host yang menjalankan thread secara bersamaan.

Bentuk tumpukan perangkat lunak popcorn tambalan ke kernel Linux dan Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° dengan pengujian yang menunjukkan bagaimana panggilan sistem Popcorn dapat digunakan untuk memigrasikan thread dalam aplikasi terdistribusi. Pada tingkat kernel, perluasan ke subsistem memori virtual telah diusulkan dengan penerapan memori bersama terdistribusi, yang memungkinkan proses pada host berbeda mengakses ruang alamat virtual yang umum dan konsisten. Koherensi halaman memori virtual dijamin oleh protokol yang mereplikasi halaman memori ke host saat dibaca dan membuat halaman memori tidak valid saat ditulis.

Interaksi antar host dilakukan menggunakan pengendali tingkat kernel untuk pesan yang dikirimkan melalui soket TCP. Perlu dicatat bahwa TCP/IP digunakan untuk menyederhanakan debugging dan pengujian selama proses pengembangan. Pengembang memahami bahwa, dari sudut pandang keamanan dan kinerja, TCP/IP bukanlah cara terbaik untuk mentransfer konten struktur kernel dan halaman memori antar host. Semua host yang menjalankan aplikasi terdistribusi harus memiliki tingkat kepercayaan yang sama. Setelah stabilisasi algoritma utama, moda transportasi yang lebih efisien akan digunakan.

Popcorn telah dikembangkan sejak 2014 sebagai proyek penelitian untuk mempelajari kemungkinan pembuatan aplikasi terdistribusi, yang utasnya dapat dijalankan pada node berbeda di heterogen sistem komputasi yang dapat menggabungkan inti berdasarkan arsitektur set instruksi yang berbeda (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Serangkaian tambalan yang diusulkan kepada pengembang kernel Linux hanya mendukung eksekusi pada host dengan CPU x86, tetapi ada juga versi Popcorn Linux yang lebih fungsional, yang memungkinkan aplikasi berjalan pada host dengan arsitektur CPU berbeda (x86 dan ARM). Untuk menggunakan Popcorn di lingkungan yang heterogen, Anda harus menggunakan yang khusus penyusun berdasarkan LLVM. Saat dijalankan secara terdistribusi pada host dengan arsitektur yang sama, pembangunan kembali dengan kompiler terpisah tidak diperlukan.

Popcorn sedang mengembangkan sistem eksekusi thread terdistribusi untuk kernel Linux.

Selain itu, dapat diperhatikan pengumuman proyek yang agak mirip Telefork dengan penerapan API prototipe awal untuk meluncurkan proses anak di komputer lain di cluster (seperti fork(), tetapi mentransfer proses bercabang ke komputer lain).
Kode ini ditulis dalam Rust dan sejauh ini hanya mengizinkan kloning proses yang sangat sederhana yang tidak menggunakan sumber daya sistem seperti file. Ketika panggilan telefork dilakukan, memori dan struktur terkait proses diklon ke host lain yang menjalankan pengendali server (telepad). Dengan menggunakan ptrace, refleksi memori dari suatu proses diserialkan dan, bersama dengan status proses dan register, ditransfer ke host lain. API juga memungkinkan Anda menyimpan status proses ke file dan memulihkannya melalui file tersebut.

Sumber: opennet.ru

Tambah komentar