Eseguire processi in parallelo

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

Eseguire processi in parallelo

Messaggioda ant1988 » domenica 12 marzo 2017, 17:08

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
ant1988
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1087
Iscrizione: novembre 2008
Località: Vicino Firenze

Re: Eseguire processi in parallelo

Messaggioda harpefalcata » lunedì 13 marzo 2017, 10:12

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
harpefalcata
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 603
Iscrizione: ottobre 2015
Località: Roma, Italia
Desktop: Unity
Distribuzione: Ubuntu 16.04.2 Xenial Xerus
Sesso: Maschile

Re: Eseguire processi in parallelo

Messaggioda ant1988 » lunedì 13 marzo 2017, 16:23

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 :)
Avatar utente
ant1988
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1087
Iscrizione: novembre 2008
Località: Vicino Firenze


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: rai e 6 ospiti