Manycore-Prozessor - Manycore processor

Manycore-Prozessoren sind spezielle Arten von Mehrkernprozessoren, die für ein hohes Maß an Parallelverarbeitung ausgelegt sind und zahlreiche einfachere, unabhängige Prozessorkerne enthalten (von einigen zehn Kernen bis hin zu Tausenden oder mehr). Manycore-Prozessoren werden häufig in eingebetteten Computern und Hochleistungsrechnern verwendet .

Kontrast mit Multicore-Architektur

Manycore - Prozessoren unterscheiden sich von Multi-Core Prozessoren in von vornherein für einen höheren Grad an optimiert explizite Parallelität und für höheren Durchsatz (oder einen geringeren Stromverbrauch) auf Kosten der Latenz und senken die Leistung einzelner Thread .

Die breitere Kategorie von Mehrkernprozessoren , hingegen ist so ausgelegt , in der Regel , um effizient läuft sowohl parallel und seriellen Code und damit mehr Gewicht auf den Hoch platzieren einzelnen Thread Leistung (zB widmet mehr Silizium Ausführung außerhalb der Reihenfolge , tiefere Pipelines , mehr superskalaren Ausführungseinheiten und größere, allgemeinere Caches) und Shared Memory . Diese Techniken verwenden Laufzeitressourcen, um implizite Parallelität in einem einzelnen Thread herauszufinden. Sie werden in Systemen verwendet, in denen sie sich (mit Abwärtskompatibilität) von Single-Core-Prozessoren kontinuierlich weiterentwickelt haben. Sie haben normalerweise "wenige" Kerne (zB 2,4,8) und können in einem heterogenen System durch einen Vielkern- Beschleuniger (wie eine GPU ) ergänzt werden .

Motivation

Cache-Kohärenz ist ein Problem, das die Skalierung von Multicore-Prozessoren einschränkt. Manycore-Prozessoren können dies mit Methoden wie Message Passing , Scratchpad Memory , DMA , partitionierten globalen Adressraum oder schreibgeschützten/nicht kohärenten Caches umgehen . Ein Manycore-Prozessor, der ein Netzwerk auf einem Chip und lokale Speicher verwendet, gibt der Software die Möglichkeit, die räumliche Anordnung von Aufgaben explizit zu optimieren (z. B. wie in Werkzeugen, die für TrueNorth entwickelt wurden ).

Manycore-Prozessoren haben möglicherweise (konzeptionell) mehr mit Technologien gemeinsam, die ihren Ursprung im Hochleistungsrechnen wie Cluster und Vektorprozessoren haben .

GPUs können als eine Form von Vielkernprozessoren mit mehreren Shader-Verarbeitungseinheiten angesehen werden und sind nur für hochparallelen Code geeignet (hoher Durchsatz, aber extrem schlechte Single-Thread-Leistung).

Geeignete Programmiermodelle

Klassen von Manycore-Systemen

Spezifische Manycore-Architekturen

Spezifische Manycore-Computer mit mehr als 1 Mio. CPU-Kernen

Eine Reihe von Computern, die mit Multicore-Prozessoren gebaut sind, haben eine Million oder mehr einzelne CPU-Kerne. Beispiele beinhalten:

Siehe auch

Verweise

Externe Links