La risposta alla tua domanda principale è: Dependance. Da cosa dipende? Dipende dal campo in cui si trova il tuo set up e tecnicamente parlando ce ne sono due.
Nel primo campo, che è noto come Shared-Memory Multicore, la risposta alla tua domanda sarebbe "Sì". Con questo modello, se lo si desidera, più processori con più core condividono la memoria tramite un bus comune (che è dove si otterrebbe il collo di bottiglia) e, a parte questo, non c'è nulla che colleghi le CPU insieme. Questa è la categoria/campo/modello in cui cade il tipico computer di tipo consumer.
Nel secondo campo, noto come Multicore a memoria distribuita, la risposta alla tua domanda è "No". Questo scenario di installazione hardware indica che ogni processore ha una propria memoria privata, ma esiste un bus che collega direttamente i processori. Il protocollo per rendere possibile questo scenario è Message Passing Interface. Ciò significa anche che il gruppo di CPU non deve necessariamente trovarsi nella stessa casella o nella stessa stanza della RAM a cui accede. Probabilmente non troverai questo tipo di installazione in una casa. Pensa a strutture di ricerca, laboratori, università, aziende di medie dimensioni ecc.
Per rispondere alla tua seconda domanda. La risposta è anche dipende. E dipende dal fatto che è necessario sapere se il programma è stato scritto per utilizzare il parallelismo con le possibilità di esecuzione parallele del sistema. Anche se il tuo computer di livello consumer con uno o due processori condivide un singolo bus di memoria, se il programma è stato scritto pensando al parallelismo, noterai un aumento delle prestazioni. In caso contrario, le istruzioni seriali provenienti da un programma verranno eseguite in serie su un solo core.
Se si è interessati all'elaborazione multi-core e alla modalità di accesso alla memoria tramite un programma, una buona "risorsa gateway" per espandere il cranio è Flynn's Taxonomy. Solo Google-it ti porterà nella tana del coniglio, se sei interessato.
Modifica: per dare credito in caso di credito, consiglio vivamente la programmazione parallela professionale in C# di Gaston C. Hillar. Questo delizioso libro è stato il più rivelatore sul tema del parallelismo per me nella mia breve carriera. Aiuta a chiarire l'acqua fangosa sulle distinzioni tra la programmazione parallela e la programmazione multi-core e i tipi di elaborazione multi-core che ho appena menzionato, completi di diagrammi!
fonte
2013-05-06 22:53:06
Se stai tentando di rispondere alla tua domanda, stai fornendo una risposta a una domanda completamente diversa e non una che hai chiesto su questo thread. Hai semplicemente chiesto 1) I processori multipli competono per la stessa memoria e 2) Un programma trarrebbe vantaggio aggiungendo più processori. A cui ti ho dato due risposte perfettamente valide. Al contrario, hai affermato che le due fonti fornite offrono maggiore larghezza di banda di memoria a una singola CPU. Ancora una volta questa non è una risposta alla tua domanda ma una completamente nuova. Si prega di fornire una modifica se si desidera modificare la domanda –