Chapel -- eine PGAS/HPCS-Sprache von Cray\ Cascade High Productivity Language -- CHPL

Chapel - eine PGAS/HPCS-Sprache von Cray
Cascade High Productivity Language - CHPL

Dipl. Math. F. Braun
Universität Regensburg - Rechenzentrum
http://www.uni-regensburg.de/EDV/kurs_info/brf09510/hpc/hpccpl.html
http://www.uni-regensburg.de/EDV/kurs_info/brf09510/hpc/hpccpl.pdf
http://www.uni-regensburg.de/EDV/kurs_info/brf09510/hpc/hpccpl.dvi
Dec 04, 2009

Chapter 1
Einführung in Chapel

Chapel gehört zur Gruppe der parallelen Sprachen auf höherem Abstraktionsniveau. Es enthält alle PGAS-Leistungen und ist somit eine PGAS-Sprache. Darüber hinaus hat es weitere Abstraktionseigenschaften. Es könnte zu einer neu einzuführenden Klasse der HPCS-Sprachen gerechnet werden (Fortress, X10, Chapel).

Chapel wurde aus mehreren parallelen Programmiersprachen entwickelt, insbesondere den Cray-MTA-Erweiterungen zu C 1 und Fortran, HPF und ZPL. Auch Ideen aus sequentiellen Sprachen wie C#, C++, Java, Fortran und Ada wurden übernommen,

1.1  Chapel im WWW

Informationen im WWW:
http://chapel.cray.com/
http://chapel.cray.com/spec-0.702.pdf Chapel Language Specification 0.702

Compiler:
http://docs.cray.com/books/S-9404-10/S-9404-10.pdf Cray Chapel Compiler 1.0 Software Release Announcement

Kurse:
http://chapel.cray.com/SC08/slides/SC08-S07-Chapel-Tutorial.tar.gz
http://chapel.cray.com/ChapelForMulticoreGap.pdf
http://www.infosun.fim.uni-passau.de/cl/lehre/sem-ss09/SimbuergerHandout.pdf

Diverse:
http://lambda-the-ultimate.org/node/1020

1.2  Geschichte

1993 HPF Report
1993-95 ZPL
2003 Darpa, High Productivity Computing Systems (Chapel-Cray, X10-IBM, Fortress-Sun)
2003-06: Darpa Phase II
2004 Chapel, Entwicklungsbeginn
2005 Chapel Specification 0.4
2006-10: Darpa Phase III
2006 Darpa, Chapel und Cray kommen in Phase III
2008, 14.11.2008, 1. Release von Chapel
2009 Chapel Compiler 1.0
2009 Chapel Language Specification 0.785

http://www.darpa.mil/ipto/programs/hpcs/hpcs_plan.asp
http://www.highproductivity.org/kepner-HPCS.htm
http://www.hpcwire.com/features/17889269.html?viewAll=y

1.3  Literatur

Weitere Literatur finden Sie auf meiner Webseite für Literatur zum Parallelrechnen: http://www.uni-regensburg.de/EDV/kurs_info/brf09510/hpc/Literatur.html

1.4  Prinzipien

1. Allgemeine Parallelsprache
2. Berücksichtigung des lokalen Speichers (locality aware)
3. Objektorientiert
4. Generisch

Chapter 2
Chapel-Installationen

2.1  Cray Chapel 1.0

2.1.1  Installation und Benutzung in Cygwin

gzip -d /cygdrive/c/download/chapel/chapel-v1.02.tar.gz
tar -xf /cygdrive/c/download/chapel/chapel-v1.02.tar
cd ~/chapel
make
source util/setchplenv.csh (csh tcsh)
source util/setchplenv.bash (bash)
. util/setchplenv.sh (Bourne shell)
chpl -o hello examples/hello.chpl
./hello

2.1.2  Benutzung auf der Athene

source /home/brf09510/chapel/util/setchplenv.csh (csh tcsh)
source /home/brf09510/chapel/util/setchplenv.bash (bash)
. /home/brf09510/chapel/util/setchplenv.sh (Bourne shell)
chpl -o hello examples/hello.chpl
./hello
qsub pbsjob der pbsjob muss ./hello starten

Chapter 3
Struktur von Chapel-Programmen

3.1  Hallo in Chapel

Das Hallo-Programm in Chapel besteht nur aus einer einzigen Anweisung ohne weitere Struktur. Es wird in einer Datei mit der Erweiterung .chpl gespeichert.

// Datei hello.chpl
writeln ("hello world");
/* Das Programm schreibt so oft den String, wie Threads gestartet wurden.*/

Es wird mit den folgenden Kommandos übersetzt und gestartet:

chpl hello.chpl
./a.out

Es funktioniert in dieser Form sowohl auf einer sequentiellen Anlage, wie auf einem Cluster.

Kommentare werden wie in C geschrieben. Chapel ist case-sensitiv und formatfrei.

Dieses Chapel-Programm führt nur eine Initialisierungsanweisung aus. Ein etwas umfangreicheres Hallo-Programm enthält ein main in einem Modul:

(http://www.uni-regensburg.de/EDV/kurs_info/brf09510/hpc/hallo1.chpl)

3.2  Ende eines Chapel-Programms

3.3  Datentypen

Fortran hat zwei Ideen zu den Datentypen beigesteuert: Zunächst gibt es inclusive der komplexen Zahlen alle wichtigen numerischen Typen. Weiter kann der Programmierer die Länge eines Datentyps in Bits genau steuern. Reelle Zahlen folgen den Regeln des IEEE 754 Standards.

bool int int(8) int(16) int(32) int(64) uint uint(8) uint(16) uint(32) uint(64) real real(32) real(64) imag imag(32) imag(64) complex complex(64) complex(128) string

Aufzählungen

Strukturen

Aliases

Variable

Initialisierung

Globale und lokale Variable

Konstante

3.4  Rechenausdrücke

Konversionen

Rest fast wie in C

Operator overloading

3.5  Anweisungen

swap

select

zipper iteration

tensor product iteration

parameter for loop

label break continue

use

type select

3.6  Rechenzeit

Chapter 4
Module

(Namespaces)

Chapter 5
Funktionen

overloading

Chapter 6
Klassen

Chapter 7
Record

Chapter 8
unions

Chapter 9
tupel

Chapter 10
Ranges

Chapter 11
Domains and aarays

Chapter 12
Iteratoren

Chapter 13
Generische Programmierung

Chapter 14
Parallel Synchronisierung

Chapter 15
Lokalität

Chapter 16
Reduktionen

Chapter 17
Input Output

Chapter 18
Standard Module

Inhalt

Contents

TTH-Seite:
http://hutchinson.belmont.ma.us/tth/


Footnotes:

1Tera Computer Company was founded in 1987 in Washington, DC, and moved to Seattle, Washington, in 1988. Tera began software development for the Multithreaded Architecture (MTA) systems that year and hardware design commenced in 1991. The Cray MTA-2T system provides scalable shared memory, in which every processor has equal access to every memory location, greatly simplifying programming because it eliminates concerns about the layout of memory.




File translated from TEX by http://hutchinson.belmont.ma.us/tth/"> TTH, version 3.85.
On 04 Dec 2009, 09:54.