AKAT-1, een analoge computer. Ooit state of the art. Zullen analoge computers weer een comeback maken? Bron: Wikimedia Commons

Analoge computer maakt comeback

Analoge computers zijn uit. Alle computers die we uit het dagelijkse leven kennen zijn digitale computers. Kwantumcomputers komen steeds meer in het nieuws. Nu is de analoge computer met een eigen programmeertaal veel gebruiksvriendelijker geworden. Komt er een comeback?

Wat zijn analoge computers?
Computers zijn apparaten die rekenen, ruimer gezegd: informatie verwerken. Dat kan op verschillende manieren. De computers die wij uit het dagelijkse leven kennen maken gebruik van twee spanningsniveaus, die worden geïnterpreteerd als 0 en 1. Deze digitale computers zijn veel sneller wat betreft het verwerken van exacte getallen dan andere types computers. Ook zijn ze gemakkelijk te programmeren. Geen wonder dus, dat we nu al twee generaties massaal gebruik maken van digitale computers, en niet van analoge computers zoals rekenlinialen.

Analoge computers vormen een analogie (overeenkomstige structuur) van een systeem waaraan ze berekeningen verrichten. Eigenlijk kan je hier dus beter spreken van een meting dan van een berekening. In de jaren vijftig gebruikte het CBS een indrukwekkend buizensysteem om de pseudowetenschap der economie mee te beoefenen. Deze analoge computer werkte door middel van het principe van de communicerende vaten. Hieronder een filmpje met een overgebleven exemplaar van zo’n ding, de MONIAC.

Sommige vraagstukken zijn in feite makkelijker met een analoge, dan met een digitale computer aan te pakken. Een differentiaalvergelijking, bijvoorbeeld, is lastig om numeriek uit te drukken. Het kost een digitale computer vele rekenstappen met algoritmes als Runge-Kutta om de uitkomst van een differentiaalvergelijking vast te stellen. Met een analoge computer kan dat in principe vrijwel direct, ongeacht hoe ingewikkeld het stelsel van differentiaalvergelijkingen is. Hiervoor wordt het vaakste gebruik gemaakt van een elektronische analoge computer. De verandering van een elektrische stroom (m.a.w. de differentiaal) wekt een magnetisch veld op. Hoe meer verandering, hoe sterker de magnetische piek. Meet dat magnetische veld met de gewenste nauwkeurigheid en zie, daar is in een fractie van een seconde je antwoord, terwijl de digitale computer nog zucht en kreunt.

AKAT-1, een analoge computer. Ooit state of the art. Zullen analoge computers weer een comeback maken? Bron: Wikimedia Commons
AKAT-1, een analoge computer. Ooit state of the art. Zullen analoge computers weer een comeback maken? Bron: Wikimedia Commons

Programmeren tot nu bottleneck
Dit klinkt te mooi om waar te zijn en dat is het dan ook. De voornaamste bottleneck voor de analoge computer is de enorme moeite die het kost om dit juweel te programmeren. In de jaren vijftig was er domweg geen andere keus, maar nu kunnen differentiaalvergelijkingen eenvoudig in programma’s als Maple of Mathematica, of voor de minder pecuniair gezegenden, het open-source alternatief Sagemath, ingevoerd worden. Digitale computer zijn zo snel, dat zelfs de omslachtige digitale manier toch snel resultaat oplevert. Al kosten echt uitgebreide stelsels, zoals die je nodig hebt om complexe biologische systemen na te bootsen, nog steeds erg veel rekentijd. Niet voor niets kijken veel wetenschappers nog steeds verlekkerd naar de mogelijkheden van analoge computers.

Wat zijn afgeleides en differentiaalvergelijkingen? Wat kan je er mee?
Differentiaalvergelijkingen beschrijven de relatie tussen een functie, f(x) en de afgeleide van een functie, f'(x). In normale mensentaal: tussen de functie en de veranderingssnelheid van een functie. Als je weet hoe een functie zich gedraagt, kan je het gedrag voorspellen.

Logistische (sigmoïde) curve. Bron: Wikipedia
Logistische (sigmoïde) curve. Bron: Wikipedia

Zo zijn er veel groeiprocessen, bijvoorbeeld die van een markt, die zich gedragen als een zogeheten sigmoïde, een s-vormige functie. De afgeleide van deze s-vorm is de bekende klokfunctie of normale verdeling, een heuvel rond het nulpunt. Als je als startende ondernemer in een markt actief wilt zijn, is het slim om een markt te kiezen die steeds sneller groeit. Met andere woorden: waarvan de afgeleide groeit. Neemt deze groeisnelheid af, dan wordt de concurrentie moordend en zijn je kansen maar klein. Ik zag bij een multilevel-marketingbedrijf in Nederland een grafiekje van de meer ontwikkelde Duitse markt en herkende de sigmoïde. Dus geloofde ik de juichverhalen over de Nederlandse markt, die het beginstukje van de sigmoïde vormde, niet meer. Deze zou, kon ik afleiden, onvermijdelijk ook stagneren.

Met een enkele differentiaalvergelijking kan je bijvoorbeeld heel mooi natuurkundige velden beschrijven. Groepen differentiaalvergelijkingen geven de wisselwerking weer in een ingewikkelder systeem, zoals een lichaamscel of een chemische reactor. Als je het gedrag van deze differentiaalvergelijkingen kan voorspellen, ken je het systeem en het gedrag van het systeem. En, kennis is macht.

Programmeertaal voor analoge computers
Enkele van die mensen die de beperkingen van digitale computers zat zijn, zijn prof. Martin Rinard van de Amerikaanse topuniversiteit MIT en  voormalige collega Rahul Sapeshkar, die met een aantal doctoraalstudenten een analoge chip hebben ontwikkeld. Hiermee kunnen analoge berekeningen worden uitgevoerd. De chip kan wel door middel van een digitale computer worden geprogrammeerd en uitgelezen. Zij hebben hiervoor een programmeertaal voor deze chip (en soortgelijke chips) ontwikkeld.
In Arco, de programmeertaal van de groep onderzoekers, kunnen differentiaalvergelijkingen gemakkelijk worden toegevoerd. Het kost per differentiaalvergelijking ongeveer een minuut om deze in te programmeren. Zelfs een complex stelsel van zeventig differentiaalvergelijkingen kan in ongeveer een uur worden ingevoerd en gecompileerd. Zoals bij alle analoge computers zijn de resultaten in principe vrijwel onmiddellijk bekend.
Met een eenvoudige chip kan zo een supercomputer worden vervangen. Althans: voor dit soort simulaties.

Bron
Sara Achour, Rahul Sarpeshkar, and Martin Rinard, Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2016), Santa Barbara, CA, June 2016

Laat een reactie achter