Hvad er sandheden om eksponentielle teknologier?

Eksplosiv udvikling lige rundt om hjørnet er det forkerte sted at fokusere, når vi taler om eksponentiel udvikling af teknologier.

Eksponentialfunktioner er rigtig spændende, for de er gode til at beskrive rigtig mange fænomener, men de kan også være svære at forstå. Der er eksempelvis mange, der beskriver en eksponentiel udvikling og peger på en graf og siger, at lige om lidt går det rigtig stærkt.

Det er for så vidt korrekt, for sådan fungerer en eksponentiel vækstfunktion. Men det går imod vores intuition, at uanset hvor du står på grafen, så går det lige 'rigtig stærkt om lidt'.

Væksten er den samme, uanset om fordoblingen er fra to til fire eller fra 64 til 128. Det er stadig blot en fordobling.

Det, der snyder, og får folk til at tale om, at der er et 'knæ' på en eksponentiel vækst, er den grafiske afbildning. Jeg har prøvet at lave en video, hvor jeg ændrer x- og y-aksen for en afbildning af en eksponentiel funktion. Det er den samme funktion, men 'knæets' placering flytter sig med opløsningen på de to akser.

Hvis der var et ægte 'knæ', så ville det være for samme værdi af x, uanset opløsningen på grafens akser.

En anden måde at illustrere, at der ikke findes et knæ, er, at der for eksempel for hvert x+1 sker en fordobling.

Altså at du starter med en runde af ét granatæbleshot til hver. Derefter er det to granatæbleshots til hver. Og så fire shots, otte shots, 16 shots, 32 shots, 64 shots ... på et tidspunkt løber baren tør for granatæbleshots, når I hver skal have over en million shots i tyvende omgang, men for hver omgang er der kun sket en fordobling - den samme vækst fra omgang til omgang. I går i knæ, men granatæbleshotkurven har ikke et knæ.

Så det er altså forkert at tale om, at lige nu er specielt, fordi lige om lidt går det stærkt. I hvert fald på dén måde, det typisk bliver brugt.

Læs også: Kommentar: Vær kritisk over for halleluja om singulariteter og guldrandede algoritmer

Jeg har tidligere skrevet om logistiske funktioner, der er i familie med eksponentialfunktioner, men har en øvre grænse og et punkt, hvor væksten begynder at aftage.

Det er ofte sådan, eksponentiel vækst ser ud i virkeligheden, hvor uendelig eksponentiel vækst ikke er fysisk mulig.

En logistisk funktion (blå) og en eksponentiel funktion (rød). Illustration: MI Grafik

Men selv, når væksten kan beskrives via en simpel eksponentiel funktion som Moores Lov, så kan vi se noget rigtig interessant, når vi sammenligner eksponentialfunktioner med hinanden og ser på de absolutte forskelle.

Moores Lov er nemlig ikke alene inden for it-verdenen. Der er tilsvarende beskrivelser, der passer på storage, netværk, datavækst, hukommelse og næsten alt andet.

Stiller vi disse funktioner op ved siden af hinanden, så får vi interessante konsekvenser, når funktionerne ikke følges ad, fordi de absolutte afstande mellem funktionerne også vokser eksponentielt.

To eksponentielle funktioner (rød og blå) følges ad forholdsmæssigt, men de absolutte forskelle vokser også eksponentielt. Illustration: MI Grafik

Lad os eksempelvis antage, at Moores Lov fortsat kan vokse eksponentielt, men i stedet for en fordobling hver 18. måned, bliver fordoblingen i stedet hver 24. måned.

Det svarer til henholdsvis den blå og den røde kurve på grafen. Hvis en anden eksponentiel udvikling - eksempelvis inden for storage - fortsætter med en fordobling hver 18. måned, så bliver den absolutte forskel mellem de to kurver hurtig stor.

Disse knæk på de eksponentielle kurver er langt mere interessante, for de er forudset for stort set alle teknologierne, vores computere bygger på.

Tre eksponentielle udviklinger afbilledet med en logaritmisk y-akse. Rød har samme vækst hele tiden, grøn vokser med én eksponentiel hastighed i et stykke tid, derefter går det langsomt, og blå vokser i forskellige hastigheder. Illustration: MI Grafik

Læs også: Chipudvikling: Det er ikke teknologien, der giver Moores lov dødsstødet

Når vi taler om eksponentiel udvikling af teknologi, så har får eksponentiel vækst først rigtig betydning, når væksten ændrer sig, og kurven får et knæk - for knækket er reelt i modsætning til knæet.

Hvis Moores Lov eksempelvis tager en pause på ti år, hvor udviklingen går i stå, fordi det er for dyrt at holde tempoet, så får kurven et knæk. Varigheden af sådanne knæk, og hvordan væksten ser ud, når et nyt teknologisk spring tages, har mindst lige så stor betydning, som dét, at udviklingen sker eksponentielt.

Det store spørgsmål er, hvornår de enkelte kurver oplever et knæk i forhold til de øvrige. Lige nu er det Moores Lov, der er fokus på, så lad os se på konsekvensen hvis:

Storage bliver større og hurtigere

HP's drøm om The Machine er en vision om en computer, der ikke skelner mellem permanent lager og arbejdslager.

Den computer, vi arbejder med i dag, bygger på et princip om, at data skal hentes fra et stort, men langsomt lager og lægges i et hurtigt lager, der dog ikke er i stand til at huske data uden strøm.

Altså at indlæse noget fra en harddisk og lægge det i RAM.

Flash-hukommelse har allerede stukket spidsen af kæppen i hjulet ved at være en faktor 100 hurtigere end harddisken. Til gengæld er flash hæmmet af prisen pr. gigabyte. Flash bliver imidlertid meget hurtigt billigt.

Lige om hjørnet er endnu hurtigere typer lagermedier, så vi på halvandet årti kan gå fra svartider målt i millisekunder til mikrosekunder og til slut i nanosekunder.

Det betyder, at processoren ikke længere skal vente på, at data bliver hentet fra lageret. Flaskehalsen kan blive, at der ikke er nok regnekapacitet i processoren til at udnytte den hastighed, vi kan hente data med.

Derfor arbejdes der på parallel databehandling på stor skala, hvor flere hundrede eller tusinder af processorkerner i en enkelt regneenhed arbejder sammen.

I stedet for, at hver enkelt processor skal kunne følge med, så kompenserer man ved at bruge flere processorer.

Antallet af transistorer på en chip har nogenlunde fulgt en eksponentiel udvikling, som det ses på denne graf over forskellige processorer fra Ourworldindata.org. Men ser man på de enkelte processorserier, så kan det ses, at udviklingen ikke har været konstant, men er foregået i forskellige hastigheder set over 50 år. Illustration: Ourworldindata.org

Netværket bliver hurtigere

Hastigheden på netværk er også vokset eksponentielt. Det betyder, at vi kan overføre en stadig større datamængde inden for et givet tidsrum.

Det er især interessant, når vi ser det samtidig med endnu en eksponentiel udvikling, nemlig mængden af data, vi genererer.

Vil vores bunker af data vokse hurtigere end netværket?

Hvis netværkshastigheden spurter fra vores datavækst, så betyder det, at det bliver mindre relevant at have et stort lager tæt ved regnekraften, for vi vil kunne overføre vores data så hurtigt, at netværket ikke bliver en flaskehals.

Hvis datamængden derimod vokser hurtigere end netværkshastigheden, så bliver det afgørende, at regnekraft og data er tæt på hinanden. Det kan blive vigtigt for, om cloud computing har en fremtid for data, der ikke er født i skyen.

Læs også: Kommentar: Skyen bliver afgørende når Moores Lov rammer muren

Det kan gå rigtig hurtigt - lige om lidt

Disse eksponentielle udviklinger er ikke naturlove, og ser man nærmere på dem, så sker udviklingen mere præcist i spring, hvor et nyt gennembrud skaber hurtig vækst i en periode, hvorefter udviklingen begynder at flade ud, indtil der kommer et nyt gennembrud.

Reelt skal vi altså have yderligere to faktorer med i vores analyse af teknologiudviklingen: Hvor hyppigt forekommer disse spring, og hvor længe varer de?

Hvis Moores Lov for alvor begynder at flade ud i begyndelsen af 2020'erne, fordi det bliver for dyrt at fortsætte i det nuværende tempo, mens eksempelvis storage kunne blive accelereret af nye non-volatile hukommelsestyper end NAND flash, så kan det rykke ved den balance, der hidtil har været.

Et eksempel fra fortiden er, hvordan først disketter og siden optiske lagermedier sakkede så meget bagud af udviklingen af de øvrige teknologier og ikke mindst datavæksten, at de på kort tid blev overflødiggjort.

Hvis den enkelte processor falder så meget bagud i forhold til de øvrige teknologier, så kan det helt gøre pc'en eller smartphonen, som den selvstændige computer, vi kender den i dag, forældet.

Tilsvarende kan langsom udvikling i mobilnetværkshastigheder i forhold til væksten i vores datamængder betyde, at vi bliver afskåret fra alt andet end den absolut minimale kommunikation med skyen.

Det er hér egenskaberne ved eksponentiel vækst for alvor kommer ind i billedet. Hvis én af vores centrale teknologier holder op med at vokse i dens nuværende hastighed, så spurter de øvrige teknologier meget hurtigt fra den.

Medmindre de øvrige teknologier er så afhængige af den teknologi, der går i stå, at de også bliver bremset. Det er dét, der meget vel kan ske, hvis det lige om lidt bliver umuligt at øge regnekraften i en chip eksponentielt, fordi regnekraft er afgørende for behandling af data og dermed computeren, som vi kender den.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Følg forløbet
Kommentarer (5)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
#1 Deleted User

Da det er en gennemgang af udviklingstendenser, kunne en henvisning til Amdahls lov anvendt på parallelisme være interessant:

https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/AmdahlsLaw.svg...

...hvilket med andre ord viser at det maksimale speedup hvis et program er 95% parallelt og kun 5% synkronisering/seriel kode, er ca 20x, ved omkring 2000 kerner. Dér kan man tale om et knæ ;-)

Anyway, undskyld for tangenten, men kunne ikke lade være med at tænke derpå.

  • 0
  • 0
#2 Richard Foersom

@Jesper Stein Sandal Layout på denne side bliver vildt bredt på Firefox fordi billedet med Moore lov har disse to parametre sidst i img koden:

... height="2191" width="3000"

Hvis det blev ændret til blot denne ene parameter:

... width="100%"

så ser siden meget bedre ud!

Problemet er ikke på Opera / Chrome, nok fordi den dropper parametrene som alt for store.

  • 1
  • 0
#3 Troels Henriksen

Man skal passe på med at generalisere for meget med Amdahl's Lov. Der findes mere parallelisme end man tror, især når det kommer til systemer med megen samtidighed/multiprogrammering. Overvej en webserver der konstant er i færd med at servicere 1000 forbindelser - det er en grad-1000 parallelisme allerede før man kigger på parallelisme inde i hver forbindelse for sig selv. Så gør det ikke noget at størsteparten af én forbindelse måske er sekventiel beregning, for der er altid nok forbindelser til at udfylde CPUerne. I praksis er et sådan system, betragtet som en helhed, tæt på 100% parallelt.

Ovennævnte er hvad man kalder "svag" skalering (hvor man ved at tilføje maskinkraft kan udføre mere arbejde på samme tid), i modsætning til "stærk" skalering (hvor man udfører samme arbejde på mindre tid). Svag skalering er, navnet til trods, ofte hvad man egentlig er ude efter.

  • 1
  • 0
#4 Deleted User

Oh I know.

Men man kan så også beskrive netop dét case som et tilfælde af >99% parallelisme, hvor det serielle er minimalt. I hvilket tilfælde et x100+-speedup er muligt. Og funktionen opfører sig sådan, således at 100% parallelisme = +infinity, da man i dét tilfælde dividerer med 0...

Noget helt andet er jo så, at flaskehalsen i det scenarie næppe er CPU såfremt webapplikationen ikke er sat helt gakket op - men storagelatens/throughput osv osv...

Der findes masser af eksempler på ting, som er helt vanvittigt paralleliserbare; path tracing indenfor 3D rendering fx. Det eneste serielle er en periodisk gathering af samples (og så et sample count for at vægte det). Det skalerer næsten 1:1 med antallet af kerner.

Men så er der så alle de andre ting der ikke er - og det er så dem, der er udfordringen, også for CPU designere. Kan anbefale en interessant talk med Sophie Wilson (nok mest kendt for design af ARM-instruktionssættet) omkring fremtidens retninger indenfor CPU-design...

  • 1
  • 0
#5 Jesper Stein Sandal

Layout på denne side bliver vildt bredt på Firefox fordi billedet med Moore lov har disse to parametre sidst i img koden:

... height="2191" width="3000"

Hvis det blev ændret til blot denne ene parameter:

... width="100%"

så ser siden meget bedre ud!

Jeg har meldt fejlen til webudviklerne (af uvisse grunde har jeg ikke adgang til at rode med, hvordan Drupals PHP genererer HTML (min mistanke er, at det involverer noget med rand())). ;)

Jeg kunne ikke genskabe fejlen i Firefox (Win10), men kunne til gengæld i IE. Webudviklerne sagde, at de ikke kunne genskabe den i Firefox, og så har de ikke gjort mere ved den. Det rykker jeg dem i ørerne for (fejlen har nemlig været der tidligere).

Drupals billedmodul er dog, well ... lad os kalde det 'work in progress'.

  • 2
  • 0
Log ind eller Opret konto for at kommentere