Hemmaprognoser – lång

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

  1. Utrustning
    1. alt 1: En riktigt snabb dator
    2. alt 2a: flera datorer med liknande prestanda i ett ”datorkluster”
    3. alt 3b: flera enkortsdatorer, typ RaspberryPi, i ett ”datorkluster”
  2. Linux eller andra UNIX-liknande system
    1. Linux på Windows (WSL2)
    2. MacOS terminal
    3. Linux terminal
  3. Installation av WRF och nödvändig sekundär programvara/bibliotek
    1. Du behöver kunna läsa filer i NetCDF- och GRIB2-format
    2. Om du kör flera datorer behöver du parallelliseringsbiblioteket openMPI
  4. Köra WRF
    1. Geografisk data
    2. Meteorologisk drivning, GFS 0.25° från NCEP är gratis.
    3. 3D-version av WRF, eller 1D-version (ej så krävande).
  5. Analysera resultatet
    1. wrf-python
  6. Automatisera (frivilligt men bra om man just kör prognoser)
    1. skript och kronjobb
  7. Publicera på webben (frivilligt)
    1. För egen del sätt upp egen webserver
    2. 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…
Mitt Raspberry Pi-kluster med tre beräkningsnoder till höger och en ”login”-nod till vänster. På detta system kör jag 24 h-prognos med 9 km upplösning över 2/3 av Skandinavien (140×120 pkt) inklusive Ö Svealand i 3 km (60×60) på ca 4 h. 
RaspBerry Pi 4 enkortsdator. EN sådan med 8 GB RAM (Quad-core 1,5 GHz) kan du få för knappa tusenlappen. Övriga attiraljer som switch, sladdar, SD-kort exklusive hårddisk hamnar nog på drygt tusenlappen också. Så ett kluster med fyra noder skulle gå på ca 5000 kr och öka med ca 1000 kr per nod tills du behöver köpa en större switch.
  • …till superdatorer som Nationellt SuperdatorCentrums (NSC) kluster Bi i Linköping där SMHI:s modeller körs.
uppmax-light2.jpg
Sladdsidan av en av ”korridorERNA” med datorer i klustret Rackham på UPPMAX, Uppsala universitet.
  • 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.

Screenshot 2021-08-10 at 11.10.26-1.png

  • 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.
Screenshot 2021-08-11 at 10.41.18.png
Bild1.png

Hårdvarulista

  • 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.
UNIX arkitektur
  • Faktiskt, för att LINUX ska vara ett operativsystem (OS), ackompanjeras det med GNU programvara varmed officiella OS-namnet GNU/Linux.
gnu.png

Linux kommer i olika distributioner eller dialekter

flavours.png

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)

  • Starta Terminal som finns förinstallerat.

Windows-användare (detta behövs också om du vill styra ett eventuellt kluster från din 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!