vorlesung (einführung in die) computergestützte...
Post on 08-Sep-2019
6 Views
Preview:
TRANSCRIPT
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
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 !
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
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
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)
top related