Odpowiedź na główne pytanie brzmi: Zależy od. Od czego to zależy? To zależy od obozu, w którym znajduje się twój zestaw, a pod względem technicznym są dwa.
W pierwszym obozie, zwanym Wielordzeniową z dzieloną pamięcią, odpowiedź na twoje pytanie brzmi "Tak". W tym modelu, jeśli chcesz, wiele procesorów posiadających wiele rdzeni współdzieli pamięć za pomocą wspólnej magistrali (czyli tam, gdzie dostaniesz wąskie gardło) i poza tym, nie ma nic łączącego procesory razem. Jest to kategoria/obóz/model, w którym znajduje się typowy komputer klasy konsumenckiej.
W drugim obozie, zwanym Multicore z rozproszoną pamięcią, odpowiedź na twoje pytanie brzmi "Nie". Ten scenariusz konfiguracji sprzętu oznacza, że każdy procesor ma swoją prywatną pamięć, ale istnieje połączenie między procesorami bezpośrednio. Protokół umożliwiający stworzenie tego scenariusza to Message Passing Interface. Oznacza to również, że grupa procesorów fizycznie nie musi znajdować się w tym samym pudełku lub pomieszczeniu, do którego ma dostęp. Prawdopodobnie nie znajdziesz tego typu w domu. Pomyśl o obiektach badawczych, laboratoriach, uniwersytetach, średnich przedsiębiorstwach itp.
Aby odpowiedzieć na twoje drugie pytanie. Odpowiedź jest również w zależności od. I to zależy, ponieważ trzeba wiedzieć, czy program został napisany w celu wykorzystania paralelizmu z równoległymi możliwościami systemu. Chociaż twój komputer klasy konsumenckiej mający jeden lub dwa procesory dzieli jedną szynę pamięci, jeśli program został napisany z myślą o równoległości, zauważysz wzrost wydajności. W przeciwnym razie seryjne instrukcje pochodzące z programu będą wykonywane seryjnie tylko na jednym rdzeniu.
Jeśli interesuje Cię wielordzeniowe przetwarzanie i jak pamięć jest dostępna za pośrednictwem programu, dobrym "zasobem bramy" do rozbudowy twojej czaszki jest Flynn's Taxonomy). Po prostu Google zajmie ci króliczą dziurę, jeśli jesteś zainteresowany.
Edytuj: Aby dać kredyt tam, gdzie należy się kredyt, bardzo polecam profesjonalne programowanie równoległe w języku C# autorstwa Gastona C. Hillara. Ta zachwycająca książka była dla mnie najbardziej odkrywcza na temat paralelizmu w mojej krótkiej karierze. Pomaga w oczyszczeniu błotnistej wody z rozróżnienia między programowaniem równoległym a programowaniem wielordzeniowym i rodzajami przetwarzania wielordzeniowego, o których właśnie wspomniałem, wraz z diagramami!
Jeśli próbujesz odpowiedzieć na pytanie, udzielasz odpowiedzi na zupełnie inne pytanie, a nie na pytanie, które zadałeś w tym temacie. Po prostu zapytałeś 1) Czy wiele procesorów konkuruje o tę samą pamięć i 2) Czy program zyska, dodając więcej procesorów. Na które dostałem dwie doskonale poprawne odpowiedzi. Ty, przeciwnie, stwierdziliście, że dwa źródła, które dostarczacie, oferują większą przepustowość pamięci dla pojedynczego procesora. Znowu nie jest to odpowiedź na twoje własne pytanie, ale zupełnie nowa. Wprowadź zmianę, jeśli chcesz zmienić swoje pytanie –