Praktikum: Paralleles Programmieren für Geowissenschaftler

Ähnliche Dokumente
ATIK ORMAT SINFO HAFTS WIRT. Swetlana Konovalov Seminar Programmiersprachen Westfälische Wilhelms-Universität Münster

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Anweisungen in Fortran - Wertzuweisung

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

4.Grundsätzliche Programmentwicklungsmethoden

Einführung in die Programmierung mit VBA

Sprachkonstrukte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Grundlagen der Fortran Sprache

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler

Praktikum: Paralleles Programmieren für Geowissenschaftler

Modellierung und Programmierung 1

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Programmieren I. Kapitel 5. Kontrollfluss

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

Variablen. CoMa-Übung VIII TU Berlin. CoMa-Übung VIII (TU Berlin) Variablen / 15

Modul 122 VBA Scribt.docx

FORTRAN77. eine höllische Programmiersprache. Christian Sternecker. Sommersemester TU-München

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

RO-Tutorien 3 / 6 / 12

Praktikum: Paralleles Programmieren für Geowissenschaftler

JAVA-Datentypen und deren Wertebereich

2. Programmierung in C

Wertebereich und Genauigkeit der Zahlendarstellung

Kapitel 3. Grunddatentypen, Ausdrücke und Variable

Java I Vorlesung Imperatives Programmieren

Primitive Datentypen, Eingaben, Kontrollstrukturen und Methodendeklaration

PROGRAMMIERKURS FORTRAN

Algorithmen zur Datenanalyse in C++

Algorithmen und ihre Programmierung

Kontrollstrukturen, Pseudocode und Modulo-Rechnung

Informatik I Übung, Woche 41

RO-Tutorien 15 und 16

EXCEL VBA Cheat Sheet

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

3. Datentypen, Ausdrücke und Operatoren

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Funktionales C++ zum Ersten

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 12/13. Kapitel 3. Grunddatentypen, Ausdrücke und Variable

4.2 Gleitkommazahlen. Der Speicherbedarf (in Bits) ist üblicherweise. In vielen Anwendungen benötigt man gebrochene Werte. Physikalische Größen

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Intensivübung zu Algorithmen und Datenstrukturen

Algorithmen und ihre Programmierung

Kurzeinführung in C99

Praktikum: Paralleles Programmieren für Geowissenschaftler

Informatik I Übung, Woche 41

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Programmieren in C/C++ und MATLAB

Schmitt, Günter (1996): Fortran 90 Kurs technisch orientiert, R. Oldenbourg Verlag, München

Vorlesung Programmieren

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

3. Datentypen, Ausdrücke und Operatoren

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Vorlesung Programmieren

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Programmieren in Fortran

Algorithmen & Programmierung. Ausdrücke & Operatoren (1)

Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1

Unterlagen. CPP-Uebungen-08/

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Operatoren (1) Operatoren (2)

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

Programmieren I. Operatoren und Ausdrücke Heusch 6.2 Ratz Institut für Angewandte Informatik

Sin-Funktion vgl. Cos-Funktion

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Datentypen. Agenda für heute, 4. März, Pascal ist eine streng typisierte Programmiersprache

Tutorium für Fortgeschrittene

Operatoren und Ausdrücke

3.4 Struktur von Programmen

Elementare Konzepte von

3. Grundanweisungen in Java

Programmiertechnik Kontrollstrukturen

Bauinformatik 1. Teil 1 / VBA. Ernst Baeck. Fachgebiet Statik und Dynamik der Flächentragwerke. 27. April 2017

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

Programmierkurs Python I

Die Programmiersprache C Eine Einführung

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

Java Einführung Operatoren Kapitel 2 und 3

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

Syntax der Sprache PASCAL

Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Welche Informatik-Kenntnisse bringen Sie mit?

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Javaprogrammierung mit NetBeans. Variablen, Datentypen, Methoden

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Übungen zur Vorlesung Wissenschaftliches Rechnen I. Grundelemente von Java. Eine Anweisung. wird mit dem Wertzuweisungsoperator = geschrieben.

12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false

Informatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5

Programmsteuerung. Mittel zur Programmverzweigung:

Compiler Aufruf. Fortran 95 unter UNIX (z.b. Linux): Der Programmtext stehe in den Dateien (files):

Physische Datenstrukturen

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Transkript:

Praktikum: Paralleles Programmieren für Geowissenschaftler Prof. Thomas Ludwig, Hermann Lenhart, Ulrich Körner, Nathanael Hübbe hermann.lenhart@zmaw.de

FORTRAN Einführung I: FORTRAN Historie Sprachelemente Darstellung und Abbildungen Ausdrücke Kontrollstrukturen Programmstrukturen Hilfsmittel Paralleles Progrm. für Geowisssenschaftler hermann.lenhart@informatik.uni-hamburg.de Seite 2

Kurze FORTRAN Historie (I): FORTRAN = FORmula TRANslator 1966 als erste standardisierte Programmiersprache definiert, heute bekannt als FORTRAN66. Ziel war es im Vergleich zu kryptischer Harware-naher Programmierung (Assembler) quasi in mathematischen Formeln zu programmieren. Aber: x = x + 1 ist mathematisch nicht korrekt!!! Seite 3

Kurze FORTRAN Historie (II): 1978 Neuer Standard FORTRAN77 Bringt unterschiedliche Dialekte zusammen die Bausteine für Realisierungen von large scale programs enthielten. 1990 Neuer Standard FORTRAN90 Neue Sprachentwicklung incl. Array Sprache und Abstrakte Datentypen sowie Modernisierung des Designs aus anderen Sprachen wie Pascal, C, C++ z.b. free-form: Begrenzung von 72 auf 132 Zeichen pro Zeile heraufgesetzt Seite 4

Kurze FORTRAN Historie (III): 1995 Neuer Standard FORTRAN95 <= Hier setzen wir auf!! Handhabung von Floating Point Ausnahmen Einige alte Konstrukte werden nicht mehr unterstützt (assigned goto, ) Erlaubt die allocation von Arrays als stukturierte Komponente Verbessertes String handling Seite 5

Kurze FORTRAN Historie (IV): 2004 Neuer Standard FORTRAN2003 Grundlegende Überholung von FORTRAN95, insbesondere wird die Interoperationalität mit C standardisiert 2010 Neuer Standard FORTRAN2008 zur Verbesserung paralleler Programmierung Seite 6

Elemente der FORTRAN Sprache (I) Es gibt insgesamt 5 Datentypen in FORTRAN (intrinsic) 3 numerische Datentypen Integer Real Complex -> für numerische Berechnungen 2 nicht numerische Datentypen Character Logic -> für Textbearbeitung und für Kontollzwecke Zur Leistungsstärke von FORTRAN tragen selbst definierbare sog. abgeleitete Datentypen (derived data types) bei. Seite 7

Elemente der FORTRAN Sprache (II) Integer: Ganzzahliger Wert mit oder ohne Vorzeichen 1 Wertebereich: -2147483648 bis 2147483648 0 für 32 bit Variable -999 implizite Typvereinbarung: 3288 reservierter Name für integer Variablen i-n +10 (Hinweis: implicit none setzen!) integer, parameter : : k6=selected_int_kind(6) d.h. INTEGER :: it_k6 hat den Wertebereich: -999999 bis 999999 Seite 8

Elemente der FORTRAN Sprache (III) REAL: Die Default Darstellung der Floating Point Form Integer Teil (mit/ohne Vorzeichen), Dezimalpunkt, Bruchteil (,Exponent) 1. -0.1 Wertebereich: 10-37 bis 10 +37 für IEEE Standard 1e-1 implizite Typvereinbarung: 3.1415 reservierter Name für real Variablen a-h und o-z z.b. integer, parameter :: ehp = selected_real_kind(9, 99) REAL :: Rmax_ehp 9 signifikante Dezimalstellen, Wertebereich des Exponenten: 10-99 bis 10 +99 weitere Möglichkeit über Deklaration double precision. Seite 9

Elemente der FORTRAN Sprache (IV) COMPLEX: Erste Konstante vor dem Komma entspricht dem Realanteil und die zweite Konstante entspricht dem Imaginär-Anteil der komplexen Größe. (1., 3.2) (1, 99e -2 ) Seite 10

Elemente der FORTRAN Sprache (V) Nicht numerische Datentypen: Character: Anzahl von Buchstaben und Zahlen in Hochkomma. z.b. "anything goes" Bei character Variablen muss das erste Zeichen ein Buchstabe sein!! ab FORTRAN2003 Case sensitiv, vorher nicht! Logical: logischer Wert, zwei Möglichkeiten:.true. oder.false. Seite 11

Elemente der FORTRAN Sprache (VI) Derived data types: Beispiel Person: Beispiel Datum: type person type datum character(len=109) :: name integer :: year, month, day real :: age End type datum integer :: id End type person z.b.: datum%year=2003 you = person ("Smith", 23., 2534) Zum Geburtstag: you%age +1. Seite 12

FORTRAN Darstellung Über den Typparameter (KIND-Wert) werden den Datentypen Ihre Größe im Rechner zugewiesen. z.b. Integer (kind=4) :: i_small Integer (kind=8) :: i_big Real (kind=8) :: r_medium Real (kind=16) :: r_big Complex (kind=4) :: c_small Complex (kind=8) :: c_big ~ 4 Byte Integer ~ 8 Byte Integer ~ 8 Byte Real ~ 16 Byte Real ~ 2+4 byte Complex ~ 2+8 Byte Complex Seite 13

FORTRAN Array Abbildung Zur Deklaration von Arrays (Feldern) müssen neben dem Datentyp auch die Größe des benötigten Feldes angegeben werden. integer, dimension (100) :: ii, kk real, dimension (5,4) : rr character (len=80) :: line Seite 14

FORTRAN Ausdrücke (I) Definition Ausdruck (Expression): Beschreibung der Berechnung die vom Rechner ausgeführt werden sollen. In FORTRAN werden Ausdrücke durch Operanden und Operatoren geformt: x + y binäre Operation -y einstelliger (monadic) Operator Seite 15

FORTRAN Ausdrücke (II) Arithmetische Ausdrücke werden durch arithmetische Operatoren gebildet, hier die Übersicht nach Priorisierung, d.h. ohne Klammerung: Operator Berechnung Priorität Beispiel ** Potenzierung 1 A**B * Multiplikation 2 A*B / Division 2 A/B + Addition 3 A+B - Subtraktion 3 A-B Seite 16

FORTRAN Ausdrücke (III) Vergleich arithmetische Ausdrücke vs mathematische Ausdrücke: FORTRAN Mathe a = b + c a= b + c nicht valide b + c = a n=1 n=1 n = n +1 nicht valide Seite 17

FORTRAN Ausdrücke (IV) Logische Ausdrücke werden durch logische Operatoren gebildet, die logische Variable oder Konstante verknüpfen und als Ergebnis einen Wert.true. Oder.false. liefern. Operator Ausführung Priorität Beispiel.NOT. Negation 1.NOT. L1.AND. Konjunktion 2 L1.AND. L2.OR. Disjunktion 3 L1.OR. L2.EQV. Äquivalenz 4 L1.EQV. L2.NEQV. Antivalenz 4 L1.NEQV. L2 Seite 18

FORTRAN Kontrollstukturen (I) Kontrollstrukturen dienen dazu den Programmablauf zu steuern und in logische Einheiten (Blöcken; block construct) zu gliedern. Dazu gehören IF Abfragen und Do Schleifen. Seite 19

FORTRAN Kontrollstukturen (II) IF Abfragen werden genutzt um nach Abfrage der Eingangswerte einzelne Progammteile anzusteuern. [Name] IF (logischer skalarer Block) THEN Block von Anweisungen [ELSE [Name] Block von Anweisungen] END IF [Name] Seite 20

FORTRAN Kontrollstukturen (III) IF Abfrage Beispiel: oder IF (x < y) THEN swap: IF (x < y) THEN x = -y x = -y ELSE ELSE swap y = -y y = -y END IF END IF swap Seite 21

FORTRAN Kontrollstukturen (IV) IF Abfrage Notation mit ELSE IF: [Name] IF (logischer skalarer Block) THEN Block von Anweisungen [ELSE IF [Name] Block von Anweisungen] [ELSE [Name] Block von Anweisungen] END IF [Name] Seite 22

FORTRAN Kontrollstukturen (V) IF Abfrage Beispiel mit ELSE IF: IF (i < 0) THEN x = 0.0 ELSE IF (K < 0) z = 1.0 ELSE x = 0.0 y= 1.0 ENDIF Seite 23

FORTRAN Kontrollstukturen (VI) Vergleichsoperatoren dienen zum Vergleich von numerischen Variablen und Konstanten bzw. Zeichenausdrücke und Konstante Operator Kurzform Ausführung Beispiel.LT. < kleiner als A.LT. B.LE. <= kleiner oder gleich A.LE. B.EQ. == gleich * A.EQ. B.NE. /= ungleich A.NE. B.GT. > größer als A.GT. B.GE. >= größer oder gleich A.GE. B * Vorsicht bei Vergleich von REAL Ausdrücken Seite 24

FORTRAN Kontrollstukturen (VII) DO Schleife als Strukturelement in FORTRAN um Iterationen auf einfache Weise zu realisieren. Nomenklatur der DO Schleife: [Name] DO [Variable = Ausdruck1, Ausdruck2, Ausdruck3] Block von Anweisungen END DO [Name] Variable, Ausdruck1, Ausdruck2, Ausdruck3 sind vom Typ INTEGER Seite 25

FORTRAN Kontrollstukturen (VIII) DO Schleife Beispiel: DO i = 1,10 DO i = 1, 10,2 sum = sum + i sum = sum +i END DO END DO i ist Laufvariable der Wert 2 steuert 1 ist Startwert zusätzlich die 10 ist Endwert der Interation Schrittweite! Seite 26

FORTRAN Kontrollstukturen (IX) outer_loop do i=1, imax inner_loop do n=1,iteration_max <iteration algorithm> if ( lconverged ) then print*, iteration has converged for n at i end if end do inner_loop exit inner_loop [cycle outer_loop] end do outer_loop Alternativ do while Seite 27

FORTRAN Programm-Struktur (I) Ein FORTRAN Programm kann aufgebaut werden aus den Komponenten: Hauptprogramm Externe Subprogramme (Funktionen und Subroutinen) Module Seite 28

FORTRAN Programm-Struktur (II) Ein FORTRAN Haupt-Programm besteht aus: [program Programm Name] program test FORTRAN Ausdruck print*, 'Hello World' End [Programm Name] end program test als Programm: test.f90 Seite 29

FORTRAN Programm-Ausführung FORTRAN Programm Ausführung: Compileraufruf zur Übersetzung des Quellcodes in test.f95 gfortran test.f95 liefert Executable a.out Zur Verwendung des gleichen Namens im Executable wie das Programm: gfortran o test.x test.f95./test.x Programm ausführen Seite 30

FORTRAN Programm-Hilfsmittel(I) FORTRAN Kommentarzeilen: do i=1, imax! Initialisierung Outer Loop do n=1,iteration_max! Initialisierung Inner Loop <iteration algorithm>! Ende Inner Loop end do! Ende Outer LooP end do Seite 31

FORTRAN Programm-Hilfsmittel(II) FORTRAN Universal Debugger: Das Print Statement do i=1, imax! Initialisierung Outer Loop Print*, ' Outer Loop : ',i do n=1,iteration_max! Initialisierung Inner Loop Print*, ' Inner Loop : ',n <iteration algorithm>! Ende Inner Loop end do! Ende Outer LooP end do Seite 32