Einheitlich parallel c

Einheitliche Parallele C (UPC)
Paradigma parallel, Nachrichtenübergang, Imperativ (prozedural), strukturiert
Entworfen von UPC -Konsortium
Stabile Version
2020.12.0/11. Dezember 2020
Disziplin tippen statisch, schwach, Manifest
OS Plattformübergreifend
Webseite UPC-Lang.org
Haupt Implementierungen
Clang upc, Gnu upc, IBM XL UPC Compiler, HP UPC, Berkeley UPC, Michigan Tech MUPC, Cray upc
Beeinflusst von
C, Ac, ac, Split-CParallele C -Präprozessor

Einheitlich parallel c (UPC) ist eine Erweiterung der C Programmiersprache designed für High Performance Computing auf großem Maßstab Parallelmaschinen, einschließlich derjenigen mit einer gemeinsamen globalen Adressraum (SMP und Numa) und denen mit Verteilter Speicher (z.B. Cluster). Das Programmierer wird mit einem einzigen präsentiert Verteilte globale Adressraum; wo gemeinsame Variablen direkt gelesen und von jedem geschrieben werden können Prozessor, aber jede Variable ist physisch mit einem einzelnen Prozessor assoziiert. UPC verwendet a Einzelprogramm, mehrere Daten (SPMD) Berechnungsmodell, bei dem die Parallelität in der Programmstartzeit festgelegt ist, typischerweise mit einer einzigen Faden der Ausführung pro Prozessor.

Um die Parallelität auszudrücken, erstreckt sich UPC ISO C 99 mit den folgenden Konstrukten:

  • Ein explizit paralleles Ausführungsmodell
  • Ein gemeinsamer Adressraum (shared Speicherqualifikation) mit Thread-lokalen Teilen (normale Variablen)
  • Synchronisationsprimitive und ein Gedächtniskonsistenzmodell
  • Explizite Kommunikation Primitive, e. g. UPC_Memput
  • Speicherverwaltung Primitive

Die UPC -Sprache entwickelte sich aus Erfahrungen mit drei anderen früheren Sprachen, die parallele Erweiterungen zu ISO C 99: AC, vorgeschlagen haben. Split-Cund parallele C -Präprozessor (PCP). UPC ist kein Superset dieser drei Sprachen, sondern ein Versuch, die besten Eigenschaften der einzelnen zu destillieren. UPC kombiniert die Programmierbarkeitsvorteile des gemeinsam genutzten Speicherprogrammierparadigmas und die Kontrolle über das Datenlayout und die Leistung des Nachrichtenübergang Programmierparadigma.

Siehe auch

Externe Links