Cloudcomputing in analytics: De hype ontraadseld

De hype ontraadseld
Is het mogelijk om data-intensieve analyses in de cloud uit te voeren, steunend op het Microsoft Windows Azure-platform? Ja, als je berekeningen en geheugenintensieve processen naar de cloud verschuift, is significante snelheidswinst mogelijk.
Karel Dejaeger, Seppe vanden Broucke, Tuomas Eerola, Lieve Goedhuys, Mikkel Riis, Rainer Wehkamp en Bart Baesens
Machine learning (ML)-technieken worden steeds vaker gebruikt binnen bedrijven en in onderzoek. Dat gebeurt bijvoorbeeld om verkoopprognoses op te stellen, om klantenverloop te voorspellen of om onderzoekers inzicht te verschaffen in de werking van DNA-moleculen en het ontstaan van het heelal1. ML wordt binnen bedrijven soms ook aangeduid met de termen ‘predictive analytics’ of ‘market analytics’, die dan steeds verwijzen naar het volledige proces van collectie en voorverwerking van data, samen met het gebruik van een vorm van wiskundige data-analyse om verborgen patronen in deze data te ontdekken. Doordat de automatisering van datacaptatieprocessen geleid heeft tot het verzamelen van steeds meer gegevens is manuele verwerking hiervan haast onmogelijk, en kan ook het gebruik van ML-technieken een hele uitdaging worden. Enkele cijfers om van te duizelen: Walmart, een grote Amerikaanse supermarktketen, slaat per uur gegevens op over meer dan één miljoen klantentransacties, en ook telco-operatoren zoals Base en KPN houden een overvloed aan gegevens bij; elk gebruik van hun netwerk wordt gelogd, wat aanleiding geeft tot enorme datahoeveelheden. Deze vloedgolf aan data overspoelt zowel bedrijven als academici, getuige ook de resultaten van de jaarlijkse peiling op KDnuggets (www.kdnuggets.com, figuur 1 ).
Figuur 1. De trend naar ‘big data’; surveyresultaten KDnuggets van 2010 tot 2012
Een tweede trend in predictive analytics is het gebruik van meer rekenintensieve algoritmen. Beschrijvende statistieken zoals de geografische verspreiding of evolutie van het klantenbestand blijven veel gebruikt, maar ML-technieken die daarenboven verborgen patronen kunnen onthullen (zoals welke klantsegmenten het meest winstgevend zijn in een bepaalde geografischeregio), winnen snel aan belang. Meestal zal er bij het gebruik van ML een afweging tussen computationele efficiëntie en voorspellende kracht moeten worden gemaakt. Krachtigere technieken gaan vaak hand in hand met een grotere computationele belasting. Figuur 2 toont een overzicht van het gebruik van ML-technieken.
Figuur 2. Het gebruik van ML-technieken; surveyresultaten KDnuggets 2012
De trend naar het verzamelen van meer data, samen met het gebruik van meer rekenintensieve algoritmen, heeft aanleiding gegeven tot het gebruik van nieuwe methoden om analyses uit te voeren, zoals het gebruik van de parallelle verwerkingskracht van grafische kaarten (GPU-computing), ‘distributed computing’ en cloudcomputing. In dit artikel gaan we dieper in op een van deze laatste hypes, cloudcomputing, en presenteren we een casestudie hierover die uitgevoerd werd aan de KU Leuven.
Cloudcomputing: de oplossing?
De exacte oorsprong van de term ‘cloudcomputing’ is onzeker, maar ze begon steeds meer op te duiken sinds de CEO van Google, Eric Schmidt, het gebruikte om het aanbieden van diensten direct aan de eindgebruiker over het netwerk te beschrijven. Sindsdien is de term gebruikt in zeer uiteenlopende contexten, en werden er bijgevolg verschillende definities voorgesteld. Het Amerikaanse instituut voor standaarden en technologie, NIST (National Institute of Standards and Technology, www.nist.gov), hanteert bijvoorbeeld deze definitie van cloudcomputing: ‘Cloudcomputing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.’ Over het algemeen worden de volgende vijf aspecten onderscheiden in bovenstaande definitie:
• Resource pooling: cloudgebaseerde diensten en hulpbronnen worden meestal uitgebaat door de cloudprovider in een datacenter; dit laat toe om bedrijfsrisico’s en onderhoudskosten af te wentelen op deze cloudprovider.
• Broad network access: diensten in de cloud laten bijna altijd webgebaseerde toegang toe.
• Measured service: het gebruik van cloudcomputing vereist geen voorafgaande investeringen in hardware, maar wordt aangerekend op basis van gebruik. Dit wordt aangeduid als het ‘pay as you go’ businessmodel.
• Rapid elasticity: de computing resources zijn steeds ter beschikking van de eindgebruiker, en afhankelijk van de vraag kunnen er dynamisch bijkomende computing resources beschikbaar gesteld worden.
• On-demand self-service: de eindgebruiker heeft op elk ogenblik toegang tot de diensten in de cloud via een online applicatie. Een aantal andere termen die vaak in één adem genoemd worden samen met cloudcomputing zijn distributed computing, grid computing, en utility computing. Distributed computing onderscheidt zich van cloudcomputing doordat de berekeningen worden uitgevoerd op verschillende autonome computers in plaats van in een gevirtualiseerde omgeving. Een voorbeeld van distributed computing is het SETI@homeproject (kader SETI@home-project).
 
Kader SETI@home-project: Het SETI@home project, gehost aan Berkeley university (USA), is een schoolvoorbeeld van distributed computing. Dit project liet wetenschappers toe om op grote schaal hun gegevens te analyseren en dit tegen een minimale kostprijs. Iedereen kon zijn steentje bijdragen door een kleine applicatie te installeren op zijn computer die de server aanzocht om werkpakketjes door te sturen tijdens perioden van lage computer activiteit. De data van dit project kwamen van een radio telescoop in Arecibo aan een volume van ongeveer 30GB/uur, en werd vervolgens verdeeld over 6 miljoen  computers. In ruil voor een dynamische screensaver die details toonde van de analyses, werd een gemiddelde verwerkingskracht van 3.5 PFLOP verzameld. SETI@home is tegenwoordig slechts 1 van de projecten die draaien op het BOINC (Berkeley Open Infrastructure for Network Computing, http://boinc.berkeley.edu) distributed computing platform.

Grid computing (kader TeraGrid-project) kan gezien worden als een voorloper van cloudcomputing. Binnen grid computing worden ook computationele eenheden gepoold om rekentaken uit te voeren; er is echter een aantal belangrijke operationele verschillen, zie bijvoorbeeld Foster et al.2. TeraGrid is een voorbeeld van een grid computing platform. Utility computing ten slotte wordt meestal gedefinieerd als het on-demand aanleveren van computing resources waarbij betaald wordt per verbruikte eenheid; cloudcomputing is dus een realisatie van het idee van utility computing.
 
Kader TeraGrid-project: Het TeraGrid project werd opgestart in 2001 en bestond uit 11 grid sites die telkens hun computerinfrastructuur aan de rest van het grid koppelden. De gebruikers van dit voornamelijk onderzoeksgeoriënteerde project moesten een onderzoeksvoorstel indienen om een aantal eenheden (vb. CPU uren) te reserveren. Dit vormt een belangrijk onderscheid met de on-demand self-service policy die cloud providers hanteren. Grid computing wordt ook gekenmerkt door een andere architectuur, waarbij de nadruk ligt op het integreren van zeer heterogene computing resources. In 2011 beschikte het TeraGrid over een totale verwerkingscapaciteit van 2 PFLOP en in 2011 werd het project opgevolgd door het XSEDE (Extreme Science and Engineering Discovery Environment, www.xsede.org) project.
 
De architectuur van een cloudcomputingomgeving wordt meestal opgedeeld in 4 lagen: de hardware, infrastructuur, platform en applicatielaag. Elke laag biedt zijn diensten aan de bovenliggende laag aan, en afhankelijk van de diensten die de cloudprovider aanbiedt, kan een onderscheid gemaakt worden tussen drie mogelijke vormen van cloudcomputing: Infrastructure as a Service (IaaS), Platform as a Service (PaaS) of Software as a Service (SaaS). Figuur 3 illustreert het onderscheid tussen de vier lagen en geeft telkens enkele voorbeelden van cloudproviders.
Figuur 3. Cloudcomputingarchitectuur
De onderste laag wordt gevormd door de servers die uitgebaat worden in datacenters, waarop telkens virtualisatiesoftware zoals VMware of Xen gedraaid wordt, zodat de precieze details van de onderliggende hardware kunnen worden geabstraheerd. De resources worden aldus voorgesteld als virtuele machines (VM’s), die elke combinatie van servers van het datacenter kunnen zijn. Een IaaS (Infrastructure as a Service)-provider biedt rekencapaciteit onder de vorm van VM’s aan, waarbij mogelijks verschillende servers gepoold worden. PaaS (Platform as a Service)-providers zullen bovendien een besturingssysteem aanbieden en ondersteuning bieden voor softwareontwikkeling raamwerken. De eindgebruiker zal dus een extern beheerde omgeving ter beschikking krijgen. SaaS (Software as a Service) ten slotte verwijst naar het aanbieden van on demand applicaties zoals de webgebaseerde dashboards van SalesForce of e-maildiensten zoals Hotmail en Gmail. Door de zondvloed aan data, samen met de toenemende rekenvereisten van geavanceerde ML-algoritmen, wordt het gebruik van een cloudcomputing omgeving steeds meer een noodzaak, zowel binnen een bedrijfscontext als binnen de onderzoekswereld. Zelfs als we de Wet van Moore in ons achterhoofd houden3, die stelt dat het aantal transistors op geïntegreerde circuits elke 18 maanden verdubbelt, is het duidelijk dat chipfabrikanten zich vooral richten op het aantal rekenkernen, eerder dan de snelheid ervan. Vandaag de dag hebben de meeste computers bovendien een aparte grafische kaart (oftewel Graphical Processing Unit, GPU), die de mogelijkheid biedt om sterk parallelliseerbare taken te versnellen. GPU-gebaseerde algoritmen en software zijn echter vaak moeilijker te programmeren. Ten slotte bieden bedrijven zoals Microsoft, Amazon, Google, en IBM ook diensten in de cloud aan, die op eenvoudige wijze toelaten om computing nodes te beheren en toe te voegen wanneer de analyses dit nodig maken. Om de voordelen en het gebruiksgemak van cloudcomputing te onderzoeken, hebben we een casestudie uitgevoerd in samenwerking met Microsoft en Techila Technologies, om zo de mogelijke voordelen en nadelen te onderzoeken.
Casestudie
In samenwerking met Microsoft en Techila Technologies hebben we de casestudie opgezet aan de KU Leuven om de voordelen van cloudcomputing in een academische omgeving te onderzoeken. We gebruikten het Windows Azure-cloudplatform, een voorbeeld van PaaS. Windows Azure biedt een Windows-gebaseerde omgeving aan om applicaties in uit te voeren, indien nodig aangevuld met SQL Azure, de component die voor cloudgebaseerde dataopslag zorgt. Windows Azure biedt bovendien ondersteuning voor ‘general purpose’-programma’s en kan dus gebruikt worden onafhankelijk van de precieze context. Verder ondersteunt het ook applicaties die ontwikkeld werden voor het .Net-framework, samen met andere high level programmeertalen die gebruikt kunnen worden binnen Windows, zoals Java en C++. Samenvattend kunnen we stellen dat Windows Azure een gepaste testomgeving vormt om de mogelijkheden van het uitvoeren van analyses in de cloud te onderzoeken. De casestudie bestaat uit een reeks van binaire classificatieproblemen binnen het onderzoeksdomein van empirische software-engineering; recentelijk werden er data van de ontwikkeling van het Android-platform publiek gemaakt in het kader van de Mining Repositories Challenge (zie www.2012.msrconf.org/challenge.php). Deze data, verrijkt met metrieken afgeleid uit de Android-broncode, kan gebruikt worden om softwarefoutpredictiemodellen op te stellen.
Een softwarefoutpredictiemodel is een wiskundige functie die de metrieken afgeleid uit de broncode als input neemt en als output een score teruggeeft die de waarschijnlijkheid uitdrukt dat een bestand of module fouten zal bevatten. Dit helpt om softwaretestingactiviteiten te stroomlijnen. Het opstellen van dergelijke modellen is een voorbeeld van een typische classificatietaak, waarbij een onderscheid gemaakt wordt tussen de files met en zonder fouten.
Figuur 4. Empirische opzet van de casestudi
Figuur 4 geeft een overzicht van de empirische set-up van deze casestudie, samen met een niet uitputtend overzicht van ML-technieken die gebruikt werden om deze wiskundige modellen te construeren. Merk op dat ook een aantal alternatieve technieken werd onderzocht: in totaal werden er 167 modellen gegenereerd in iedere run, inclusief modellen om verschillende parameterwaarden te testen. De algoritmen werden uitgevoerd op het Windows Azure-platform door gebruik te maken van Techila High Performance Computing (HPC)-middleware (www.techilatechnologies.com).
Deze platform-agnostische middleware verhult de specifieke details van het onderliggende cloudplatform en laat toe de analyses lokaal uit te voeren waarbij de rekenintensieve en geheugenintensieve delen naar de cloud worden uitbesteed. Vervolgens kunnen de resultaten, naar gelang deze beschikbaar komen, terug geïntegreerd worden in de analyse omgeving. De voordelen van het gebruik van deze middleware bovenop het Azure-cloudplatform vloeien voort uit zijn self-managementfaciliteiten. Specifiek biedt de Techila HPC middleware:
• Self-configuration: het automatisch opzetten en configureren van componenten.
• Self-healing: het automatisch ontdekken, diagnosticeren en herstellen van onderbrekingen en fouten.
• Self-optimization: het geautomatiseerd monitoren en controleren van de hulpmiddelen om optimaal functioneren te verzekeren.
• Self-protection: de proactieve identificatie van, en bescherming tegen fouten en aanvallen. Aangezien de ML-technieken uitgevoerd werden in de Matlab-omgeving, werd de Techila Peach (Parallel each) API voor Matlab gebruikt. Deze API laat toe het project (het vergelijken van ML-technieken voor softwarefoutpredictie) in kleinere taken op te splitsen (het construeren van een enkel model), en door te sturen naar de workers die zich bevinden op het Windows Azure-platform, en dit met minimale aanpassin
gen in de al bestaande code. Dit stelt gebruikers in staat om te switchen tussen de lokale werkomgeving en het uitvoeren van de berekeningen in de cloud, afhankelijk van bijvoorbeeld het specifieke project. Figuur 5 geeft een algemeen overzicht van de opzet van deze studie.
Figuur 5. Algemeen overzicht van de casestudie
Ons benchmarkingframework laat een hoge mate van parallellisatie toe. Zowel op het niveau van de databestanden, crossvalidatie-folds en zelfs in de generatie van individuele modellen is het mogelijk om parallelle berekeningen te introduceren. In deze studie onderzochten we parallellisatie op het niveau van de databestanden en het parallel leren van individuele modellen. Een overzicht van de resultaten van één crossvalidatie-fold ziet u in figuur 6 , bovenaan. Zonder cloudcomputing worden er 167 modellen per crossvalidatie-fold en per data bestand sequentieel geconstrueerd. Zoals te verwachten valt, vereisen sommige algoritmen meer rekentijd, zeker deze die resulteren in niet-lineaire modellen zoals Least Squares Support Vector Machines (LS-SVM) en ensembles die de resultaten van meerdere modellen poolen, zoals ‘random forest’ en ‘rotation forest’. Deze tragere algoritmen vormen de ‘long tail’, ook getoond in figuur 6 .
Figuur 6. Resultaten van de casestudie
Door het Techila-CloudFor te introduceren, deel van de Matlab Peach API van Techila, kunnen we het project naar de Techila-server in de Windows Azure-cloud overbrengen (figuur 5) . Zo kunnen de verschillende databestanden in parallel geanalyseerd worden, en kunnen de ML-technieken ook in parallel uitgevoerd worden in plaats van louter sequentieel. We boekten een snelheidswinst van ongeveer 4600 procent bij het gebruik van Techila HPC-middleware in combinatie met het Windows Azure-platform. De meest computationeel intensieve techniek bleek LS-SVM te zijn, die een complexe parameter optimalisatiestap uitvoert als onderdeel van het algoritme. Het LS-SVM algoritme is aanzienlijk trager dan bijvoorbeeld het leren van een beslissingsboom, wat neerkomt op het recursief opsplitsen van de data aan de hand van een heuristiek om optimale splits ten opzichte van het doelattribuut te verkrijgen. Het herwerken van het LS-SVM algoritme om ook parallellisatie binnen het algoritme toe te laten wordt dan ook gezien als een mogelijkheid om de looptijd verder te reduceren. In het algemeen is het herwerken van algoritmen met bijvoorbeeld de Matlab Peach-interface echter niet altijd haalbaar door de sequentiële aard van vele algoritmen. Een nog andere mogelijkheid om verdere snelheidswinst te boeken ligt in de parallellisatie van de crossvalidatieprocedure, zie ook figuur 6 onderaan. Vooral deze tweede oplossing wordt verder onderzocht en belooft een significante bijkomende snelheidswinst te geven, afhankelijk van het aantal crossvalidatie-folds.
Conclusie
In dit artikel onderzochten we of het mogelijk is om data-intensieve analyses in de cloud uit te voeren, steunend op het Microsoft Windows Azure-platform, samen met Techila High Performance Computing-middleware. We voerden een casestudie uit, bestaande uit een aantal binaire classificatietaken binnen de Matlab-omgeving. Met de voorgestelde oplossing konden we de kracht van cloudcomputing aanwenden, en dit zonder veel aanpassingen in onze code. Een snelheidswinst van ongeveer 4600 procent werd gehaald. We kunnen concluderen dat cloudcomputingoplossingen een groot potentieel hebben voor onderzoekers en bedrijven bij het uitvoeren van rekenintensieve analyses. Bovendien kunnen dergelijke snelheidswinsten gehaald worden zonder veel te moeten investeren in codeaanpassingen of additionele tools, dankzij het gebruiksgemak en flexibiliteit dat veel cloudproviders bieden (zoals Microsoft Windows Azure of middlewareproviders zoals Techila Technologies). Anderzijds zijn er bijkomende snelheidswinsten mogelijk door tragere algoritmen te herwerken en specifiek in onze casestudie zou ook een parallelle crossvalidatieprocedure een additionele winst hebben opgeleverd. In het onderzoeksdomein van parallel computing zijn de wetten van Amdahl4 en Gustafson5 al lang gemeengoed, en deze stellen dat de snelheidswinst van parallellisatie afhankelijk is van de mate waarin gebruik gemaakt kan worden van parallelle constructies. In onze casestudie vonden we dat de ‘long tail’ toe te schrijven was aan enkele tragere onderdelen (algoritmen). Verdere parallellisatie hiervan is echter geen kleine opgave. Het ontwikkelen van native parallelle algoritmen is nog steeds een uitdagende taak, niet in het minst door de complexiteit van concepten zoals semaforen, ‘multithreading’ en racecondities, en het gebrek aan ondersteuning ten opzichte van niet-parallelle omgevingen (zoals debuggers en intelligente compilers). Projecten zoals Google’s BigTable (nu: Spanner), MapReduce en het Apache Hadoop-project hebben al de mogelijkheden van parallelle oplossingen binnen complexe en data-intensieve analytische omgevingen bewezen. Ten slotte kan gesteld worden dat onderwijsinstellingen rekening beginnen te houden met deze problematiek en meer aandacht geven aan de mogelijkheden van parallellisatie. Gezien de zondvloed aan data die ons overspoelt en de steeds complexere algoritmen om deze data te ontginnen, kunnen we besluiten dat in de toekomst cloudcomputing niet langer als een hype beschouwd dient te worden, maar eerder als een noodzakelijkheid.
 
Karel Dejaeger en Seppe vanden Broucke werken bij het Department of Decision Sciences and Information Management.
Tuomas Eerola en Rainer Wehkamp werken bij Techila Technologies in Finland.
Lieve Goedhuys en Mikkel Riis werken bij Microsoft Belgium and Luxembourg in België.
Bart Baesens werkt bij het Department of Decision Sciences and Information Management (KU Leuven); bij de School of Management, University of Southampton in Engeland; en bij Vlerick Leuven Gent Management School in België.
 
Dit onderzoek is tot stand gekomen door financiering van het FWO (Fonds voor Wetenschappelijk Onderzoek) Vlaanderen onder de titel G.0915.09.
 
Literatuur
(1) I. Witten and E. Frank. Data Mining: Practical Machine Learning Tools and Techniques. Morgan Kaufmann Publishers, 2005.
(2) I. Foster, Y. Zhao, I. Raicu, and S. Lu. Cloud computing and grid computing 360-degree compared. In: Grid Computing Environments Workshop, 2008.
(3) Gordon E. Moore. Cramming more components onto integrated circuits. Electronics Magazine, 38 (8):4, 1965.
(4) Gene M. Amdahl. Validity of the single processor approach to achieving large scale computing capabilities. In Proceeding AFIPS ’67 (Spring) Proceedings of the April 18-20, 1967, spring joint computer conference, pages 483–485, 1967.
(5) John L. Gustafson. Reevaluating Amdahl’s law. Communications of the ACM, 31 [5):532–533, 1988.
 

Tag

Onderwerp



Niet gevonden? Vraag het de redactie!

Heeft u het antwoord op uw vraag niet gevonden, of bent u op zoek naar specifieke informatie? Laat het ons weten! Dan zorgen we ervoor dat deze content zo snel mogelijk wordt toegevoegd, of persoonlijk aan u wordt geleverd!

Stel uw vraag