Einheitlich parallel c
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 |
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
- Cilk
- Coarray Forran
- Kapelle
- X10
- Hochleistungs -Forran
- OpenMP
- Verteilte globale Adressraum
- Parallele Programmiermodell
- Software -Transaktionsspeicher