Varför algoritmer suger och analoga datorer är framtiden

Jag vet att rubriken på denna artikel kan låta lite provocerande, men det är sant: Algoritmisk beräkning är helt enkelt inte så bra när det gäller problem som kräver enorma mängder processorkraft.

Klipp bara på den senaste Top500-listan över högpresterande datorer. För närvarande är den mest kraftfulla superdatorn Sunway TaihuLight vid National Supercomputing Center i Wuxi, Kina. Denna gigant levererar hela 93 petaflops (en petaflop motsvarar en kvadriljon flyttaloperationer per sekund), vilket verkligen är ofattbart.

Superdatorer och energiförbrukning

En sådan enorm processorkraft har dock ett pris. I det här fallet krävs det 10 649 600 bearbetningsenheter, så kallade kärnor, som förbrukar 15 371 megawatt – en mängd el som skulle kunna försörja en liten stad med cirka 16 000 invånare baserat på en genomsnittlig energiförbrukning som motsvarar San Franciscos.

Om vi vänder uppmärksamheten bort från de kraftfullaste superdatorerna och fokuserar på de mest energieffektiva i stället, kommer vi att hitta systemet TSUBAME3.0 vid Tokyo Institute of Technology på toppen av Green500-listan. Det levererar 14,11 gigaflops/watt med en total energiförbrukning på ”bara” 142 kilowatt som krävs för dess 36288 kärnor. När det gäller energieffektivitet är detta ungefär två gånger bättre än TaihuLight. Men 142 kilowatt är fortfarande väldigt mycket elkraft.

Men finns det inga superdatorer som inte kräver så mycket energi för att köras? Jo, det finns det: Den mänskliga hjärnan är ett bra exempel – dess processorkraft uppskattas till cirka 38 petaflops, ungefär två femtedelar av TaihuLights. Men allt den behöver för att fungera är cirka 20 watt energi. Watt, inte megawatt! Och ändå utför den uppgifter som – åtminstone hittills – ingen maskin någonsin har kunnat utföra.

”Finns det inga superdatorer som inte kräver så mycket energi för att köras? Jo, det finns det: Den mänskliga hjärnan är ett bra exempel.”

Vad orsakar denna skillnad? För det första är hjärnan så att säga en specialiserad dator, medan system som TaihuLight och TSUBAME3.0 är mycket mer allmängiltiga maskiner som kan hantera en mängd olika problem.

Maskiner som dessa programmeras med hjälp av en algoritm, ett så kallat program. I princip är detta en sekvens av instruktioner som varje processor utför genom att läsa dem från ett minnessubsystem, avkoda instruktionerna, hämta operander, utföra den begärda operationen, lagra tillbaka resultaten osv.

En ekonomisk superdator: Alla dessa minnesförfrågningar kräver en avsevärd mängd energi och gör att det hela blir betydligt långsammare. Att ha hundratusentals enskilda kärnor kräver också en invecklad sammankopplingsväv för att utbyta data mellan kärnorna vid behov, vilket också ökar den tid och kraft som krävs för att utföra en beräkning.

En hjärna arbetar däremot med ett helt annat tillvägagångssätt. Det finns inget program inblandat i dess funktion. Den ”programmeras” helt enkelt av sammankopplingarna mellan dess aktiva komponenter, mestadels så kallade neuroner.

Hjärnan behöver inte hämta instruktioner eller data från något minne, avkoda instruktioner osv. Neuronerna får indata från andra neuroner, bearbetar dessa data och genererar utdata som matas till mottagande neuroner. Okej – detta är lite förenklat, men det räcker för att ta oss till följande frågor:

  1. 1. Finns det inte en elektronisk motsvarighet till en sådan datorarkitektur?
  2. 2. Behöver vi verkligen superdatorer för allmänna ändamål?
  3. 3. Kan ett specialiserat system vara bättre för att hantera vissa problem?

Svaret på den första frågan är: Ja, det finns en elektronisk motsvarighet till en sådan arkitektur.

Den kallas analog dator.

Enter Analog Computers

”Analog” härstammar från det grekiska ordet ”analogon” som betyder ”modell”. Och det är precis vad en analog dator är: En modell för ett visst problem som sedan kan användas för att lösa just det problemet genom att simulera det.

Så kallade direkta analoger – som bygger på samma underliggande princip som det problem som undersöks – utgör den enklaste klassen av sådana analoga metoder. Tvålbubblor som används för att generera minimala ytor är ett klassiskt exempel på detta.

”En analog dator är en modell för ett visst problem som sedan kan användas för att lösa just det problemet genom att simulera det.”

En mer allmänt användbar klass innehåller indirekta analogier som kräver en mappning mellan problemet och datorområdet. Typiskt sett är sådana analogier baserade på analoga elektroniska kretsar som summer, integratorer och multiplikatorer. Men de kan också implementeras med hjälp av digitala komponenter, i vilket fall de kallas digitala differentialanalysatorer.

Båda tillvägagångssätten har ett gemensamt kännetecken: Det finns inget lagrat program som styr driften av en sådan dator. Istället programmerar man den genom att ändra sammankopplingen mellan dess många beräkningselement – ungefär som en hjärna.

Från analoga till hybriddatorer

Tänk på min egen analoga datorprototyp, som är ett exempel på en klassisk analog-elektronisk dator. Det kors och tvärs av trådar kan beskrivas som maskinens program. I det här fallet är den inställd på att simulera luftflödet runt en så kallad Joukowsky-flygel – ingen trivial uppgift.

Denna bild är tagen av Tibor Florestan Pluto och visar författarens egen analoga datorprototyp.

Alla maskinens beräkningselement arbetar i fullständig parallellitet utan något centralt eller distribuerat minne att komma åt och vänta på. Du programmerar datorn genom att koppla in och ut patchkablarna. Detta kan vara ganska användbart för en enskild forskare och i undervisningssyfte, men för en verklig analog dator för allmänna ändamål måste man göra sig av med detta manuella plåsterförfarande.

Troligtvis är det med dagens elektroniska teknik möjligt att bygga integrerade kretsar som inte bara innehåller de grundläggande beräkningselementen, utan även en tvärstång som kan programmeras från en ansluten digital dator, vilket gör att man helt och hållet kan eliminera råttnästet av sladdar.

Sådana analoga datorer uppnår extremt hög beräkningskraft för vissa problemklasser. Bland annat är de oöverträffade när det gäller att ta itu med problem baserade på differentialekvationer och system av dessa – vilket gäller många, om inte de flesta av dagens mest relevanta problem inom vetenskap och teknik.

I en artikel från 2005 beskrev till exempel Glenn E. R. Cowan en Very-Large-Scale-Integrated Analog Computer (VLSI), det vill säga en analog dator på ett chip, så att säga. Detta chip levererade hela 21 gigaflops per watt för en viss klass av differentialekvationer, vilket är bättre än dagens mest energieffektiva system på Green500-listan.

Den analoga framtiden för databehandling

Analog databehandling, som var den dominerande formen av högpresterande databehandling ända in på 1970-talet, har i stort sett fallit i glömska sedan dagens digitala datorer med lagrade program tog över. Men tiden är mogen för att ändra på detta.

”Morgondagens tillämpningar kräver starkare datorkraft vid mycket lägre energiförbrukning. Digitala datorer kan inte tillhandahålla detta.”

Morgondagens tillämpningar kräver starkare datorkraft vid mycket lägre energiförbrukning. Men digitala datorer kan helt enkelt inte tillhandahålla detta direkt. Så det är hög tid att börja utveckla moderna analoga samprocessorer som avlastar traditionella datorer från att lösa komplexa differentialekvationer. Resultatet skulle bli så kallade hybriddatorer.

Dessa maskiner skulle kunna erbjuda högre beräkningskraft än dagens superdatorer vid jämförbar energiförbrukning eller skulle kunna användas på områden där endast små mängder energi finns tillgängliga, som implanterade styrenheter inom medicin och andra inbyggda system.

Framtida utmaningar

Det är uppenbart att analoga beräkningar är mycket lovande för framtiden. Ett av de största problemen att ta itu med kommer att vara att programmeringen av analoga datorer skiljer sig helt från allt som studenterna lär sig på universitetet i dag.

I analoga datorer finns det inga algoritmer, inga slingor, ingenting som de känner till det. I stället finns det ett par enkla men kraftfulla datorelement som måste kopplas samman på ett smart sätt för att skapa en elektronisk analog till ett matematiskt beskrivet problem.

Tekniska utmaningar som kraftfulla sammankopplingar eller högintegrerade men ändå exakta datorelement verkar små i jämförelse med denna pedagogiska utmaning. I slutändan kommer förändringen av människors sätt att tänka på programmering att vara det största hindret för framtiden för analog databehandling.