Was ist parallele Speicherzuweisung?

Was ist parallele Speicherzuweisung?

Ich versuche zu verstehen, was parallele Speicherzuweisung ist.

Ich glaube, ich verstehe, was „Speicherzuweisung“ ist, aber ich verstehe den Begriff „parallel“ nicht. Hat das vielleicht etwas mit mehreren Prozessoren zu tun?

Außerdem muss ich die parallele Speicherzuweisung in C implementieren. Gibt es eine Empfehlung für eine gute Website/Seite, die ich mir ansehen sollte?

Antwort1

Die parallele Speicherzuweisung befasst sich mit den Problemen der Speicherzuweisung in einer Multithread-Anwendung, die auf einer Multi-CPU-Architektur läuft. Im Gegensatz zu Single-CPU-Architekturen muss man Speicherfreigabekonflikte (Sperren, Cache-Invalidierungen und dergleichen) berücksichtigen. Wenn beispielsweise zwei Threads auf unterschiedlichen CPUs laufen und immer wieder auf dieselbe Cache-Zeile zugreifen, kann es zu einer dramatischen Leistungsminderung kommen, da die CPU nicht von ihrem lokalen Cache-Speicher profitieren kann, da dieser immer von einer anderen CPU invalidiert wird.

Bevor Sie zu tief in die Materie einsteigen und eigene Routinen schreiben, empfehle ich Ihnen die Verwendung von Drop-in-Bibliotheken wie hoard (siehehttp://www.hoard.org/), da das Testen solcher Routinen auf Robustheit aufgrund der vielen auftretenden Race Conditions eine ziemlich anspruchsvolle Aufgabe ist.

BEARBEITEN:

Sie können das folgende Dokument prüfen:http://people.cs.umass.edu/~emery/pubs/berger-asplos2000.pdf– Es geht auch um die Hoard-Implementierung, ist aber auch lesenswert, da viele damit verbundene Probleme ausführlich erläutert werden.

verwandte Informationen