Quando dovrei usare il messaggio che passa sulla memoria condivisa?

3

Conosco un po 'su come utilizzare il passaggio dei messaggi e la memoria condivisa, ma non so ancora quando scegliere l'uno o l'altro.

Puoi parlarmi dei loro tratti (non dell'implementazione)?

    
posta Veronica 29.10.2011 - 19:09
fonte

2 risposte

6

Il riepilogo rapido:

Il parallelismo della memoria condivisa (ad es. OpenMP) è strettamente più potente del passaggio di messaggi (ad es. MPI) in quanto è possibile simulare il passaggio di messaggi con un sistema di memoria condiviso ma non viceversa . Tuttavia, è anche molto più difficile scalare il modello di memoria condivisa (ha bisogno di hardware molto elaborato e costoso quando si accede a più di una scheda di sistema) ed è anche molto più difficile da analizzare a causa del numero di possibili interazioni. Il modello di passaggio dei messaggi è molto più semplice da comprendere: si ha solo un flusso di messaggi che si desidera elaborare e si mappa in modo molto più gradevole a ciò che è effettivamente possibile con le reti, quindi è ovviamente possibile scalare in modo massiccio.

    
risposta data 29.10.2011 - 19:22
fonte
6

Dal punto di vista di come si progettano effettivamente i sistemi con loro, sono in qualche modo duali matematici, come dimostra questo adagio di Joe Armstrong, uno dei designer originali di Erlang:

With shared memory, you communicate by sharing data, with messaging, you share data by communicating.

    
risposta data 29.10.2011 - 19:38
fonte

Leggi altre domande sui tag