Per il kernel Linux si sta sviluppando un sistema di esecuzione distribuita dei thread chiamato Popcorn.

Università Politecnica della Virginia ha proposto per discutere con gli sviluppatori del kernel Linux un insieme di patch con l'implementazione di un sistema di esecuzione distribuita dei thread Popcorn (Esecuzione Distribuita dei Thread), che consente di organizzare l'esecuzione di applicazioni su più computer con distribuzione e migrazione trasparente dei thread tra gli host. Con Popcorn, le applicazioni possono essere avviate su un host e poi spostate su un altro host senza fermare il lavoro. Nelle applicazioni multithreading è consentita la migrazione di singoli thread su altri host.

A differenza del progetto CRIU, che consente di salvare lo stato di un processo e di riprendere l'esecuzione su un altro sistema, Popcorn offre una migrazione senza soluzione di continuità e dinamica tra gli host durante l'esecuzione dell'applicazione, senza richiedere interventi da parte dell'utente e garantendo la coerenza della memoria virtuale su tutti gli host sui quali i thread vengono eseguiti simultaneamente.

Il stack software di Popcorn è composto da i patch al kernel Linux e una libreria con test che dimostrano come si possono utilizzare le chiamate di sistema Popcorn per migrare i thread nelle applicazioni eseguite in modo distribuito. A livello di kernel sono state proposte estensioni al sottosistema di memoria virtuale con l'implementazione di una memoria distribuita condivisa (distributed shared memory), che consente ai processi su host diversi di accedere a uno spazio di indirizzamento virtuale comune e coerente. La coerenza delle pagine di memoria virtuale è garantita da un protocollo che replica le pagine di memoria sugli host quando si accede a esse in lettura e invalida le pagine di memoria durante le scritture.

L'interazione tra gli host avviene tramite un gestore di messaggi attivo a livello di kernel, trasmessi tramite socket TCP. È importante notare che il TCP/IP è utilizzato per semplificare il debug e il test durante lo sviluppo. Gli sviluppatori comprendono che, in termini di sicurezza e prestazioni, il TCP/IP non è il modo migliore per trasmettere il contenuto delle strutture del kernel e delle pagine di memoria tra gli host. Tutti gli host che eseguono applicazioni distribuite devono avere lo stesso livello di fiducia. Dopo la stabilizzazione degli algoritmi principali, sarà applicato un tipo di trasporto più efficiente.

Popcorn si è sviluppato dal 2014 come progetto di ricerca per esplorare le potenzialità della creazione di applicazioni distribuite, i cui flussi possono essere eseguiti su nodi diversi in sistemi di calcolo eterogenei , in cui possono essere combinati core basati su diverse architetture di set di istruzioni (Xeon/Xeon-Phi, ARM/x86, CPU/GPU/FPGA). Il set di patch proposto per gli sviluppatori del kernel Linux supporta solo l'esecuzione su host con CPU x86, ma è disponibile anche una versione più funzionale, Popcorn Linux, che consente di eseguire applicazioni su host con diverse architetture CPU (x86 e ARM). Per utilizzare Popcorn in ambienti eterogenei, è necessario utilizzare un compilatore basato su LLVM. Durante l'esecuzione distribuita su host con la stessa architettura, non è necessaria la ricompilazione con un compilatore separato.

Per il kernel Linux si sta sviluppando un sistema di esecuzione distribuita dei thread chiamato Popcorn.

Inoltre, si può notare annuncio di un progetto simile Telefork , con l'implementazione di un prototipo iniziale di API per l'avvio di processi figlio su altri computer nel cluster (come fork(), ma sposta il processo ramificato su un altro computer).
Il codice è scritto in Rust e al momento consente di clonare solo i processi più semplici, che non utilizzano risorse di sistema come file. Durante la chiamata a telefork, la memoria e le strutture associate al processo vengono clonate su un altro host, dove è in esecuzione l'elaboratore server (telepad). Attraverso ptrace, il riflesso della memoria del processo viene serializzato e insieme allo stato del processo e ai registri viene trasferito su un altro host. L'API consente anche di salvare lo stato del processo in un file e di ripristinarlo attraverso di esso.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS - ProHoster