Valutazione attuale: 0 / 5

Stella inattivaStella inattivaStella inattivaStella inattivaStella inattiva
 

Guida a Boinc su WSL

 

Su stimolo di un nostro volontario abbiamo provato a far funzionare il client boinc in una macchina virtuale linux (ci sono progetti che hanno solo il client linux oppure usano il wrapper per Windows) senza utilizzare il "classico" VirtualBox.
La possibilità offerta da Microsoft è quella di usare WSL (Windows Subsystem for Linux), integrato in Windows 10, con prestazioni decisamente migliori rispetto a VirtualBox.

Questa la guida


Inviato: 31/03/2021 12:21 da boboviz #136017
Avatar di boboviz

boboviz ha scritto: Ahia, mi sa che allora devo metter giù una versione 0.8 in cui spiego questa cosa..

Fatto, caricata la versione 0.8, dove ho aggiunto le note di Astroale e ho corretto tutta una serie di errori ed imprecisioni.
Inviato: 21/03/2021 16:23 da boboviz #135946
Avatar di boboviz

astroale ha scritto: mi spiego: se virtualbox potevi farlo girare a priorità IDLE:4 (ma non serviva a nulla visto che girava dentro il kernel), i processi BOINC di WSL girano a priorità normale (8, lato win10) e dopo molte ore dal boot questo inizia a pesare sul sistema e a laggare alcune app che lavorano in rete. Non ho trovato ancora il modo di abbassarne la priorità, ma è un'esposizione lunga se mai ne parlerò in un altro post.

Ho fatto vari test e non ho trovato rallentamenti con WSL. Su che progetti li hai trovati??

Riguardo WSL1 vs WSL2 come prestazioni lato BOINC non sarei così sicuro che il 2 sia superiore all'1, sulla carta la gestione migliorata del filesystem non porta grandi vantaggi al criceto, mentre tutte le funzioni aggiuntive potrebbero pesare sulla CPU.

Come prestazioni direi che siamo lì lì, ma la WSL2 ha così tante funzionalità in più che non ha senso utilizzare la 1 (a meno che non ci siano particolari problemi)

Dici che anche la seconda, dopo il riavvio del pc, viene persa e che è comunque necessario andare ad editare la chiave di registro??

:approve: Purtroppo si, inoltre il comando boinccmd.exe che supporta l'opzione deve essere vecchio di anni, non credo che nessuno con un PC win10 abbia una versione così antica di BOINC installata. Anche se scrivere la parte dell'edit del registro è sempre un po pericoloso (molta gente scappa (e a ragione) di fronte a regedit), del resto è un tipo di tuning che serve solo in casi particolari come il mio problema del client radioactive solo per linux 32.

Ahia, mi sa che allora devo metter giù una versione 0.8 in cui spiego questa cosa..
Inviato: 21/03/2021 16:19 da boboviz #135945
Avatar di boboviz

boboviz ha scritto: Mi sa che aggiungo pure questi due link al pdf....

Fatto. E' on-line la nuova versione, la 0.7
Inviato: 12/03/2021 18:23 da astroale #135879
Avatar di astroale

boboviz ha scritto:

astroale ha scritto: Non ho molta confidenza con docker, ma se hanno dockerizzato pure un tool storico come IRAF, non capisco perchè non fanno una versione dockerizzata di BOINC, poterlo usare in modo standard indipendente dalla distribuzione semplificherebbe molto le cose ... e le guide.

Avevo proposto di fare una versione per WSL di Boinc (che, dati alla mano, ha prestazioni decisamente migliori di Virtualbox) e mi è stato risposto che non tutti hanno Windows 10. C'è da considerare, però, che la richiesta io l'avevo fatta che c'era solo WSL1, che non era il massimo.

Aggiungerei che installare WSL non è per gli allergici alla cmd-line mentre installare virtualbox è più semplice. Inoltre dopo qualche giorno inizio ad accorgermi che WSL tutto sommato rende il PC più fluido ma in certe condizioni continua a dare problemi, mi spiego: se virtualbox potevi farlo girare a priorità IDLE:4 (ma non serviva a nulla visto che girava dentro il kernel), i processi BOINC di WSL girano a priorità normale (8, lato win10) e dopo molte ore dal boot questo inizia a pesare sul sistema e a laggare alcune app che lavorano in rete. Non ho trovato ancora il modo di abbassarne la priorità, ma è un'esposizione lunga se mai ne parlerò in un altro post.

Riguardo WSL1 vs WSL2 come prestazioni lato BOINC non sarei così sicuro che il 2 sia superiore all'1, sulla carta la gestione migliorata del filesystem non porta grandi vantaggi al criceto, mentre tutte le funzioni aggiuntive potrebbero pesare sulla CPU. Vedremo, nel WE potrei fare la migrazione virtualbox->WSL del secondo criceto (anche lui con sensore Radioactive e win10). Sul questo dovrei poter installare WSL2 forse così in qualche settimana possiamo fare un confronto 1-2, anche se le CPU sono piuttosto diverse.

@Bobo: a proposito ricordati della patch alla guida di cui avevamo parlato in PM

Ho messo il doppio comando boinccmd.exe e boinc.exe per le versioni vecchie e nuove del client.
Dici che anche la seconda, dopo il riavvio del pc, viene persa e che è comunque necessario andare ad editare la chiave di registro??

:approve: Purtroppo si, inoltre il comando boinccmd.exe che supporta l'opzione deve essere vecchio di anni, non credo che nessuno con un PC win10 abbia una versione così antica di BOINC installata. Anche se scrivere la parte dell'edit del registro è sempre un po pericoloso (molta gente scappa (e a ragione) di fronte a regedit), del resto è un tipo di tuning che serve solo in casi particolari come il mio problema del client radioactive solo per linux 32.
Inviato: 12/03/2021 17:18 da boboviz #135877
Avatar di boboviz

corla99 ha scritto: Boinc in versione container Docker esiste e lo sto usando sui miei pc linux.
DockerHub e GitHub


MOLTO interessanti questi due link (tra l'altro vedo che sono stati recentemente aggiornati)
Sembra pure ci sia supporto alle gpu, ma dovrei studiarmelo meglio.
Mi sa che aggiungo pure questi due link al pdf....
Inviato: 12/03/2021 17:15 da boboviz #135876
Avatar di boboviz

astroale ha scritto: Non ho molta confidenza con docker, ma se hanno dockerizzato pure un tool storico come IRAF, non capisco perchè non fanno una versione dockerizzata di BOINC, poterlo usare in modo standard indipendente dalla distribuzione semplificherebbe molto le cose ... e le guide.

Avevo proposto di fare una versione per WSL di Boinc (che, dati alla mano, ha prestazioni decisamente migliori di Virtualbox) e mi è stato risposto che non tutti hanno Windows 10. C'è da considerare, però, che la richiesta io l'avevo fatta che c'era solo WSL1, che non era il massimo.

@Bobo: a proposito ricordati della patch alla guida di cui avevamo parlato in PM

Ho messo il doppio comando boinccmd.exe e boinc.exe per le versioni vecchie e nuove del client.
Dici che anche la seconda, dopo il riavvio del pc, viene persa e che è comunque necessario andare ad editare la chiave di registro??
Inviato: 11/03/2021 19:07 da corla99 #135869
Avatar di corla99
Boinc in versione container Docker esiste e lo sto usando sui miei pc linux.
DockerHub e GitHub

La guida che ho fatto sui client multipli utilizza la versione con Docker, dovrebbe essere applicabile anche su wsl per la maggior parte delle parti
Inviato: 11/03/2021 18:22 da astroale #135867
Avatar di astroale
Non ho molta confidenza con docker, ma se hanno dockerizzato pure un tool storico come IRAF, non capisco perchè non fanno una versione dockerizzata di BOINC, poterlo usare in modo standard indipendente dalla distribuzione semplificherebbe molto le cose ... e le guide.
@Bobo: a proposito ricordati della patch alla guida di cui avevamo parlato in PM
Inviato: 11/03/2021 14:07 da boboviz #135860
Avatar di boboviz
Nella guida mi sono dimenticato di mettere che, sotto WSL2, è possibile virtualizzare pure la gpu, con il supporto ufficiale sia di Nvidia che di AMD con driver video appositi. (tra l'altro l'utima versione Nvidia ha anche il supporto OpenCl 3 al suo interno).
Cosa dite, la metto una nota a questa cosa??

P.S.
Molto interessante questo progetto : una macchina docker per WSL su cui provare le gpu Nvidia (nella immagine dell'articolo hanno lanciato una simulazione nbody). A naso ci potrebbe girare Folding....
Inviato: 03/03/2021 21:16 da boboviz #135772
Avatar di boboviz
Pubblicata la nuova versione.
Ho aggiunto la parte di gestione del client in WSL attraverso il manager in Boinc.
Speriamo di aver scritto tutto giusto! "Altrimenti mi corrigerete" (cit.)

P.S. Non potevo non mettere i ringraziamenti a Saba e Astroale!!
Inviato: 03/03/2021 20:19 da sabayonino #135771
Avatar di sabayonino
:wtf:
System has not been booted with systemd as init system

niente systemd
Inviato: 03/03/2021 17:18 da astroale #135769
Avatar di astroale

sabayonino ha scritto: Che versione di *buntu stai utilizzando ?
I comandi per avviare il client fanno riferimento al gestore di servizio sysvinit & compagnia bella.

Ubuntu utilizza systemd da un bel pò di tempo

Avvio servizio

sudo systemctl start boinc-client

Ho installato l'app della ubuntu 20.04 LTS:
~$ uname -a
Linux -hostname- 4.4.0-18362-Microsoft #1049-Microsoft Thu Aug 14 12:01:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux
~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.2 LTS
Release:        20.04
Codename:       focal

Avevo provato, ma ottengo quest'errore e il servizio non parte:
~$ sudo systemctl start boinc-client
System has not been booted with systemd as init system (PID 1). Can't operate.
Failed to connect to bus: Host is down

Il messaggio "Could not adjust oom_score of task" è erratico non lo da sempre, e il servizio parte lo stesso.

Una cosa bella è che posso vedere i singoli criceto-processi anche da task manager o da process explorer di windows.
Inviato: 03/03/2021 11:47 da boboviz #135761
Avatar di boboviz

astroale ha scritto: Certo, ben contento di essere utile.

Ti ho mandato un pm...
Inviato: 03/03/2021 11:24 da astroale #135759
Avatar di astroale

boboviz ha scritto:

astroale ha scritto: Nel caso vi interessi, ho cambiato la porta gui_rpc lato windows in questo modo:

lanciare regedit
andare nel path:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BOINC
cambiare la voce ImagePath da:
C:\SimplePrg\BOINC\boinc.exe -daemon
a
C:\SimplePrg\BOINC\boinc.exe -daemon -gui_rpc_port 31200

Ora il BOINC Manager di windows si collega di default al lato WSL, per connettersi al servizio windows:
File -> Selezione computer: 127.0.0.1:31200
per tornare al lato WSL
File -> Selezione computer: 127.0.0.1:31416


Se inserisco questa parte nella guida, ti dispiace?

Certo, ben contento di essere utile.
Inviato: 03/03/2021 10:36 da boboviz #135758
Avatar di boboviz

astroale ha scritto: Nel caso vi interessi, ho cambiato la porta gui_rpc lato windows in questo modo:

lanciare regedit
andare nel path:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BOINC
cambiare la voce ImagePath da:
C:\SimplePrg\BOINC\boinc.exe -daemon
a
C:\SimplePrg\BOINC\boinc.exe -daemon -gui_rpc_port 31200

Ora il BOINC Manager di windows si collega di default al lato WSL, per connettersi al servizio windows:
File -> Selezione computer: 127.0.0.1:31200
per tornare al lato WSL
File -> Selezione computer: 127.0.0.1:31416


Se inserisco questa parte nella guida, ti dispiace?
Inviato: 03/03/2021 10:31 da boboviz #135757
Avatar di boboviz

astroale ha scritto: Alla fine sono riuscito a riattivare il client del radioactive lato windows, lanciando BOINC come servizio su una porta diversa.
Non era una cosa superflua dato che il radioactive non ha client per linux 64 bit, quindi non potevo lanciarlo su WSL ubuntu.

Urca, stai provando una configurazione veramente particolare (per dire, io per i test avevo semplicemente agganciato rosetta, fermando il client su Windows). Bravo!
Inviato: 03/03/2021 10:16 da boboviz #135756
Avatar di boboviz

astroale ha scritto: L'elaborazione su WSL1, rispetto a Virtualbox, lascia il PC veramente fluido, più nessuna traccia di lag. Vedremo nelle prossime settimane come va il RAC.

Ma il WSL2 non ti parte per problemi di sistema?
No, perchè c'è stato un bel salto dall'1 al 2
Inviato: 03/03/2021 10:01 da Nubman #135755
Avatar di Nubman

astroale ha scritto: Quando inizierò ad elaborare mi piacerebbe far partire o spostare il client WSL-ubuntu su una porta diversa dalla 31416 in modo da lasciare il client windows col sensore radioactive e l'elaborazione su linux, e potrei perfino (toccando i vari file .cfg) usare la gui windows sul client WSL modificando la porta con una cosa del tipo:

boinccmd --gui_rpc_port N
come suggerito qui , ma in questa versione questo comando sembra sia stato tolto da boinccmd, dovrebbe essere sempre presente nel client ma non ho idea di come settarlo.

Qualche idea su come modificare la porta per gui_rpc ?

Potresti sfruttare questa guida che ho scritto per altro, ma l'obiettivo è lo stesso: modificare il comando di avvio di BOINC.
www.boincitaly.org/f...ufficiale-private-gfn-server.html#135477

Come comando di avvio di boinc mediante systemd ti serve il seguente:
/usr/bin/boinc --gui_rpc_port 31200 --dir /var/lib/boinc-client
(vedi se funziona, non sono certo)


Altrimenti, senza toccare file di sistema e il client principale (magari settato in uno stato di "elaborazione sospesa"), potresti settare un secondo client così:
cd ~
mkdir .boinc-client2
boinc --allow_multiple_clients --gui_rpc_port 31200 --dir ".boinc-client2" &
e per chiuderlo lanci il comando:
boinccmd --host localhost:31200 --passwd $(cat .boinc-client2/gui_rpc_auth.cfg) --quit
Inviato: 03/03/2021 09:10 da sabayonino #135753
Avatar di sabayonino
Che versione di *buntu stai utilizzando ?
I comandi per avviare il client fanno riferimento al gestore di servizio sysvinit & compagnia bella.

Ubuntu utilizza systemd da un bel pò di tempo

Avvio servizio
sudo systemctl start boinc-client

Riavviare servizio
sudo systemctl restart boinc-client

Fermare servizio
sudo systemctl stop boinc-client

Abilitare il servizio all'avvio del sistema
sudo systemctl enable boinc-client

Disabilitare il servizio
sudo systemctl disable boinc-client

Vedi anche
systemctl --help
Inviato: 03/03/2021 01:05 da astroale #135752
Avatar di astroale
Alla fine sono riuscito a riattivare il client del radioactive lato windows, lanciando BOINC come servizio su una porta diversa.
Non era una cosa superflua dato che il radioactive non ha client per linux 64 bit, quindi non potevo lanciarlo su WSL ubuntu.

L'elaborazione su WSL1, rispetto a Virtualbox, lascia il PC veramente fluido, più nessuna traccia di lag. Vedremo nelle prossime settimane come va il RAC.
Grazie per il supporto, e ora ... :run:

Nel caso vi interessi, ho cambiato la porta gui_rpc lato windows in questo modo:

lanciare regedit
andare nel path:
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BOINC
cambiare la voce ImagePath da:
C:\SimplePrg\BOINC\boinc.exe -daemon
a
C:\SimplePrg\BOINC\boinc.exe -daemon -gui_rpc_port 31200

Ora il BOINC Manager di windows si collega di default al lato WSL, per connettersi al servizio windows:
File -> Selezione computer: 127.0.0.1:31200
per tornare al lato WSL
File -> Selezione computer: 127.0.0.1:31416
Inviato: 02/03/2021 21:47 da astroale #135750
Avatar di astroale
Ringrazio tutti per la guida, ho provato subito, ma ho incontrato qualche problema.

Per ora continuo con virtualbox fino a svuotare la coda di WU, intanto avevo già installato WSL 1, tempo fa nonostante abbia tutti i prerequisiti non ha installato WSL 2, poco male, anche se allo start del client boinc ottengo alcuni errori:
~$ sudo /etc/init.d/boinc-client start
 * Starting BOINC core client: boinc                                                                             [ OK ]
 * Setting up scheduling for BOINC core client and children:                                                            chrt: failed to set pid 2510's policy: No such process
chrt: failed to set pid 2510's policy: No such process
chrt: failed to set pid 2510's policy: No such process
Could not adjust oom_score of task
anche lo stato ha qualche problema:
~$ sudo /etc/init.d/boinc-client status
 * Status of BOINC core client: running
 * Scheduling of BOINC core client: 2476
pid 2476's current scheduling policy: SCHED_OTHER
pid 2476's current scheduling priority: 0
 * Scheduling of BOINC core client's children:  2881
chrt: failed to get pid 2881's policy: No such process
il comando netstat su WSL non mi da nessuna porta attiva, sarei aspettato almeno la 31416, invece se lascio BOINC aperto lato windows il comando:
boinccmd --get_state
mi torna lo stato di quello lato windows, cha al momento tengo attivo solo per far lavorare il contatore geiger del radioactive, mentre se lo spengo allora mi mostra il report di un client vuoto che suppongo sia quello lato WSL-ubuntu che nonostante gli errori sia comunque partito.

quindi credo che WSL1 (a differenza di virtualbox) condivida la stessa interfaccia di rete di windows, infatti stoppando BOINC lato windows lo start lato ubuntu qualche rara volta non da l'errore di cui sopra, in ogni caso il netstat lato windows (con BOINC-windows fermo) mostra:
C:\WINDOWS\system32>netstat -ano | findstr 31416
  TCP    0.0.0.0:31416          0.0.0.0:0              LISTENING       23180
che scompare se fermo BOINC su WSL.

Quando inizierò ad elaborare mi piacerebbe far partire o spostare il client WSL-ubuntu su una porta diversa dalla 31416 in modo da lasciare il client windows col sensore radioactive e l'elaborazione su linux, e potrei perfino (toccando i vari file .cfg) usare la gui windows sul client WSL modificando la porta con una cosa del tipo:
boinccmd --gui_rpc_port N
come suggerito qui , ma in questa versione questo comando sembra sia stato tolto da boinccmd, dovrebbe essere sempre presente nel client ma non ho idea di come settarlo.

Qualche idea su come modificare la porta per gui_rpc ?
Inviato: 01/03/2021 17:45 da boboviz #135740
Avatar di boboviz
Caricata nuova versione (la 0.4) con correzioni varie e alcuni dettagli spiegati meglio.
Inviato: 01/03/2021 17:31 da boboviz #135739
Avatar di boboviz

zioriga ha scritto: Nel senso che l'ambiente Linux viene visto come se fosse "una virtualbox" e quindi si può passare da Windows e le sue applicazioni a Linux con il suo Boinc, in maniera semplice, ed entrambi gli ambienti continuano a lavorare indipendentemente ??

Certo.
Devi pensare, però, che basandosi su hyper-v il livello di astrazione è molto più "diretto" di virtualbox (in pratica funziona come un Esx)
HW - OS (Windows) - Virtualbox - Linux - Boinc
HW - OS (Windows) WSL - Linux - Boinc
Come vedi, si "salta" un passaggio e questo lo rende effettivamente molto prestante.

E soprattutto, sarà possibile leggere i files Linux da Windows e .... viceserva ?? O si deve installare Samba o quant'altro ??

Non si deve installare nulla ( Qui c'è una veloce guida su come funziona la condivisione dei files).
Ah, MS fornisce il supporto anche per le macchine virtuali Linux.
Inviato: 01/03/2021 15:03 da zioriga #135738
Avatar di zioriga
Alla fine di questo discorso, che cosa succede ??

Nel senso che l'ambiente Linux viene visto come se fosse "una virtualbox" e quindi si può passare da Windows e le sue applicazioni a Linux con il suo Boinc, in maniera semplice, ed entrambi gli ambienti continuano a lavorare indipendentemente ??

E soprattutto, sarà possibile leggere i files Linux da Windows e .... viceserva ?? O si deve installare Samba o quant'altro ??
Inviato: 28/02/2021 23:37 da boboviz #135736
Avatar di boboviz
Caricata la nuova versione.
Adesso funzionano i link e ho aggiunto la sezione fatta dall'ottimo Saba riguardante il manager.

Per commentare questo post nel forum devi effettuare il login

Articoli

Guida WSL

Updated
Written on 26/02/2021, 18:14 by boboviz
guida-wslGuida a Boinc su WSL   Su stimolo di un nostro volontario abbiamo provato a far funzionare il client boinc in una macchina virtuale linux (ci sono...

Ultime dal Blog

Written on 19/06/2017, 14:38 by boboviz
addio-lugano-bellaCari sodali scaccolatori,come alcuni di voi sanno, il sottoscritto, oltre ad essere appassionato di Boinc, è anche "appassionato" di HPC e, visto che il...