Domanda

Quindi, le domande sono: 1. MapReduce Overhead è troppo elevato per il seguente problema? Qualcuno ha un'idea di quanto tempo ogni ciclo di mappa/riduce (in discoteca, ad esempio), impiega un lavoro molto leggero? 2. Esiste un'alternativa migliore a MapReduce per questo problema?

In MAP Riduci Termini il mio programma è composto da 60 fasi di mappa e 60 ridotte fasi che devono essere completate insieme in 1 secondo. Uno dei problemi di cui ho bisogno per risolvere in questo modo è una ricerca minima con circa 64000 variabili. La matrice di Hessian per la ricerca è una matrice a blocchi, 1000 blocchi di dimensioni 64x64 lungo una diagonale e una fila di blocchi all'estremo destra e in basso. L'ultima sezione di: algoritmo di inversione a matrice di blocco mostra come viene fatto. Ciascuno di Schur completa S_A e S_D possono essere calcolati in un passaggio MapReduce. Il calcolo dell'inverso fa un altro passo.

Dalla mia ricerca finora, MPI4PY sembra una buona scommessa. Ogni processo può eseguire un passaggio di calcolo e riferire al client dopo ogni passaggio e il client può riferire con nuove variabili di stato per il ciclo per continuare. In questo modo lo stato di processo non viene perso il calcolo può essere continuato con eventuali aggiornamenti.http://mpi4py.scipy.org/docs/usrman/index.html

Questo wiki contiene alcuni suggerimenti, ma qualcuno ha una direzione sulla soluzione più sviluppata:http://wiki.python.org/moin/parallelprocessing

Grazie !

È stato utile?

Soluzione

MPI è un protocollo di comunicazione che consente l'implementazione dell'elaborazione parallela passando messaggi tra i nodi del cluster. Il modello di elaborazione parallelo implementato con MPI dipende dal programmatore.

Non ho avuto esperienza con MapReduce, ma mi sembra che si tratti di un modello di elaborazione parallelo specifico ed è progettato per essere semplice da implementare. Questo tipo di astrazione dovrebbe risparmiare tempo di programmazione e potrebbe o meno fornire una soluzione adatta al tuo problema. Tutto dipende dalla natura di ciò che stai cercando di fare.

Il trucco con l'elaborazione parallela è che la soluzione più adatta è spesso specifica per i problemi e senza conoscere più dettagli sul tuo problema, è difficile formulare raccomandazioni.

Se puoi dirci di più sull'ambiente su cui stai gestendo il tuo lavoro e dove si adatta al tuo programma Tassonomia di Flynn, Potrei essere in grado di fornire alcuni suggerimenti più utili.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top