Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Partitioned Global Address Space – Wikipedia
Partitioned Global Address Space – Wikipedia 👆 Click Here!
aus Wikipedia, der freien Enzyklopädie

Partitioned Global Address Space (PGAS) ist ein Programmiermodell speziell für Mehrprozessorsysteme und massiv parallele Rechner. Dabei wird der globale Adressbereich des Arbeitsspeichers logisch unterteilt. Jeder Prozessor bekommt jeweils einen dieser Adressbereiche als lokalen Speicher zugeteilt. Trotzdem können alle Prozessoren auf jede Speicherzelle zugreifen, wobei auf den lokalen Speicher mit wesentlich höherer Geschwindigkeit zugegriffen werden kann als auf den von anderen Prozessoren.[1]

Ein wichtiger Vorteil der PGAS-Sprachen ist die einfach formulierbare Möglichkeit, große Datenmengen, die von einem einzelnen Prozessor nicht mehr gespeichert werden können, in den verteilten Speichern vieler Prozessoren unterzubringen, ohne dass die einheitliche Datenbeschreibung verloren geht.

Der Programmierer steht vor der Aufgabe, maximale Leistung des Programms durch geeignete Definition und Zuordnung der Programmvariablen zu erzielen. Dabei ist insbesondere eine gleichmäßige Lastverteilung auf alle beteiligten Prozessoren zu achten. Ein nur mit PGAS-Mitteln geschriebenes Programm ist manchmal sehr schwer zu überschauen, da die Zuordnung der Variablen im Programm nicht explizit auftaucht, sondern nur implizit nach festgelegten Regeln erfolgt. Deshalb gibt es in PGAS-Sprachen zusätzliche Möglichkeiten der Synchronisierung der Prozesse.

Eigenschaften

[Bearbeiten | Quelltext bearbeiten]

Ein PGAS-System hat folgende Eigenschaften:

  • Es besteht aus einer Menge von Prozessoren mit lokalen Speicher. Teile dieses lokalen Speichers können als privat deklariert werden, so dass sie nicht für andere Prozessoren sichtbar sind
  • Es hat einen Mechanismus um wenigstens einen Teil des lokalen Speichers der Prozessoren mit anderen Prozessoren zu teilen. Dies führt zwangsläufig zu Verzögerungen beim Speicherzugriff, abhängig von der Zugriffsmethode und dem Ort an dem die geteilte Speicherzelle liegt
  • Jede geteilte Speicherzelle ist mit einem Thread assoziiert (engl. affinity), entweder lokal, so dass der Zugriff schnell erfolgen kann, oder entfernt, so dass der Zugriff länger dauert. Diese Assoziation zeigt sich auch dem Programmierer, so dass dieser performant programmieren kann.[1]

Programmiersprachen

[Bearbeiten | Quelltext bearbeiten]

Alle PGAS-Programmiersprachen enthalten die oben genannten Eigenschaften, auch wenn diese unterschiedlich umgesetzt wurden. Jede Sprache erlaubt es zwischen privatem und geteiltem Speicher zu unterscheiden und außerdem die Assoziation der geteilten Speicherzellen zu bestimmen. Manche PGAS-Sprachen bieten verteilte Schleifen oder spezielle Syntax an, um auf entfernte Daten zuzugreifen.[1]

Die Prozessoren führen normale Threads aus. Die Synchronisierung beim Variablenzugriff erfolgt implizit; explizite Synchronisierung durch den Programmierer ist möglich.

  • Unified Parallel C (UPC) hat sich von C abgespalten. Es erweitert C um geteilte Arrays und geteilte Pointer, die den globalen Adressraum adressieren. UPC hat außerdem eine forall-Schleife, die Iterationen abhängig von der Assoziation ausführt.[2]
  • Co-array Fortran (CAF) basiert auf Fortran. Es erweitert Fortran-Arrays, so dass auch andere Prozesse auf sie zugreifen können. Eine Variante von Coarray Fortran ist in Fortran 2008 enthalten. Sie ist die einzige PGAS-Sprache, die eine ISO-Zertifizierung erhalten hat.
  • Titanium basiert auf Java. Sie bietet SPMD-Parallelismus, Pointer zu geteilten Daten und ein erweitertes Modell für verteilte Arrays.[3]
  • Fortress unterstützt parallele Programmierung sowohl für Mehrkernprozessoren als auch für Supercomputer. Fortress hat eine mathematische Syntax, nutzt Parallelismus wann immer möglich und ist eine Framework zur Erstellung von domänenspezifischen Sprachen.[4]
  • Chapel wird von der Firma Cray entwickelt. Sie verfolgt folgende vier Ziele: Multithreading, Locality-Awareness, Objektorientierung und generische Programmierung.[5]
  • X10 gibt es in zwei Implementierungen, einmal basierend auf Java, einmal basierend auf C++. X10 bietet Task- und Datenparallelismus. Die wesentliche Eigenschaft von X10 ist die asynchrone Taskverwaltung.[6]

Weblinks

[Bearbeiten | Quelltext bearbeiten]
  • PGAS Webseite auf pgas.org
  • Programming in the Partitioned Global Address Space Model auf upc.gwu.edu (2003; PDF-Datei; 964 kB)
  • Performance and Productivity Opportunities using Global Address Space Programming Models auf sdsc.edu (2006; PDF-Datei; 518 kB)

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. ↑ a b c George Almasi: PGAS (Partitioned Global Address Space) Languages. In: Encyclopedia of Parallel Computing. Springer US, 2011, S. 1539–1545, doi:10.1007/978-0-387-09766-4_2091. 
  2. ↑ Thomas Rauber, Gudula Rünger: Parallele Programmierung. 3. Auflage. Springer, Berlin Heidelberg 2012, ISBN 978-3-642-13604-7, S. 375–386. 
  3. ↑ Kathy Yelick, Luigi Semenzato, Geoff Pike et al.: Titanium: A High-Performance Java Dialect. In: Concurrency: Practice and Experience. Band 10, Nr. 11-13, 1998, S. 825–836, doi:10.1002/(SICI)1096-9128(199809/11)10:11/13<825::AID-CPE383>3.0.CO;2-H. 
  4. ↑ GuyL., Jr. Steele, Eric Allen, David Chase et al.: Fortress (Sun HPCS Language). In: Encyclopedia of Parallel Computing. 2011, S. 718–735, doi:10.1007/978-0-387-09766-4_190. 
  5. ↑ David Callahan, Bradford L. Chamberlain, Hans P. Zima: David Callahan, Bradford L. Chamberlain, Hans P. Zima. In: Ninth International Workshop on High-Level Parallel Programming Models and Supportive Environments. 2004, S. 52--60, doi:10.1109/HIPS.2004.1299190. 
  6. ↑ Vijay Saraswat, Bard Bloom, Igor Peshansky, Olivier Tardieu, David Grove: X10 Language Specification Version 2.3. 2013, S. 1–282 ([1] [PDF; 1,6 MB; abgerufen am 28. August 2013]). 
Abgerufen von „https://de.teknopedia.teknokrat.ac.id/w/index.php?title=Partitioned_Global_Address_Space&oldid=253206426“
Kategorien:
  • Programmierparadigma
  • Parallelverarbeitung

  • indonesia
  • Polski
  • العربية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصرى
  • Nederlands
  • 日本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українська
  • Tiếng Việt
  • Winaray
  • 中文
  • Русский
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id