Embedded cloud computing

Door RoadRunner84 op donderdag 15 juli 2010 21:37 - Reacties (9)
Categorie: -, Views: 3.884

Embedded cloud computing: dood van de CPU deel 2
Eerder schreef ik al dat ik van mening was dat de centrale processor eenheid (ofwel CPU) zijn langste tijd gehad heeft. Nu kwam een ruime week geleden deze review voorbij op de frontpage en wil ik dit mijn eerdere blogartikel en dit frontpage artikel samen laten gaan in een nieuw blogartikel. Bij dezen dus een nieuw artikel dat ik wereldkundig maak waar het gros van de Tweakers niet op zit te wachten :P

Korte samenvatting van mijn vorige blog
Voor de luie lezer: steeds vaker zien we dat het centrale idee in computer systemen wordt losgelaten. Dit zien we in principe terug in de scheiding van grafische berekeningen en anderssoortige berekeningen in een GPU resp. CPU. We zien het recenter terug in multicore processors. Dit heeft zijn weerslag in de manier waarop wij applicaties opbouwen; van een hoofdtaak die subtaken aanroept gaan we naar een abstracter principe van taken die elkaar aanvuren of aangevuurd worden door events. In extreem zou een proces in honderden kleine microtaakjes verdeeld kunnen worden, al zien we dat nu niet niet terug.

Cloud computing
Even vooropgesteld: ik ga het niet hebben (denk ik) over IAAS, SAAS of PAAS (hupeldepup as a service). Dit zijn voornamelijk marketingtechnische begrippen en maken een ietwat kunstmatig onderscheid tussen de verschillende verantwoordelijkheidsgebieden die een clouddienst kan hebben. Ik gebruik dus ook een wat ruimere en misschien rekbaardere term voor cloud computing dan degenen die ermee werken hanteren.

Cloud computing is het organisch distribueren van taken, resources en infrastructuur over beschikbare middelen aan de hand van de eisen. De Apache webserver bijvoorbeeld (de <2.x serie ten minste) is geen cloudapplicatie omdat het alleen taken kan creeŽren aan de hand van de vraag, maar dit niet over de gehele breedte van beschibare middelen kan. Apache kan alleen organisch gedrag vertonen binnen de muren van een enkel server systeem. ... zolang we geen loadbalancer module laden die requests naar andere servers overdraagt.

Het kunnen overdragen van taken naar andere systemen is dus (volgens mijn inzichten) een essentieel onderdeel van wat cloud computing en dynamic resource allocation onderscheidt. Daar wil ik dus hieronder ook verder over uitweiden: kan cloud computing ook gebruikt worden voor andere taken dan de huidige set toepassingen? Of meer specifiek: kunnen de verworvenheden van cloud computing ook gebruikt worden op small scale embedded niveau?

Embedded distributed computing
Embedded netwerken zijn een relatief nieuwe ontwikkeling. Je zou een fabriekslijn met PLC componenten een embedded netwerk kunnen noemen, maar de iets serieuzere netwerken zijn tot nog toch maar op twee vakgebieden te vinden, de smartdust/sensorswarm lab projecten en domotica systemen. Smartdust of sensorswarm netwerken zijn helaas sterk hiŽrarchisch ingedeeld; een zeer beperkt aantal high-power transceivers (vaak maar ťťn) en een berg sensors/routers die allemaal dezelfde taak vervullen, maar op een net iets andere plek. Daarmee is domotica veel interessanter voor deze beschouwing.

Domotica systemen bevatten heden ten dage veel schakelaars en dimmers, gecomplementeerd met een beperkt aantal sensors. Hiermee probeert het voort te bouwen op het klassieke bedrade huis, maar met wat gemakken toegevoegd door sensors te gebruiken. Dat heeft natuurlijk te maken met de marketing erachter; domotica is ofwel zodat mensen langer zelfstandig thuis kunnen wonen, ofwel zodat er energie bespaard kan worden. Deze marketing laat ik even links liggen en zie domotica dus als het "huis van de toekomst", zoals we dat vroeger kenden, zonder me te bekommeren over de levensvatbaarheid van zo'n idee.

Dus, vanuit dit meer flexibele domotica systeem beschouwen we de mogelijkheden om hier cloud-achtige functies aan toe te kennen. In een statisch domotica systeem zal het "brein" van het systeem ofwel een centrale krachtige node zijn (bijvoorbeeld een PC), ofwel gedistribueerd over de verschillende elementen. Een schakelaar kan bijvoorbeeld een reeks dimmers instrueren, of andersom een dimmer luisteren naar events van verschillende schakelaars.

Embedded cloud computing
Om de kracht van cloud computing terug te zien in een embedded netwerk zoals een domotica systeem zal een soort tussenvorm moeten ontstaan tussen de hierboven genoemde benaderingen die als het ware de kracht van beiden combineert. Een cloud gebaseerd domotica systeem zal dus de intelligentie en taken verdelen over de elementen (verschillende microcontrollers die in het netwerk aanwezig zijn), maar op zo'n manier dat het beheer ervan is alsof er ťťn geheel van actuatoren en sensoren is; het netwerk wordt geheel transparant.

De mogelijkheden hiervan zijn in feite hetzelfde als die van een reguliere cloud: de beperkingen van ťťn microcontroller tellen niet meer, bij een tekort aan rekenkracht kan een deel van de taakhuishouding gemigreerd worden naar een andere microcontroller. Andersom kunnen taken geconcentreerd worden om zo meer microcontrollers in diepe stand-by mode te kunnen schakelen. Het vervangen van elementen is een minder groot issue, een element hoeft alleen zijn effectieve actuatoren en sensoren bekend te maken, de control software ervoor is immers al aanwezig in de cloud op de ene of de andere microcontroller.

De vraag is nu of dit zinvol is. Ik denk van wel, op deze manier kan er wat energiewinst gehaald worden. Maar dat is niet het grootste voordeel van embedded clouds; het grootste voordeel zit in de transparante structuur. Waar in een klassiek systeem iedere microcontroller expliciet voorzien werd van een firmware en een strikte taak toebedeeld kreeg, zal in een embedded cloud niet gedacht worden in losse controllers. Eerder wordt gedacht in fysiek afzonderlijke actuatoren of sensoren.

Waar eerst controllers met elkaar praatten zijn dat nu processen. Of die processen nou op dezelfde of op verschillende microcontrollers draaien is geen issue meer; de cloud abstractie zorgt voor de communicatie tussen de processen. Natuurlijk moet er in deze laag wel rekening gehouden worden met real-time gedrag; een lopende band mag niet per ongeluk een meter te ver draaien door "lag" in het netwerk. Gelukkig zijn deze problemen in multi-threading systemen al lang opgelost met charmante constructies, gelijkwaardige constructies voor multi-processor omgevingen zullen ook verwezenlijkt worden. Problemen als starvation en dead-lock zullen nu vervangen worden door denail-of-service en network reliability.

Embedded clouds in het extreme
In mijn vorige artikel trok ik het idee van multi-core door tot in het extreme, datzelfde doe ik nu ook. Noem het toekomstmuziek. Stel nou dat ik ieder klein aspect van mijn firmware kan indelen in een minuscuul procesje, dan wordt het mogelijk om niet alleen op microcontroller niveau taken te verdelen maar zelfs op peripheral niveau. En ook hier weer, de processor core van een microcontroller is net zo goed een peripheral als een analoog-digitaal converter, een seriŽle bus controller of een klokmodule. Een microcontroller die de mogelijkheid heeft om in een super-low power mode te gaan waarbij alleen de real-time clock nog werkt, wat is er dan op tegen om een taak over te hevelen naar een andere microcontroller en in deze slaapstand te gaan voor een gestelde tijd (bijvoorbeeld tot 12 uur 's nachts). Door op deze wijze taken te verschuiven afhankelijk van wat er gebeuren moet kan een cloud super efficiŽnt met zijn middelen omgaan.

Of dit een vatbaar idee is, en of het ooit gaat gebeuren weet ik niet. Maar het is een interessant idee. Er zijn talen die zich geheel richten op taken, events of actoren, in plaats van reeksen instructies. Wellicht dat dit in de toekomst de manier van werken wordt voor netwerken van intelligente stukjes huis of van de ingewanden van je telefoon. Tot die tijd blijf ik lekker doorgaan met gedachtespinsels over waar dit ons ooit gaat brengen.

Tweakers stemmen anders

Door RoadRunner84 op donderdag 10 juni 2010 11:21 - Reacties (44)
Categorie: -, Views: 5.662

Deze ochtend twee blogposts. Zoals sommigen wel weten heeft Mute jonstleden een poll aangeslingerd om te peilen woorop gestemd wordt bij de verkiezingen voor de tweede kanmer. Het leek me leuk om deze eens te vergelijken met de landelijke tussenstand van de NOS. Even een disclaimer vooraf:
  • De poll van Mute is nog niet gesloten, er zijn 815 votes uitgevoerd waarvan 37 niet stemmen of blanco stemmen.
  • De NOS heeft 99.5% van de stemmen geteld met een opkomst van 74,6%.
  • De blanco en niet-stemmen zijn niet opgenomen in deze vergelijking.
  • Het betreft hier voor beiden een snapshot van kwart voor elf op 10 juni.
Omdat een plaatje (of twee) meer zegt dan duizend woorden:
tussenstand volgens Mute
tussenstand volgens NOS

Blauw is NOS, rood is Mute's poll. De twee grafieken representeren hetzelfde, maar zijn gesorteerd naar aflopende grootte van partijen.

Mijn constateringen:
  • Tweakers stemmen bovenmatig VVD en D66.
  • Tweakers stemmen wel op nieuwe partijen, in bijzonder piraten partij (wie had dat gedacht) en Mens en Spirit (zweverige typjes hier? ;))
  • PvdA en CDA hebben voor Tweakers echt afgedaan, waarschijnlijk is dit te vinden in de leeftijdsverdeling (veel oude mensen stemmen uit gewoonte voorgaande partijen).
  • SP wordt iets minder dan landelijk door Tweakers gekozen.
Dan mijn breinstorm sessie voor coalities:

Landelijk: VVD, PvdA, D66 / VVD, PvdA, GL
Ik zie het niet gebeuren dat CDA en PvdA samen gaan regeren, misschien heb ik dat mis. Ik vermoed dat VVD sowieso in de regering komt, als CDA en PvdA samen willen regeren zonder VVD zouden ze drie andere partijen erbij moeten halen voor een meerderheid, of SP moeten omarmen, wat ik niet zie gebeuren. PVV wordt door alle partijen buiten spel gelaten.
De beide voorstellen zijn minderheids kabinetten, dus wellicht dat zowel D66 als GL in het kabinet geraken.

Tweakers: VVD, D66, GL
Een redelijke overlap, waar landelijk PvdA mee speelt zla volgens Tweakers deze juist achterwege blijven, terwijl de landelijke "derde partij" in de regering volgens de twee voorstellen (van mij) samen zullen komen.

Ik ben geen politicus of hoog intelectueel, dus hecht hier niet teveel waarde aan, een discussie is nochtans welkom :D

Coltruien

Door RoadRunner84 op donderdag 10 juni 2010 10:19 - Reacties (11)
Categorie: -, Views: 4.536

coltrui
Coltrui: Trui met een hoge, nauwsluitende boord die vaak naar beneden is gerold of omgeslagen. / Schrijver van literaire tekst.

Coltruien: meerv. / werkw. Het tot stand komen van een col. ik ~, jij ~t, wij ~en, ik heb ge~t

Col: Kraag v/e coltrui / Afkorting van column / Litreraire uitspatting van Coltrui

Breien: zie coltruien

Kantklossen: een poging tot coltruien van iemand anders dan Coltrui
tweakblogs@Google

[CiP] Roadrunner2010

Door RoadRunner84 op donderdag 3 juni 2010 12:46 - Reacties (25)
Categorie: -, Views: 4.270

Eerder hebben andere ze ook al aangekondigd, maar dit is voor mij de eerste keer. Niet de eerste keer dat ik een casemod doe (ik heb een plexiglas mini-itx thuis staan), maar daar gaat het nu ook niet over. Deze post gaat over werknaam Roadrunner2010, mijn eerste Child in Progress :D

Lees verder »

Dood aan/van de CPU

Door RoadRunner84 op dinsdag 18 mei 2010 10:57 - Reacties (26)
Categorie: -, Views: 5.256

Terugblik op de CPU
Het is al een tijdje gaande, maar het is toch iets om even bij stil te staan: de CPU gaat eraan.
Wat? Hoe kunnen we nou zonder processors?
Dat zeg ik niet, de centrale processor unit gaat eraan, niet de processor in zijn algemeenheid. We zien het op allerlei vlakken terugkomen. De tijd dat we een single-core processor in onze thuiscomputertjes hadden zitten is al enige tijd achter ons, nog verder terug zagen we al de differentiatie van de GPU en de CPU.

Lees verder »