Introduktion till webbinariet 28 september
Björn Claremar
Här tänkte vi samla lite matnyttigt kring hur du sätter upp dina egna väderprognoser. Nu fungerar denna sida som introduktion till webbinariet 28 september. Med hjälp av sidan hoppas jag att du dels får en bild av hur intressant webbinariet är för din del och dels ge lite bakgrundinfo för att det ska bli lättare att hänga med.
De flesta av er kan se det som ett vanligt föredrag. Några av er kanske känner sig inspirerade av att göra något själva. Låt er inte stressas då! Se föredraget som en introduktion. Om intresse finns kan vi ordna en workshop senare i höst!
Här nedan radar jag upp först upp delarna och stegen som behövs eller kan behövas för att kunna köra en egen väderprognosmodell. Ibland finns lite olika alternativ beroende vad du redan kan eller har för utrustning. Jag har valt modellen WRF, som jag har mest erfarenhet av, och som amatörer över världen använder. WRF-modellen (då med dataassimilering) används också av många nationella vädertjänster.
Längre ner ger jag länkar till online-handledningar eller kortkurser. Om du är intresserad av att komma igång och du inte vet något om LINUX, eller behöver fräscha upp minnet så föreslår jag att du klickar på en sådan länk innan föredraget. Titta på första punkten för att bestämma dig för vilket system som passar där. Under andra punkten är det bra att bestämma vilket system du vill öva dina färdigheter i Linux och sedan eventuellt det system du vill installera WRF i.
Steg
- Utrustning
- alt 1: En riktigt snabb dator
- alt 2a: flera datorer med liknande prestanda i ett ”datorkluster”
- alt 3b: flera enkortsdatorer, typ RaspberryPi, i ett ”datorkluster”
- Linux eller andra UNIX-liknande system
- Linux på Windows (WSL2)
- MacOS terminal
- Linux terminal
- Installation av WRF och nödvändig sekundär programvara/bibliotek
- Du behöver kunna läsa filer i NetCDF- och GRIB2-format
- Om du kör flera datorer behöver du parallelliseringsbiblioteket openMPI
- Köra WRF
- Geografisk data
- Meteorologisk drivning, GFS 0.25° från NCEP är gratis.
- 3D-version av WRF, eller 1D-version (ej så krävande).
- Analysera resultatet
- wrf-python
- Automatisera (frivilligt men bra om man just kör prognoser)
- skript och kronjobb
- Publicera på webben (frivilligt)
- För egen del sätt upp egen webserver
- Annars på ”webhotell”
Utrustning
En riktigt snabb dator
Detta kan fungera hyfsat om man kör prognoser i litet område eller i 1-dimension. WRF-modellen kan då köras i så kallat ”shared-memory mode”. För en quad-core processor kan fyra kopior av programmet köras parallellt. Det geografiska området delas då in i fyra delområden.
Datorkluster
- Ett (internt) nätverk av datorer.
- Varje dator fungerar som en ”nod”.
- Från småskaligt Raspberry Pi-kluster…
- …till superdatorer som Nationellt SuperdatorCentrums (NSC) kluster Bi i Linköping där SMHI:s modeller körs.
- Varje nod innehåller flera processorkärnor och ofta ett gemensamt RAM-minne (finns lite olika alternativ där) och en lokal hårddisk som kan kallas ”scratch”.
- Varje nod är ihopkopplade med nätverkskablar, t.ex. ethernet, men via en central ”switch” för att tillåta trafik åt båda hållen på en effektivt sätt.
- Man kan avvara en nod till att fungera som login, eller ”Master” och styra de andra noderna därifrån.
- På ”Mastern” kan man göra sitt eget arbete, som analysera, flytta filer, fixa, medan de andra noderna är upptagna med att t.ex köra WRF-modellen.
- Antingen har man skärm kopplad hit, eller så kopplar man upp sig från en annan dator genom hemma-nätverket.
- Jag kopplar upp mig trådlöst mot ”Mastern” från min Macs terminal med något som kallas secure shell (SSH). Mastern i sin tur är ihopkopplade med beräkningsnoderna med korta ethernetsladdar. Då kan jag styra allt från min laptop!
- Beräkningsnoderna används för intensiva beräkningar.
- ”Normala” program använder bara en kärna.
- Parallelliserade program kan använda flera kärnor eller t.o.m flera noder. Nyckelord som signalerar detta är exempelvis:
- inom en nod: ”multi-threaded”, ”shared memory” och ”openMP”.
- För flera noder: ”MPI”, ”distributed memory”.
- För att använda beräkningsnoderna
- logga in på en beräkningsnod och kör.
- använd en jobb-schemaläggare som t.ex. SLURM och skicka ett ”batch-jobb” från ”Mastern”
- För att allt detta ska fungera behövs en hårddisk eller en hårddiskpartition som är delad och kan kommas åt från alla noder.
Hårdvarulista
- Minst två datorer eller enkortsdatorer, typ Raspberry Pi — för beräkningsnoderna
- Alternativa enkortsdatorer: https://itsfoss.com/raspberry-pi-alternatives/
- En dator eller enkortsdator — för master-/login-nod
- Lokala hårddiskar
- eller fallet RaspBerryPi ETT MicroSD-kort per dator, 16 GB kan räcka.
- Strömsladdar
- strömadapter: 5V, 3A, eller USB power supply hub
- alternativ för enkortdator: Power Over Ethernet (POE), minskar sladdmängd!
- 1x 8-port 10/100/1000 network switch (Gbit switch)
- En hårddisk som dina noder ska dela på för att komma åt samma filer. Minst 500 GB.
Om du redan har utrustning och är van med LINUX kan du tjuvstarta med denna instruktion. Ibland kan du behöva byta ut detaljer för att det ska fungera för dig. Annars läser du igenom nästa kapitel om Linux.
Instruktion för att sätta upp ett RaspberryPi-kluster
https://glmdev.medium.com/building-a-raspberry-pi-cluster-784f0df9afbd
Systemet LINUX
Det går att köra i Windows, men i vilket fall som helst kommer du förmodligen behöva jobba i LINUX-miljö
Vad är Linux?
- I dagligt tal: Linux operativsystem är ett UNIX-liknande och UNIX kompatibelt operativsystem
- MacOS är mer äkta UNIX än Linux.
- Linux är egentligen ”kärnan” på vilken flera olika program kan köras
- Skalet—kommandoraden i terminalen (bash, sh, ksh, csh, tcsh m.fl.) är ett sådant program.
- Faktiskt, för att LINUX ska vara ett operativsystem (OS), ackompanjeras det med GNU programvara varmed officiella OS-namnet GNU/Linux.
Linux kommer i olika distributioner eller dialekter
Raspberry Pi kan köras med både Raspberry Pi OS, men jag använder Ubuntu.
Vill du förstå mer hur man jobbar i LINUX-terminalen följ instruktionerna nedan.
MAC och LINUX-användare (detta behövs också om du vill styra ett eventuellt kluster från din dator)
- Ladda ned XQuartz för Mac OS
- https://www.xquartz.org/ (Links to an external site.) )
- Det är för att grafik ska fungera
- Starta Terminal som finns förinstallerat.
Windows-användare (detta behövs också om du vill styra ett eventuellt kluster från din dator)
- Kolla in denna hemsida om du är windows-användare!
- https://hackmd.io/@pmitev/Linux4WinUsers
- stegen visas nedan också
- Ladda ned och installera EN av verktygen nedan (för att få grafik)
- Installera WSL (Windows Subsystem for Linux)
- https://docs.microsoft.com/en-us/windows/wsl/install-win10
- Glöm inte uppdatera till wsl2
- https://docs.microsoft.com/en-us/windows/wsl/install-win10
- Installera en LINUX-distribution och/eller ett ssh-verktyg (secure shell)
- Distribution som t.ex. Ubuntu och/eller
- ssh-verktyget MobaXTerm
- https://mobaxterm.mobatek.net/ (Links to an external site.)
- sftp-fönster gör det enkelt att förflytta, ladda upp och ned filer om du styr ditt kluster från din windows-dator
För en introduktion i LINUX titta t.ex. på länken nedan. Sök på linux och tutorials/handledning om du är missnöjd med just den här handledningen!.
https://ryanstutorials.net/linuxtutorial/
Så! Detta bör räcka för att hänga med i webbinariet!
Punkterna nedan kommer jag täcka bättre i webbinariet.
Installation av WRF och nödvändig sekundär programvara
Jag kommer på webbinariet i huvudsak följa guiden nedan.
https://github.com/DevinSmoot/HPC-Guides/blob/master/raspi_wrf_guide.md
Köra WRF
Mera på webbinariet!
Analysera resultatet
Mera på webbinariet!
Automatisera
Mera på webbinariet!
Publicera på webben
Några exempel!