icecream

Se avete problemi con l'installazione e la configurazione di Slackware64 postate qui. Non usate questo forum per argomenti che trattano la Slackware32 o generali... per quelli usate rispettivamente il forum Slackware e Gnu/Linux in genere.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware64 usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware64, se l'argomento è Slackware32 o generale usate rispettivamente il forum Slackware o Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
commodore64
Linux 0.x
Linux 0.x
Messaggi: 77
Iscritto il: gio 23 lug 2009, 9:33

icecream

Messaggio da commodore64 »

buonasera al gruppo.
giocherellando con due host slackware current ho provato a mettere in moto icecream ,per provare l'ebrezza della compilazione distribuita.
il nodo .137 virtuale ed il nodo .223 fisico . ambedue slack current.
ebbene , la cpu del nodo .223 (8 core , 8 gb ram) e' praticamente a zero , e la cpu della VM .137 (1 core, 1/2 gb ram) e' a palla. non ho errori nei log, ma mi piacerebbe riuscire nell'impresa di svolgere in parallelo una compilazione. qualcuno ha voglia/tempo di aiutarmi? magari ci esco un how-to

grazie

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3087
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.14.6
Desktop: lxde
Località: Pisa
Contatta:

Re: icecream

Messaggio da ponce »

se puo' esserti utile su LQ c'e' gia' una guida

https://www.linuxquestions.org/question ... 175647336/

commodore64
Linux 0.x
Linux 0.x
Messaggi: 77
Iscritto il: gio 23 lug 2009, 9:33

Re: icecream

Messaggio da commodore64 »

e' la prima cosa che ho letto.
tuttavia non funziona. il nodo 2 proprio non vuole saperne di compilare.
ho. chi ha altre guida da sottopormi e' ben accetto.

grazie

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3087
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.14.6
Desktop: lxde
Località: Pisa
Contatta:

Re: icecream

Messaggio da ponce »

strano, qui funziona regolarmente...

controlla che i demoni siano attivi sulla macchina: sul nodo principale io ho attivato sia lo scheduler ("chmod +x /etc/rc.d/rc.icecc-scheduler ; /etc/rc.d/rc.icecc-scheduler start", che sta in ascolto sulle porte 8765 e 8766) che il demone ("chmod +x /etc/rc.d/rc.iceccd ; /etc/rc.d/rc.iceccd start", che sta in ascolto sulla porta 10245)

Codice: Seleziona tutto

# pgrep -a ice
969 /usr/sbin/icecc-scheduler -n mia.lan -d -l /var/log/icecream/icecc-scheduler.log
976 /usr/sbin/iceccd -n mia.lan -d -b /var/cache/icecream -l /var/log/icecream/iceccd.log -m 13
sugli altri membri del cluster solo il demone

Codice: Seleziona tutto

# pgrep -a ice
955 /usr/sbin/iceccd -n mia.lan -d -b /var/cache/icecream -l /var/log/icecream/iceccd.log -m 13
poi viene usato semplicemente perche' nella variabile PATH i comandi che usano icecc vengono prima di quelli dei compilatori tradizionali: la variabile PATH viene cosi' aggiornata quando il tuo utente fa login dal file di profilo /etc/profile.d/icecream.sh e solo se il file /etc/rc.d/rc.iceccd e' eseguibile

Codice: Seleziona tutto

# set | grep ^PATH
PATH=/usr/lib64/zulu-openjdk17/bin:/usr/libexec/icecc/bin:/usr/lib64/go1.24.2/go/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/libexec/kf5:/usr/lib64/qt5/bin:/usr/lib64/qt6/bin:/root/bin
# ls -la /usr/libexec/icecc/bin
total 8
drwxr-xr-x 2 root root 4096 May  5 09:24 ./
drwxr-xr-x 3 root root 4096 May  5 09:24 ../
lrwxrwxrwx 1 root root   14 May  5 09:24 c++ -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 cc -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 clang -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 clang++ -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 g++ -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 gcc -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 x86_64-slackware-linux-c++ -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 x86_64-slackware-linux-clang -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 x86_64-slackware-linux-clang++ -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 x86_64-slackware-linux-g++ -> /usr/bin/icecc*
lrwxrwxrwx 1 root root   14 May  5 09:24 x86_64-slackware-linux-gcc -> /usr/bin/icecc*
quindi, nel caso non ci sia quel percorso, potresti, per esempio, sloggarti e riloggarti e vedere se la variabile PATH viene aggiornata regolarmente.

occhio che, come spiegato nella guida, le macchine devono essere nel solito dominio: il nome del cluster e' ricavato dal comando "hostname -d", che normalmente restituisce il nome di dominio, quindi se non funziona (o i demoni non partono) controlla anche su entrambe le macchine /etc/HOSTNAME, /etc/hosts e /etc/resolv.conf (magari postali).

commodore64
Linux 0.x
Linux 0.x
Messaggi: 77
Iscritto il: gio 23 lug 2009, 9:33

Re: icecream

Messaggio da commodore64 »

grazie per la risposta, ti posto le configurazioni del nodo1 , virtuale, se mi dai conferma che e' tutto corretto allora poi posto le conf del nodo2 , fisico.
nodo1 = scheduler + iceccd , 192.168.1.238 , virtuale, 1gb ram , 1 core processore.
hostname = slackvm.dominio.lan , nessun firewall ,

root@slackvm:~# pgrep -a ice
742 /usr/sbin/icecc-scheduler -n dominio.lan -d -l /var/log/icecream/icecc-scheduler.log
749 /usr/sbin/iceccd -n dominio.lan -d -b /var/cache/icecream -l /var/log/icecream/iceccd.log -m 2 -vvv

root@slackvm:/etc/profile.d# cat icecream.csh
#!/bin/csh
# Only add the icecream directory to the PATH if we see that iceccd is
# supposed to be running on this machine:

if ( -x /etc/rc.d/rc.iceccd ) then
setenv PATH /usr/libexec/icecc/bin:${PATH}
endif

root@slackvm:/etc/profile.d# cat icecream.sh
#!/bin/sh
# Only add the icecream directory to the PATH if we see that iceccd is
# supposed to be running on this machine:

if [ -x /etc/rc.d/rc.iceccd ]; then
export PATH=/usr/libexec/icecc/bin:$PATH
fi

root@slackvm:/etc/profile.d# icecc --version
ICECC 1.4.0

rete a gigabit, testata con iperf3

root@slackvm:/etc/profile.d# set | grep ^PATH
PATH=/usr/libexec/icecc/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/lib64/libexec/kf5:/usr/lib64/qt5/bin:/usr/lib64/qt6/bin
root@slackvm:/etc/profile.d#



a me sembra tutto in ordine. se vedi errori allora li correggo.

domanda: puo' essere che la compilazione avvenga effettivamente anche sul nodo2 ma la cpu rimanga a 0% ? non ha senso lo so, ma non mi viene in mente altro

grazie

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3087
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.14.6
Desktop: lxde
Località: Pisa
Contatta:

Re: icecream

Messaggio da ponce »

Devi dare un make con un numero di job maggiore dei processori che hai per vederli eseguiti anche sull'altro nodo...

Ma hai controllato anche l'host fisico? posta anche i dati relativi a quello (non dimenticare le informazioni relative al nome host e dominio)...

commodore64
Linux 0.x
Linux 0.x
Messaggi: 77
Iscritto il: gio 23 lug 2009, 9:33

Re: icecream

Messaggio da commodore64 »

ecco le configurazioni del nodo 2 , fisico.

hostname = slack-c.dominio.lan

root@slack-c:/home/claudio# pgrep -a ice
994 /usr/sbin/iceccd -n dominio.lan -d -b /var/cache/icecream -l /var/log/icecream/iceccd.log --log-file /var/log/icecream/iceccd.log -m 9 -vvv


root@slack-c:/home/claudio# icecc --version
ICECC 1.4.0


root@slack-c:/etc/rc.d# cat rc.iceccd
#!/bin/sh
# Start/stop/restart iceccd.
# $Id: rc.iceccd,v 1.0 2009/04/18
# Author: Heinz Wiesinger <pprkut@liwjatan.at>
# ---------------------------------------------------------------------------

# Get the configuration information from /etc/rc.d/rc.icecream.conf:
. /etc/rc.d/rc.icecream.conf

# Start iceccd:
iceccd_start() {
if [ -x /usr/sbin/iceccd ]; then
echo "Starting distributed compiler daemon: /usr/sbin/iceccd $ICECCD_OPTIONS $ICECCD_JOBS $ICECCD_NICENESS $ICECCD_EXTRA_OPTIONS"
/usr/sbin/iceccd $ICECCD_OPTIONS --log-file /var/log/icecream/iceccd.log $ICECCD_JOBS $ICECCD_NICENESS $ICECCD_EXTRA_OPTIONS
fi
}

# Stop iceccd:
iceccd_stop() {
echo "Stopping iceccd."
killall iceccd
}

# Restart iceccd:
iceccd_restart() {
iceccd_stop
sleep 1
iceccd_start
}

case "$1" in
'start')
iceccd_start
;;
'stop')
iceccd_stop
;;
'restart')
iceccd_restart
;;
*)
echo "usage $0 start|stop|restart"
esac
root@slack-c:/etc/rc.d#



root@slack-c:/etc/profile.d# cat icecream.csh
#!/bin/csh
# Only add the icecream directory to the PATH if we see that iceccd is
# supposed to be running on this machine:

if ( -x /etc/rc.d/rc.iceccd ) then
setenv PATH /usr/libexec/icecc/bin:${PATH}
endif


root@slack-c:/etc/profile.d# cat icecream.sh
#!/bin/sh
# Only add the icecream directory to the PATH if we see that iceccd is
# supposed to be running on this machine:

if [ -x /etc/rc.d/rc.iceccd ]; then
export PATH=/usr/libexec/icecc/bin:$PATH
fi
root@slack-c:/etc/profile.d#



proprio non ho idee. ovviamente sul nodo 1 ho lanciato una compilazione con make -j 12 , ma il nodo2 proprio non vuole saperne.

boh.

grazie per le risposte

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3087
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.14.6
Desktop: lxde
Località: Pisa
Contatta:

Re: icecream

Messaggio da ponce »

ma slack-c.dominio.lan a che ip corrisponde?
potresti per favore postarmi, come ti avevo chiesto prima, i file /etc/hosts e i file /etc/HOSTNAME delle due macchine?
come sono collegate le due macchine (cavo o che altro)?

hai messo per caso opzioni aggiuntive dentro /etc/rc.d/rc.icecream.conf? perche', ad esempio, nel pgrep vedo come parametro un -vvv che io non ho nel mio processo...
prova a usare i file di default.

e poi: hai mica un firewall attivo (iptables o nftables) sulle macchine in questione? puoi controllare se le porte sono aperte con nmap da una macchina all'altra

Codice: Seleziona tutto

nmap -p 10245 ${IP}
(deve rispondere che e' "open")

commodore64
Linux 0.x
Linux 0.x
Messaggi: 77
Iscritto il: gio 23 lug 2009, 9:33

Re: icecream

Messaggio da commodore64 »

grazie per la risposte,
ho rifatto tutto, ora ho due slack current virtuali su proxmox, nodo1 e nodo2. ecco i files hosts dei nodi:

root@nodo1:/etc/rc.d# cat /etc/hosts
#
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server. Just add the names, addresses
# and any aliases to this file...
#

# For loopbacking.
127.0.0.1 localhost
::1 localhost
127.0.0.1 nodo1.dominio.lan nodo1
::1 nodo1.dominio.lan nodo1
192.168.1.138 nodo1.dominio.lan nodo1
192.168.1.56 nodo2.dominio.lan nodo2



root@nodo2:/etc/rc.d# cat /etc/hosts
#
# hosts This file describes a number of hostname-to-address
# mappings for the TCP/IP subsystem. It is mostly
# used at boot time, when no name servers are running.
# On small systems, this file can be used instead of a
# "named" name server. Just add the names, addresses
# and any aliases to this file...
#

# For loopbacking.
127.0.0.1 localhost
::1 localhost
127.0.0.1 nodo2.dominio.lan nodo2
::1 nodo2.dominio.lan nodo2
192.168.1.56 nodo2.dominio.lan nodo2
192.168.1.138 nodo1.dominio.lan nodo1


ora la prova con nmap:

root@nodo1:/etc/rc.d# nmap -p 10245 localhost
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-18 19:35 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000043s latency).
Other addresses for localhost (not scanned): ::1

PORT STATE SERVICE
10245/tcp open unknown

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
root@nodo1:/etc/rc.d# nmap -p 10245 nodo2
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-18 19:35 CEST
Nmap scan report for nodo2 (192.168.1.56)
Host is up (0.00086s latency).
rDNS record for 192.168.1.56: nodo2.dominio.lan

PORT STATE SERVICE
10245/tcp open unknown
MAC Address: BC:24:11:8C:5F:54 (Proxmox Server Solutions GmbH)

Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds
root@nodo1:/etc/rc.d#


root@nodo2:/etc/rc.d# nmap -p 10245 localhost
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-18 19:36 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000042s latency).
Other addresses for localhost (not scanned): ::1

PORT STATE SERVICE
10245/tcp open unknown

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
root@nodo2:/etc/rc.d# nmap -p 10245 nodo1
Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-18 19:36 CEST
Nmap scan report for nodo1 (192.168.1.138)
Host is up (0.00031s latency).
rDNS record for 192.168.1.138: nodo1.dominio.lan

PORT STATE SERVICE
10245/tcp open unknown
MAC Address: BC:24:11:CD:C7:F5 (Proxmox Server Solutions GmbH)

Nmap done: 1 IP address (1 host up) scanned in 0.18 seconds



nodo1 esegue schedule e iceccd , nodo2 esegue solo iceccd . compilazione di ffmpeg su nodo 1, ecco che nodo2 mostra il dito medio e non compila.
nal file di log /var/log/icecream/iceccd.log del nodo2 trovo


[2814] 2025-05-18 17:56:21: Remote compilation completed with exit code 0
[1371] 2025-05-18 19:56:21: handle_end 356 192.168.1.138
[1371] 2025-05-18 19:56:21: accepted 10 192.168.1.138 as 357
[1371] 2025-05-18 19:56:21: request for job 697
[1371] 2025-05-18 19:56:21: handle connection returned 2818
[2818] 2025-05-18 17:56:21: remote compile for file libavformat/movenchint.c
[2818] 2025-05-18 17:56:21: remote compile arguments: -D_ISOC11_SOURCE -D_FILE_OFFSET_BITS=>
[2819] 2025-05-18 17:56:21: Compile job memory limit set to 578 megabytes
[2819] 2025-05-18 17:56:21: final arguments: -x c -D_ISOC11_SOURCE -D_FILE_OFFSET_BITS=64 ->
[2805] 2025-05-18 17:56:20: <parent, waiting>
[2805] 2025-05-18 17:56:21: unexpected EOF while reading preprocessed file
[2805] 2025-05-18 17:56:21: Remote compilation aborted with exit code 143
[2818] 2025-05-18 17:56:21: <parent, waiting>
[2818] 2025-05-18 17:56:21: unexpected EOF while reading preprocessed file
[2818] 2025-05-18 17:56:21: Remote compilation aborted with exit code 143
[1371] 2025-05-18 19:56:21: handle_end 357 192.168.1.138
[1371] 2025-05-18 19:56:21: handle_end 354 192.168.1.138


ancora grazie

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3087
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.14.6
Desktop: lxde
Località: Pisa
Contatta:

Re: icecream

Messaggio da ponce »

prova a postare anche il file /var/log/icecream/iceccd.log del nodo1: postali entrambi generati con lo stesso test.

comunque vedo che in entrambi gli /etc/hosts hai messo il nome del nodo e di dominio con lo stesso indirizzo dell'interfaccia di loopback ipv4 e ipv6 e questo e' sbagliato

Codice: Seleziona tutto

127.0.0.1 nodo1.dominio.lan nodo1
::1 nodo1.dominio.lan nodo1

Codice: Seleziona tutto

127.0.0.1 nodo2.dominio.lan nodo2
::1 nodo2.dominio.lan nodo2
togli queste quattro righe dagli /etc/hosts, riavvia entrambe le macchine virtuali e riprova, potrebbe essere quello.

se non fosse quello e sei sicuro di avere delle installazioni complete di slackware current sfortunatamente sto per finire i suggerimenti...

Rispondi