Torna indietro   Hardware Upgrade Forum > Software > Linux, Unix, OS alternativi

DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone
Ad Appian Europe 2025, l'azienda parla molto della sua visione di cos'è e come dovrebbe essere usata l'intelligenza artificiale: è uno strumento che va sempre adoperato dalle persone, che devono rimanere responsabili dei processi all'interno dell'azienda. Non è un giocattolo con cui sperimentare, ma un aiuto per superare le sfide di business più importanti
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-03-2008, 00:00   #1
Gimli[2BV!2B]
Senior Member
 
L'Avatar di Gimli[2BV!2B]
 
Iscritto dal: Feb 2006
Città: Parma
Messaggi: 3010
Distcc: usare più pc in rete per compilare un grosso programma

Non so se sono l'unico che non ne avevo ancora sentito parlare: distcc.

Il concetto è semplice: il make di un programma è costituito da una grande quantità di pezzetti da compilare singolarmente (*.c/*.cpp nei comuni programmi c/c++), ottenuto il codice oggetto di tutte le parti alla fine si procederà a linkare il tutto in un eseguibile. Perché non dare i singoli file da compilare a più pc in una rete?

Presupposto: il makefile del programma che vogliamo compilare in questo modo dev'essere strutturato in modo da permettere la compilazione concorrenziale, quella che di solito si attiva a forza con make --jobs=NUMERO.

Ora illustrerò i passi necessari per utilizzare questo demone in una distribuzione Debian based.


Installazione (da root):
  • apt-get install distcc distccmon-gnome -> considero una buona idea non mettere in avvio il demone, ma non nel modo impostato dall'installazione, quindi diciamo pure di sì quando ce lo chiede.


Impostazioni (tutto da root):
  • rcconf -> disabilitare l'avvio automatico del nostro nuovo demone.
  • nano /etc/default/distcc ->
    • ALLOWEDNETS: le reti a cui sarà consentita la comunicazione col demone;
    • LISTENER: l'indirizzo dell'interfaccia su cui porre in ascolto il demone;
    • ZEROCONF: scegliamo se usare zeroconf, io ho a disposizione tre pc ed odio gli eccessivi automatismi, quindi l'ho disattivato.
    Ecco per esempio il mio /etc/default/distcc:
    Codice:
    STARTDISTCC="true"
    ALLOWEDNETS="127.0.0.1 192.168.0.0/16"
    LISTENER="192.168.1.2"
    NICE="10"
    ZEROCONF="false"
  • nano /etc/distcc/hosts -> Questo passo dovrebbe essere necessario solo se decidete di non utilizzare zeroconf.
    Se volete seguire la mia strada eliminate +zeroconf ed inserite localhost host1 host2 hostN (cioè i nomi o gli ip di tutti i pc che vorrete far compilare insieme).
    Ad esempio il mio /etc/distcc/hosts è questo:
    Codice:
    localhost phoenix
  • Ripetere i passi precedenti su tutti i pc che si vogliono utilizzare.
    Visto che alcuni comandi sono uguali per tutti vi ricordo che esiste un modo per inviarli contemporaneamente a più pc: clusterssh oppure "Manda le immissioni a tutte le sessioni" di Konsole (attivabile cliccando col destro su una delle linguette aperte), ma ci sono vari altri modi...


Utilizzo:
  1. avviamo i demoni su tutti i pc (/etc/init.d/distcc start);
  2. entriamo nella nostra cartella dei sorgenti ed esportiamo qualche variabile d'ambiente:
    Codice:
    PATH=/usr/lib/distcc/:$PATH
    CONCURRENCY_LEVEL=4
    export CONCURRENCY_LEVEL PATH
    • CONCURRENCY_LEVEL è importante: indica quante parti si potranno compilare al massimo contemporaneamente. Il valore che mi sembra ottimale è 2*(#hosts), ma se si hanno dei multicore in rete si può salire.
    • DISTCC_HOSTS: variabile aggiuntiva che permette di impostare gli hosts. Esempio DISTCC_HOSTS="localhost host1 host2 hostN"
  3. distccmon-gnome -> questo programmino offre un'esplicativa rappresentazione grafica della ripartizione del lavoro in rete.

Ora qualsiasi make, make-kpkg, fakeroot make-kpkg eseguito su uno degli host configurati verrà distribuito in rete
(sempre se il make lo supporta e se si impostano le variabili d'ambiente, o se si salvano definitivamente...).

Spero che questa guidola possa risultare interessante e magari utile a qualcuno. Resto in attesa di eventuali segnalazioni di errori/obiezioni.
__________________
~Breve riferimento ai comandi GNU/Linux (ormai non molto breve...)
Gimli[2BV!2B] è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2008, 12:01   #2
lotus03
Member
 
Iscritto dal: Jun 2007
Messaggi: 141
molto interessante! soprattutto per un user gentoo!
lotus03 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
Presentato il nuovo obiettivo Laowa 35mm...
ESA ha proposto un aumento del budget da...
Piratare Battlefield 6? Davvero una pess...
Arriva Veeam Data Platform v13. Pi&ugrav...
Framework interrompe la vendita di RAM: ...
Tachyum inventa le memorie TDIMM: una nu...
Roborock Q7 TF+, il robot economico cost...
Osca rinasce: le auto dei fratelli Maser...
Hlpy, la tecnologia al servizio dell’ass...
Ericsson rilancia sul 5G Standalone: l’I...
Black Friday Amazon: arrivano i super-sc...
Seagate raggiunge 6,9 TB per piatto con ...
Samsung lancia la One Shot Challenge: co...
Dell: il passaggio da Windows 10 a Windo...
Black Friday Speaker: JBL, Bose, Sony, M...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v