Eseguire processi in parallelo

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
ant1988
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1126
Iscrizione: venerdì 14 novembre 2008, 18:57
Località: Vicino Firenze

Eseguire processi in parallelo

Messaggio da ant1988 »

Salve a tutti ho 3 Raspberry ho seguito le varie guide che ho trovato su Internet per mettere in parallelo i raspberry ho fatto tutto ed é ok.
Ora mi sorge una domanda spontanea:
Se io ho l'eseguibile SOLO sul primo raspberry e voglio farlo eseguire alle altre due macchine anche se le altre due non hanno lo stesso eseguibile come faccio?
Siccome ho un miniDLNA su cui é attaccato l'HD solo sul primo raspberry sarebbe molto utile saperlo:
Anche perché con questo comando:

Codice: Seleziona tutto

mpiexec -f /home/pi/machinefile -n 3 sh /home/pi/minidlna.sh
ovviamente mi da questa risposta:

Codice: Seleziona tutto

sh: 0: Can't open /home/pi/minidlna.sh
:cry: :cry:
Devo avere per forza l'eseguibile anche negli altri due? se sì come faccio a configurare il minidlna.conf dicendogli che l'HD si trova nel primo raspberry?
cioé cosa dovrei scrivere in

Codice: Seleziona tutto

media_dir=
in modo tale che risulti che l'HD stia sul primo raspberry?
Poi visto che ho seguito questa guida (ovviamente l'ho adattata a quest'altra guida) vorrei sapere un'altra cosa:
tutte le volte devo dare

Codice: Seleziona tutto

mpiexec -f machinefile <comando>
oppure ci "pensano automaticamente i raspberry a "suddividersi" i processi?
Non sono massone ma sono dell'idea che:Giustizia,fratellanza e uguaglianza siano  concetti abbastanza belli :)
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2870
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Eseguire processi in parallelo

Messaggio da DoctorStrange »

Anche se non l'ho mai usata direttamente, la libreria MPI significa testualmente: "Message Passing Interface", ovvero è una libreria di tipo distribuito.

Quindi, su ogni nodo appartenete al cluster dove è stata installata questa libreria, ci sarà in esecuzione un processo condiviso, quindi tu non devi affatto condividere lo stesso job su tutti i nodi, ma solo sul master, e sarà questo poi che distribuirà il carico di lavoro.

Utilizzare questa libreria è però molto complesso, non sò di preciso come si fà ma credo che in fase di inizializzazione e setup devi impostare l'indirizzo per raggiungere tutti i nodi.

In pratica su ogni nodo, preso separatamente devi assicurarti che ci sia un indirizzamento assoluto, tipicamente un IP statico, e poi impostare questo IP sul master in modo che sappia dove si trovi quel particolare nodo.

A questo punto, avviando l'elaborazione sul nodo master, sarà questo a distribuire il carico sui rimanenti nodi.
Avatar utente
ant1988
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1126
Iscrizione: venerdì 14 novembre 2008, 18:57
Località: Vicino Firenze

Re: Eseguire processi in parallelo

Messaggio da ant1988 »

Innanzi tutto grazie della risposta e si nelle impostazioni ho fatto come nelle guide che diceva di mettere gli ip etc etc quindi una volta che il processo è sul master poi il carico lo divide lui... bene anzi meglio a sapersi grazie mille mi sono tolto un po' di confusione che avevo :)
Non sono massone ma sono dell'idea che:Giustizia,fratellanza e uguaglianza siano  concetti abbastanza belli :)
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: corradoventu, nik1404, TommyB1992 e 10 ospiti