2014-07-04 14 views
8

Quando si esegue il sshing in un sistema remoto (come un cluster con potenza di elaborazione e/o grafica molto importante) con l'inoltro X11 (ad esempio, utilizzando ssh -X o -Y), dove viene eseguito il rendering della grafica? Come gestireste un carico di lavoro che richiede molta grafica in modo tale da sfruttare l'hardware grafico del cluster? E l'esecuzione del programma in una VM sul cluster complica le cose?Dove viene eseguito il rendering quando si utilizza l'inoltro X11 con SSH?

+1

Prima di poter pubblicare questa cosa ho incontrato l'errore sugli standard di qualità e ho finito di postare una stringa di codice vuota, mi dispiace per quello. – aze

+1

ok beh hai ancora downvoted la mia domanda senza leggere il commento ... grazie mille @Joe – aze

+0

Non so cosa sia una calcolatrice IBM o come qualsiasi parte della tua domanda sia una domanda di programmazione rilevante per questo sito o per qualsiasi altra nella rete SE. – Joe

risposta

6

Nel rendering X11 avviene sempre sul lato server X11, ovvero sul sistema su cui è in esecuzione il server di visualizzazione.

Come si esegue un carico di lavoro ad alta intensità grafica in modo tale da sfruttare l'hardware grafico del cluster?

Eseguendo il server X11 sui sistemi dei cluster e reindirizzare l'output al sistema di visualizzazione. Ci sono diversi progetti che implementano questo: VirtualGL e Chromium per nominarne due.

Tuttavia il mio preferito è usare Xpra con un server X che utilizza la GPU. Tuttavia, lo sfortunato inconveniente è che con il modello di driver attuale di Xorg non è possibile condividere la GPU tra i server X. Sì, è possibile eseguire più server X contemporaneamente, ma solo uno può utilizzare la GPU in qualsiasi momento.

Inoltre, tenere presente che il rendering della GPU in cluster non è facile. Finora NVidia è l'unico fornitore di GPU a fornire una soluzione di rendering di cluster remoto chiavi in ​​mano.

+0

Se ho capito bene, quando si usa ssh, l'inoltro X11 significa inviare le istruzioni di rendering al server client X11? usando una VM su Linux posso usare Xpra? – aze

+0

@ user3714670: Sì, questo è il punto di inoltro X: i comandi di rendering vengono infine inviati al sistema su cui gira il server X. Tuttavia, si tenga presente che molti toolkit "moderni", per ragioni discutibili, hanno scelto di eseguire il rendering e di trasferire solo l'immagine finita. Questo è inefficiente su se stesso, ma si aggiunge al fatto che il trasferimento di bitmap di grandi dimensioni, non compresso non aiuta con il consumo di larghezza di banda bassa, questo è un grosso problema. X11 su reti può essere molto performante se i client non sono scritti da scimmie lobotomizzate (lì, la mia opinione sugli scrittori "moderni" presi è fuori). – datenwolf

+0

@ user3714670: Non è affatto un problema utilizzare Xpra con VM. Tuttavia, il problema più grande sarà che è molto difficile, se non impossibile, fornire alle macchine virtuali l'accesso alla GPU del sistema host. Quindi, se stai utilizzando un sistema in una VM, ospitato su un sistema con una GPU capace, il normale inoltro X sarà in realtà la scelta preferibile. Tuttavia, consiglio vivamente di non utilizzare l'inoltro SSH X, ma di aprire un canale X su TCP non criptato. Se la tua VM ha un canale virtio per il collegamento in rete al sistema host, questo aggiunge un piccolo overhead accettabile. Il rendering indiretto GLX è supportato fino a OpenGL-2.1 – datenwolf