High-performance computing kurs
Scripting: verktøy for effektivt vitenskapelig arbeid
- Er du en av de mange forskerne og studentene ved faktultetet som
- kjører egne eller andres simulerings-programmer,
- lager plot,
- utfører store mengder numeriske eksperimenter og sammenligner figurer?
Kunne det være attraktivt å effektivisere dette arbeidet,
gjøre det morsommere og samtidig heve kvaliteten?
- Kunne du tenke deg å lage deg ditt eget interaktivt,
Matlab-lignende, brukervennlige grensesnitt til programmene
du bruker i forskningen?
-
Kanskje du gjerne vil lage demonstrasjonsprogrammer for undervisning,
men vet ikke så mye om grafiske brukergrensesnitt eller dynamiske
Web-sider?
- Skulle du gjerne kombinere dine gamle og veltestede Fortran 77 eller C
biblioteker med et moderne objekt-orientert overbygg på en enkel måte?
Hvis du svarer "ja" på en eller flere av punktene over, bør du lese
videre. Vi arrangerer nemlig et kurs i *scripting* rett etter påske.
Scripting er et sentralt verktøy for å gjøre forskningshverdagen
mer effektiv og pålitelig. Som veileder, dr.grad-student eller
hovedfagstudent bør du absolutt oppdatere deg på hva moderne
scripting i programmeringspråket Python kan gjøre for deg.
Alt materiale er tilgjengelig over Internett.
Ta en titt på (foreøpige) lysark til forelesningene!
På scriptekurset kan du delta de 2 første timene -
for å få en oversikt -
eller så mye du vil videre. Vi starter med det viktigste og enkleste
og øker deretter på i kompleksitet. Øvelser rett etter forelesningene
er en viktig del av kurset for å få verktøyene litt inn i fingerne.
Tirsdag 22. april:
- Oversikt over scripting:
- scripting i Python vs. programmering i Fortran, C, C++ og Java
- hvorfor scripting er et sentralt verktøy for vitenskapelig
simulering
- hva du bør være orientert om som hovedfagstudent, dr.grad-student
eller veileder
- Intro til Python gjennom eksempler:
- transformasjon av data i en fil til et annet format
- sammenliming av et simuleringsprogram og et visualiseringsprogram
- generering av store sett med numeriske eksperimenter
- automatisk rapportgenerering (HTML, PostScript)
- hvordan gjøre serier med numerisk simuleringer automatisk
reproduserbare
- om å lage brukervennlige funksjoner (a la Matlab syntaks)
- automatisk generering av kataloger, filer; flytte/kopiere filer etc.
Onsdag 23. april:
- Oversikt over sentral Python funksjonalitet:
- operativsystem-interaksjon i Python script
- hvordan bruke Python til å få Unix' slagkraft i et Windows eller Mac miljø
- numerske beregninger i Python
- Direkte kobling av script i Python med F77/C/C++ programmer
- effektivtet i Python vs. C, C++ og F77
- automatisk wrapping av C/C++ kode med SWIG
- automatisk wrapping av F77/F90 kode med F2py
- interaktiv styring av simuleringsprogrammer
- Tolke og automatisk editere tekst via regulære uttrykk
Torsdag 24. april:
- Mer om å tolke og automatisk editere tekst via regulære uttrykk
- Hvordan lage grafiske brukergrensesnitt (GUI)
- eksempel: lage GUI m/visualisering til et F77 program
- ulike typer vinduselementer
- interaktive Web-sider (Web-baserte simuleringer)
Hva du lærer:
Kurset tar for seg Python, som er et programmeringsspråk på et
betydelig høyere nivå enn C++ og Java. "Høyere nivå" betyr i praksis
at du vil tenke annerledes på programmering enn du er vant til nå,
fordi du lett kan gjøre ting som ikke har falt deg inn tidligere.
Scripting i Python er lett å komme i gang med; læringskurven er
mye lavere enn for f.eks. C++. Python programmering minner mye
om Matlab i sin enkelhet, men språket er mye slagkraftigere enn
Matlab. I kurset vil vi studere eksempler og oppgaver som
bl.a. omhandler følgende relevante temaer for vitenskapelig simulering:
- automatisere kjøring av simuleringsprogram og deretter et visualiserings-
program, vise plot på skjermen og lage hardcopy av figurer
- transformere en datafil over i et annet tekstformat tilpasset
et plotteprogram
- trekke ut data fra f.eks. programutskrifter, samle data i arrayer
og plotte
- lage skreddersydde, effektive brukergrensesnitt til programmer,
f.eks. tilpasset et spesielt prosjekt (eller undervisning)
- automatisere store numeriske eksperimenter: kjøre simuleringer, lage
visualiseringer, lagre data i filtrær, samle nøkkeldata i Web-rapporter,
sende email når eksperimentene er ferdig
- sette opp eksperimenter for å finne optimale kombinasjoner av
kompilator-opsjoner på en plattform
- lage interaktive Python grensesnitt til F77 og C programmer, f.eks.
for computational steering eller debugging
- profilering; migrasjon av treg Python kode til F77 eller C
Bunnlinjen er at vitenskapelig simulering er langt mer enn å knuse
tall. Til knallknusingen er F77, C og C++ gode programmeringsspråk.
Resten gjøres mye mer effektivt i et scriptespråk som Python.