29
KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft Fakultät für Physik Institut für Experimentelle Kernphysik www.kit.edu Vorlesung (Einführung in die) Computergestützte Datenauswertung Günter Quast, Andreas Poenicke SS ‘19

Vorlesung (Einführung in die) Computergestützte ...comp.physik.kit.edu/Lehre/CGDA/Vorlesungsfolien/V01b_Intro.pdf · KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

KIT – Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Fakultät für PhysikInstitut für Experimentelle Kernphysik

www.kit.edu

Vorlesung (Einführung in die)

Computergestützte Datenauswertung

Günter Quast, Andreas Poenicke SS ‘19

Rechnernutzung in der Wissenschaft

Datenerfassung

Server-Rack

CERN Computer Centre

Weltumspannende Netzwerke: Grid(s) und Cloud

Einzelplatz-Rechnerals Schnittstelle zumAnwender (=Physiker)

Worldwide LHC computing Grid

Moderne Wissenschaft ohne Computer nicht denkbarModerne Wissenschaft ohne Computer nicht denkbar

Rechnerhardware

Rechner in der Physik heute meist auf PC-Architektur (PC=Personal Computer) d.h. Mikrocomputersysteme bestehend aus: - Mikroprozessor(en) - (flüchtigem) Halbleiter-Speicher - permanentem Magnet-Festplattenspeicher oder „SolidStateDisk“ (SSD) - Ein-Ausgabeschnittstellen -Tastatur, Bildschirm, Maus, Wechsellaufwerke, Drucker, Netzwerk, ...

Verfügbar als - Einzelplatz-Desktop-PC / Notebook - vernetzter Cluster aus Desktop-PCs - PC-Farm mit Fileservern - Multi-Prozessor-Installationen für „High-Performance-Computing“

- vernetzte Rechenzentren („GRID“ & „Cloud“)

Für diesen Kurs (und praktisch Ihr gesamtes Studium) ist ein Notebook ideal:

● ≥2 GB Speicher

● ≥25 GB freier Plattenplatz

● ≥ core i3

andernfalls: PCs im CIP-Pool

dieser Kurs läuft sogar auf einem Raspberry Pi

Betriebssystem

Hardware

BIOS

Betriebssystem

Anwendungs- programme

Treiber

Ansonsten: Zugriff auf Hardware nur über Betriebssystem

Direkter Zugriff von Anwenderprogrammen auf Hardware nur in Ausnahmefällensinnvoll / möglich: - ein-Prozess-Betrieb (z.B. Spiele!) - Echtzeit-Anwendungen

Windows,

MacOSX,

Linux,

Android,

...

Verschiedene Anforderungen ...

Mobiltelefon, Windows ….

App_1

GUI 1

AppData 1

App_2

GUI 2

AppData 2

App_3

GUI 3

AppData 3

App_4

GUI 4

AppData 4

GemeinsameDaten

z.B. Foto-App, E-Mail-Programm Telefon-App ….

Projekt-Daten

App_1

App1-Data

App_2

App2-Data

App_3

App3-Data

App_4

App4-Data

Arbeit an Projekten

Projektziel: Produkt (Dokument, App, ...)Daten: Grafiken, Tabellen, Textbausteine, Messdaten, Ergebnisse von Auswertungen ...

Projekt- ziel

… erfordern unterschiedliche Arbeitsumgebungen !

Android

Windows

Mac OS X Linux

Interaktion mit dem Computer ...

Es gibt viele Wege:

grafisch klicki-bunti mit Maus

Grafik & Textkonsole

grafisch mit Finger und Gesten

Shell auf der Textkonsole

Arbeitsumgebung für diesen Kurs

Steuerung von Arbeitsabläufen

++ sehr intuitiv++ sehr intuitiv

+ leicht erlernbar+ leicht erlernbar

- kaum Reproduzierbarkeit bei- kaum Reproduzierbarkeit bei komplexen „Workflows“ komplexen „Workflows“

- - spezielle Menü-Optionen nicht- - spezielle Menü-Optionen nicht im Ergebnis dokumentiert im Ergebnis dokumentiert

- - keine permanente Dokumentation- - keine permanente Dokumentation der Vorgehensweise der Vorgehensweise

- - in der Regel auf eine Anwendung- - in der Regel auf eine Anwendung und deren Tools festgelegt und deren Tools festgelegt

interaktiv / Maus

0 erfordert Einarbeitung0 erfordert Einarbeitung

+ relativ leicht erlernbar+ relativ leicht erlernbar

++ Skript enthält alle relevanten++ Skript enthält alle relevanten Schritte: vollständige Doku- Schritte: vollständige Doku- mentation des Arbeitsablaufs mentation des Arbeitsablaufs

++ vollständig reproduzierbar++ vollständig reproduzierbar

++ einfache Nutzung verschiedener++ einfache Nutzung verschiedener Programm-Pakete und Tools Programm-Pakete und Tools

Scriptversus

Arbeitsabläufe sind meist mehrschrittig und komplex

Vergleich von (Mess-)Daten mit Modell - Berechnung der Modellvorhersage(n) - Datenaufnahme und Korrekturen - Statistische Datenanalyse und Cross-Checks, Systematische Fehler - Dokumentation und Sicherstellung der Reproduzierbarkeit der Ergebnisse

Beispiel:

Interaktion mit dem Betriebssystem

Wir empfehlen:

python ist eine– moderne– objektorientierte– interpretierte– intuitive – leicht zu erlernende– effiziente

Skript- und Programmier-Sprache mit – Unterstützung praktisch aller Funktionen des Betriebssystems, – eigenen Modulen insb. auch für wissenschaftliches Rechnen – Anbindung von Bibliotheken wichtiger Programmpakete – Einbindung von selbst-programmierter Funktionalität

& friends: - numpy - scipy - matplotlib

python ist verfügbar für Windows, Mac OSX und Linux: Platform-übergreifend !

Betriebssystem für Wissenschaftliches Arbeiten

Linux ist eine Re-Implementierung (Open Source) von Unix (begonnen Anfang der 90er von Linus Torvalds)

LINUX ist (wie UNIX) ein portables (in C programmiertes), recht einfach aufgebautes Betriebssystem, mit folgenden wesentlichen Eigenschaften:

-Multitasking (Prozess-Scheduling, Prozess-Kommunikation)

- Multiuser (Zugangskontrolle und Abrechnung)

- dialogorientiert

- ein Werkzeugkasten mit vielen hundert Dienstprogrammen

- (mehrere) Shell(s) mit mächtiger Script-Sprache; Scripte laufen als Unterprozesse des startenden Prozesses

- Dateisystem mit Baum-artiger Struktur, Rechtekontrolle für Datei-Zugriff

- graphische Oberfläche X-Windows (X11)

- volle Netzwerkunterstützung, incl. Netzwerk-Laufwerken, remote shells etc.

Linux bietet viele Vorteile – der Einstieg über die virtuelle Maschine (s. unten) ist leicht. Probieren Sie es aus !

Spezielle Empfehlung: Nutzen Sie Linux für wissenschaftliches Arbeiten !

python „Appetizers“

python appetizer

http://docs.python.org/2/tutorial/

Visualisierung und Auswertung von Daten mit

& friends: - numpy - scipy - matplotlib

numpy: effizientes und komfortables Arbeiten mit „arrays“ als Datenstrukturmatplotlib: Erstellen von Grafiken in „Publikationsqualität“

http://www.matplotlib.org

matplotlib user guide: „ making plots should be easy!“

Beispiel 1

x=np.linspace(0.,10, 200)y=np.sin(np.pi*x)/xplt.plot(x,y,label='example function')plt.legend()plt.show()

i.w. das Ergebnis dieses kurzen Programms: siehe simplePlot.py

Darstellung einer Funktion

Beispiel 2

Datenpunkte mit Fehlerbalken und einer Geraden

ym=[2.31,1.27,4.40,4.98,5.40,6.98,7.53,8.54,9.65,10.15]xm=range(1,11)plt.errorbar(xm,ym,yerr=0.5,fmt='ro')x=np.linspace(0.,11.,100)y=x+0.5plt.plot(x,y)plt.show() simpleData.py

Beispiel 3

pi.py

s. auchanimate_pi.py

Bestimmung von π mit Zufallszahlen

Beispiel 4: 3d

plot3dfunction.py

Funktionen von zwei Variablen in 3d

noch mehr Beispiele

animate_wave.pyanimated_Gauss.pyplayDice.py

Beispiele unter http://matplotlib.org

Lernen von python und matplotlib Konzept dieses Kurses:

– python lernen am Beispiel der Darstellung von Daten mit matplotlib – statistische Einsichten gewinnen durch „Ausprobieren“ („the python way“)

– Aufgeklappte Notebook-Deckel ausdrücklich erwünscht !!! (direktes Ausprobieren der Vorlesungs-Beispiele)

– aktive Teilnahme an den Kleingruppen-Übungen unerlässlich (Programmieren lernt man durch Programmieren)

– Recherche in online Dokumentation erforderlich (Listen mit Befehlen und Optionen in der Vorlesung sind laaangweilig)

– Bilden von Lerngruppen, Diskutieren von Lösungsmöglichkeiten

(Programmieren ist ein kreativer Prozess)

Das Ziel: Kreative Nutzung des Computers zur Lösung von Problemen

Empfohlene Software

nützliche Software-Pakete

Die nachfolgenden Software-Pakete sind quelloffen (Open Source) und frei unter Linux, MS Windows (10) und Mac OSX verfügbar

• Textdokumente erstellen mit LaTeX siehe z.B. http://www.dante.de/

• (Vektor-)Grafik mit INKSCAPE https://inkscape.org/de/

• Ausführen von virtuellen Maschinen: VirtualBox https://www.virtualbox.org/

• Programmiersprache python unter Linux (meist) schon installiert Windows siehe http://winpython.sourceforge.net/

• (einfache) Entwicklungsumgebung für python: IDLE Integrated Dvelopment and LEarning

• interaktives Arbeiten mit python: IPython http://ipython.org/notebook.html

• grafische Darstellung mit python: matplotlib • python-Bibliotheken für wissenschaftliches Arbeiten: numpy und scipy• Funktionsanpassung mit python: kafe http://www.ekp.kit.edu/~quast

• man braucht noch einen Texteditor ( das ist „Geschmackssache“ , etwas komfortabler als MS Notepad darf's schon sein)

In diesem Kurs werden wir hauptsächlich mit python, numpy & matplotlib arbeiten

nach dem Konzept: „Learning by Doing“

Virtuelle Hardware

Software-Emulation von Hardware auf Wirts-System seit langem bei Großrechnern

alte Rechner auf moderner Hardware/OS, z.B. Atari, V24, Apple II Windows- oder Linux-Betriebssystem auf Linux und/oder Windows

aktuell empfohlen: VirtualBox, freie Virtualisierungslösung für Linux, Windows, Mac

siehe http://www.virtualbox.org

Virtuelle Maschine mit aller notwendigen Software zum Kurs und Dokumentation finden Sie unter: http://www.ekp.kit.edu/~quast/VM-DaA

Virtualisierung erlaubt Standard-Umgebung auf unterschiedlichster Hardware bzw. OS

Virtuelle Maschine zum Kurs: VM-DaA

Virtuelle Maschine VM-DaA (Vers. SS19) für

VirtualBox (http://www.virtualbox.org) auf Basis von kubuntu 168.04.2 LTS 32 bit Installationsanleitung: http://www.ekp.kit.edu/~quast/VM-DaA

Enthaltene Software diverse Editoren zur Erstellung von Text / Programmcode

Libreoffice (Textbearbeitung, Tabellenkalkulation und Präsentation) inc. texmath-Erweiterung zur Einbindung von Formeln mit LaTeX

Textsatzsystem LaTeX

Vektorgrafik inkscape

C und C++ Compiler gcc / g++ python mit numpy, scipy und matplotlib

gnuplot und qtiplot zur Datenanalyse und Visualisierung

Datenanalyseframework ROOT

RooFiLab zur interaktiven Funktionsanpassung mit Root

python-Paket kafe zur Funktionsanpassung

weitere Pakete problemlos nachladbar

Virtuelles Linux unter Windows

VirtualBox herunterladen und installieren → https://www.virtualbox.org/ für Windows (alle Versionen), Mac OSX und Linuxvirtuelle Maschine herunterladen → http://www.ekp.kit.edu/~quast/VM-DaA

Virtuelle Maschine über das Menü vonVirtualBox starten → Arbeiten in kompletter Linux-Umgebung

ideal zum Ausprobierenund Gewöhnen

Software unter Windows

Um ein Windows-System (getestet unter Windows10)

zu nutzen, muss einiges an zusätzlicher Software installiert werden:

Hier die getesteten (und empfohlenen) Pakete mit Download-Links:

– WinPython (32 bit Version): WinPython32-3.5.4.2Qt5.exeeine komplette Python-Umgebung mit diversen IDEs

– DANTE LaTeX „texlive“: install-tl-windows.exe

– iminuit (vers. 1.3) zur Funktionsanpassung iminuit für Windows

wird in der python-shell mit Hilfe von „pip“ installiert:

>>> pip install future >>> pip install iminuit.1.3.whl

– putty und filezilla zum Datei-Transfer von / zu anderen Systemen

– ein Ent- / Packprogramm, z.B. 7zip zum Packen und Entpacken von Archiven in Standard-Formaten (.zip oder auch .tar.gz oder .tgz)

– Paket kafe zur Funktionsanpassung kafe (Ves. 1.3) >>> pip install kafe

– evlt. das mächtige Datenanalyse-Framework root vom CERN:

root_v5.34.34.win32.vc12.exe

Software unter Windows (2)

Damit alles reibungslos zusammen spielt, müssen noch Pfade über die Systemsteuerung gesetzt werden:

Systemsteuerung > System und Sicherheit > System > Erweiterte Systemeinstellungen

über das Menü (rechte Maustaste in Windows 10)

im sich dann öffnenden Fenster

Doppelklick auf Path

im sich darauf öffnenden Fenster folgende Pfade hinzufügen:X:\DAsoft\texlive\2017\bin\win32X:\DAsoft\WinPython\python-3.5.4 X:\DAsoft bezeichet den

Pfad zur Zusatzsoftware

und eine neue Umgebungsvariable anlegen:PYTHONPATH mit dem Wert X:\DAsoft\root_v5.34.34\bin

damit kann root unter python verwendet werden

X:\DAsoft\root_v5.34.34\bin Evtl. einen Wert für root anlegen (falls es installiert ist)

Der Beqeumlichkeit halber noch Dateien vom Typ .py mit python.exe verknüpfen: Rechtsklick auf Datei.py → Öffnen mit → andere App auswählen X:\DAsoft\WinPython\python-3.5.4\python.exe

Vorbereitete Software für Windows

Um das Herunterladen der Pakete zu vereinfachen, gibt es eine nützliche Sammlung unter:

● die Datei Win10/Dasoft.exe ist ein selbsentpackendes Verzeichnis mit allen Dateien für LaTeX, WinPython (incl. kafe) und Root („portable“ Versionen) Ohne Installation nach Setzen der Umgebungsvariablen lauffähig (z.B. auch von einem (schnellen) USB-Stick)

http://www.ekp.kit.edu/~quast/vorlesung/CgDA/Software

Nutzer: StudentsPasswort: only

Software unter Linux/Mac OSx

Viele Pakete sind unter Linux standardmäßig schon vorhanden,

fehlende werden einfach über die Paketverwaltung zusätzlich installiert:

LaTeX: texlive, texlive-science, texlive-extra-utils

Python, python-numpy, python-matplotlib, python-scipy (wir arbeiten mit Version 3.5) mit idle-python3

Software zur Funktionsanpassung kafe: http://www.ekp.kit.edu/~quast/kafe

Ich wünsche Ihnen Erfolg beim Installieren, viel Spaß beim Ausprobieren und uns allen ein gutes Gelingen des Kurses !

Tipp: Nutzerfreundliches Linux Mint

https://linuxmint.com/

● speziell für „Einsteiger“● basiert auf Ubuntu-Version mit Langzeit-Support● grafische Oberfläche an Windows angelehnt● kann parallel zu einer vorhandene Windows-Installation betrieben werden● Umfangreiche Dokumentation im Internet und in (Computer-) Zeitschriften

Praxis c't 9/2019, Seite 20

Linux Mint parallel neben Windows installierenInstallieren Sie beide Betriebs-systeme nebeneinander. Dann profitieren Sie von den Vorteilen des Open-Source-Betriebssystems und die vertraute Windows-Installation ist nur einen Neustart entfernt.

Software zu diesemKurs kann leicht Nachinstalliert werden !

(Anleitung analog zu Ubuntu)