You are here

Ongelimiteerd Pokemons vangen dankzij Bogdan Ghit

Nog even het bijschrift bij een afbeelding aanpassen, de laatste typefout eruit halen en dan is Bogdan Ghit zo ver: zijn proefschrift kan naar de drukker en hij kan promoveren. 'Het is een beetje zoals een vriend van me zegt: je proefschrift is nooit helemaal klaar, maar op een gegeven moment moet je hem verlaten', aldus Ghit. Tekst: Edda Heinsman

Data-explosie

'Er heeft de laatste tien jaar een explosie plaats gevonden; afbeeldingen, filmpjes, geluid’, begint Bogdan Ghit en hij houdt theatraal zijn armen wijd uit elkaar in de lucht terwijl hij uitlegt hoe groot hetgeen is waar hij aan werkt. Elk groot bedrijf gebruikt en beschikt over enorme hoeveelheden data. Bergen data die bij elkaar gespaard worden in uiteenlopende gadgets, met verschillende sensoren. Alles wordt bijgehouden en gemonitord, en er komt alleen maar meer data bij'. Hoe deze data te verwerken, is een steeds grotere vraag waar zowel het bedrijfsleven als onderzoeksinstellingen mee kampen. En Bogdan Ghit komt met de oplossing.

'Er is zoveel data dat een enkele computer het niet meer aan kan. Er is meer geheugen nodig, namelijk de capaciteit van datacenters van duizenden computers. Sociale netwerken als Facebook, maar ook online games, apps als Pokemon, of email, allemaal voorbeelden van applicaties die via een datacenter lopen, via een gedistribueerd netwerk.'

Als gebruiker merk je er weinig van, maar het is een enorme uitdaging om de applicaties in een datacenter efficiënt te laten lopen. 'Mijn onderzoek gaat over de algoritmische problemen die zich voordoen in datacenters. Zo'n datacenter wordt vaak gedeeld door een groot aantal gebruikers. De applicaties die ze runnen zijn niet vergelijkbaar in benodigde capaciteit. Hoe verdeel je dan de data van de applicaties over meerdere machines op een efficiënte manier?' Daarvoor moeten ze parallel rekenen en goed om kunnen gaan met fouten. 'Datacenters zijn heel succesvol, ze laten alleen aan de gebruiker zien wat die wil zien, maar op de achtergrond gaat vaak veel mis. Serverfouten zijn eerder regel dan uitzondering.'

Wachttijd bij de kassa

Een van de dingen waar Ghit zich over boog, is het zo optimaal mogelijk inroosteren van de opdrachten voor een datacentrum. 'Vergelijk het met de supermarkt. In plaats van de kassa heb je verschillende servers, de klant is een applicatie. Je hebt heel veel verschillende klanten, grote en kleine. Je wilt kleine snelle klanten niet te lang laten wachten. Maar het lastige is, dat je van te voren niet goed weet hoe groot de klant is. Ik wil de klanten zo inplannen dat de wachttijd niet te lang is. Dat je voor een opdracht die een minuut kost om uit te rekenen, niet eerst een uur in de wachtrij staat.' Ghit ontwikkelde een systeem om de juiste klant in de juiste wachtrij te plaatsen. Het systeem observeert het gedrag van elke klant. De een heeft elke minuut toegang tot het datacenter nodig, de ander heel af en toe. De een veel rekenkracht, de ander weinig. Uiteindelijk plaatst hij ieder in de beste wachtrij, je krijgt een gebalanceerde performance.

Schematisch overzicht van Ghits wachtrij-model om een gebalanceerde performance te behalen. 'Het idee is dat we de servers van de datacenters opdelen in losse partitities. We limiteren de hoeveelheid rekentijd die taken krijgen op elke afdeling door wekkertjes te zetten. Als een taak te lang duurt en de ingestelde tijd van wekkertje 1 overschrijdt, stopt hij en gaat hij verder op partititie 2. Op die manier worden de kleinere taken sneller uitgevoerd op partititie 1.' Lachtend voegt hij toe: 'Als je het vergelijkt met de supermarkt: afdeling 1 is de snelkassa, een rij waar alleen klanten mogen afrekenen met minder dan vijf producten.' 

Ghit mocht zijn resultaat publiceren tijdens Sigmetrics. 'Dit is echt een topconferentie, heel prestigieus. Voor zover ik weet zijn er maar drie artikelen door computer scientists uit Nederland gepubliceerd en één daarvan is van mij. Dat was echt wel een hoogtepunt van mijn promotieonderzoek. En het voordeel is dat het al kwam in een vroege fase, in mijn tweede jaar. Toen wist ik dat ik op de goede weg zat. Dat had ik overigens niet kunnen bereiken zonder de waardevolle begeleiding en de toewijding van mijn promotor, Dick Epema. Ik ben heel blij dat ik Dick als supervisor en mentor had.'

Fouten

Een ander punt waar Ghit mee aan de slag ging, is het omgaan met fouten. De opdrachten voor een datacenter worden niet opgeslagen op één disk, maar verdeeld over verschillende geheugens. Daardoor gaat het sneller, maar als er een foutje in een van die geheugens zit, ben je de data kwijt. Gelukkig is deze informatie wel weer terug te vinden, alleen kost dat veel rekenkracht. De systemen hebben geleerd om te gaan met dit soort fouten. Wanneer ze een opdracht krijgen, merken ze het als er iets vreemds mee aan de hand is, iets anders dan ze voorheen hebben gedaan. Vervolgens gaan ze op zoek naar de originele dataset. De hoeveelheid bewaarde informatie kan heel groot worden. Ghit bedacht een manier om alleen bepaalde selectieve data te bewaren, die lastig is om opnieuw te berekenen. Daardoor werd het systeem een stuk sneller.

Ghit is enthousiast over zijn oplossing en denkt dat het bedrijfsleven er ook op zit te wachten. 'In de Distributed Systems group aan de TU Delft doen we zowel fundamenteel als experimenteel onderzoek. Dat is aantrekkelijk voor grote bedrijven die datacenters beheren, denk aan Google of Facebook. Onze resultaten tonen aan dat productieclusters niet in staat zijn een gebalanceerde performance te bieden indien er verschillende applicaties worden aangeboden. Bovendien zijn ze niet snel in het herstellen van verdwenen werk wanneer er iets fout gaat. We analyseerden welke fundamentele verroosteringsproblemen voorkomen in datacenters, en zochten naar elegante oplossingen die wijd toepasbaar en eenvoudig in te zetten zijn in echte systemen.' Ghit valideerde zijn systemen middels experimenten in het datacenter DAS. 'Dit Nederlandse mulicluster-systeem is een uitstekend onderzoeksmiddel voor promovendi in onze groep.'

Onafhankelijk

Sinds zijn bachelor werkt Ghit al aan gedistribueerd rekenen, hij vindt het interessant om te zien hoe het onderzoeksveld zich evolueert. Trots kijkt hij terug op zijn loopbaan tot nu toe. 'Ik heb ervaring opgedaan als een onafhankelijke wetenschapper. Nu ben ik in staat een probleem te identificeren, te analyseren en er vervolgens praktisch mee aan de slag te gaan. Ik heb een breed toepasbare oplossing gebouwd. Je ontwikkelt bepaalde bekwaamheden, je ontdekt kwaliteiten van jezelf waarvan je niet wist dat je ze had', lacht Ghit. 'Kritisch denken, daar ligt de nadruk. Mijn opleiding in wiskunde speelt ook een grote rol, dat helpt om het abstracte niveau te begrijpen, de correlatie te zien.'

Afgelopen zomer liep hij stage bij het IBM Thomas J. Watson onderzoekscentrum in New York. 'Het was een mooie afsluiting van mijn promotie-onderzoek. Ik kon daar werken in een bedrijfsomgeving en tegelijk mijn promotieonderzoek in de praktijk toepassen.' Na zijn promotie wil Ghit doorgaan met zijn onderzoek, maar dan wel in het bedrijfsleven. 'Het optimaliseren van de performance van datacenters, zowel voor industrie als universiteit interessant. Ik ben vooral nieuwsgierig naar het bedrijfsleven. Die kant wil ik op, ik zit nu midden in de besprekingen.'

Bogdan Ghit (1986) haalde zijn bachelor computer science aan de University Politehnica Bucharest (Roemenië). Hij deed een dubbele master in parallel and distributed computing systems in Bucharest en aan de Vrije Universiteit Amsterdam. In 2012 begon hij aan de Technische Universiteit Delft aan zijn promotieonderzoek onder begeleiding van Professor Dick Epema. Op 8 mei 2017 promoveerde hij daar met het proefschrift Optimizing the performance of data analytics frameworks. Zijn onderzoek werd gefinancierd door Commit.