science >> Wetenschap >  >> Elektronica

Een systeem puur voor het ontwikkelen van hoogwaardige, big data-codes

Het PlinyCompute-team van Rice University omvat (van links) Shangyu Luo, Sourav Sikdar, Jia Zou, Tanja Lorido, Binhang Yuan, Jessica Yu, Chris Jermaine, Carlos Monroy, Dimitrije Jankov en Matt Barnett. Krediet:Jeff Fitlow/Rice University

Computerwetenschappers van het DARPA-gefinancierde Pliny Project van Rice University geloven dat ze het antwoord hebben voor elke gestresste systeemprogrammeur die moeite heeft gehad om complexe objecten en workflows te implementeren op 'big data'-platforms zoals Spark en dachten:"Is er geen betere manier ?"

Rice's PlinyCompute zal hier donderdag worden onthuld op de ACM SIGMOD-conferentie van 2018. In een peer-reviewed conferentiedocument, het team beschrijft PlinyCompute als "een systeem dat puur is bedoeld voor het ontwikkelen van hoogwaardige, big data-codes."

Zoals vonk, PlinyCompute streeft naar gebruiksgemak en brede veelzijdigheid, zei Chris Jermaine, de Rice-professor computerwetenschappen die de ontwikkeling van het platform leidde. In tegenstelling tot Spark, PlinyCompute is ontworpen om de intense soorten berekeningen te ondersteunen die voorheen alleen mogelijk waren met supercomputers, of krachtige computers (HPC).

"Met machinaal leren, en vooral diep leren, mensen hebben gezien wat complexe analytische algoritmen kunnen doen wanneer ze worden toegepast op big data, " zei Jermaine. "Iedereen, van Fortune 500-managers tot neurowetenschappelijke onderzoekers, schreeuwt om steeds complexere algoritmen, maar systeemprogrammeurs hebben tegenwoordig meestal slechte opties om dat te bieden. HPC kan de prestaties leveren, maar het duurt jaren om code te leren schrijven voor HPC, en misschien nog erger, een tool of bibliotheek die dagen kan duren om met Spark te maken, kan maanden duren om op HPC te programmeren.

"Spark is gebouwd voor big data, en het ondersteunt dingen die HPC niet doet, zoals eenvoudige load-balancing, fouttolerantie en toewijzing van middelen, die een absolute must zijn voor data-intensieve taken, "zei hij. "Daarom, en omdat de ontwikkeltijden veel korter zijn dan bij HPC, mensen bouwen nieuwe tools die bovenop Spark draaien voor complexe taken zoals machine learning, grafiekanalyse en meer."

Omdat Spark niet is ontworpen met complexe berekeningen in gedachten, zijn computationele prestaties kunnen alleen tot nu toe worden gepusht, zei Jia Zou, een Rice-onderzoeker en eerste auteur van het ACM SIGMOD-artikel waarin PlinyCompute wordt beschreven.

De PlinyCompute van Rice University is een big data-platform dat speciaal is ontworpen voor het ontwikkelen van krachtige en data-intensieve codes. Krediet:Plinius Project/Rice University

"Spark is gebouwd bovenop de Java Virtual Machine, of JVM, die runtimes beheert en de meeste details met betrekking tot geheugenbeheer wegneemt, " zei Zou, die zes jaar lang onderzoek deed naar grootschalige analyse- en gegevensbeheersystemen bij IBM Research-China voordat hij in 2015 bij Rice kwam werken. "De prestaties van Spark lijden onder de afhankelijkheid van de JVM, vooral omdat de computervereisten toenemen voor taken zoals het trainen van diepe neurale netwerken voor diep leren.

"PlinyCompute is anders omdat het vanaf het begin is ontworpen voor hoge prestaties, " zei Zou. "In onze benchmarking, we ontdekten dat PlinyCompute minstens twee keer zo snel en in sommige gevallen 50 keer sneller was in het implementeren van complexe objectmanipulatie en bibliotheekachtige berekeningen in vergelijking met Spark."

Ze zei dat de tests hebben aangetoond dat PlinyCompute beter presteert dan vergelijkbare tools voor het bouwen van hoogwaardige tools en bibliotheken.

Jermaine zei dat niet alle programmeurs het gemakkelijk zullen vinden om code voor PlinyCompute te schrijven. In tegenstelling tot de op Java gebaseerde codering die vereist is voor Spark, PlinyCompute-bibliotheken en -modellen moeten in C++ zijn geschreven.

"Er is meer flexibiliteit met PlinyCompute, "Zei Jermaine. "Dat kan een uitdaging zijn voor mensen die minder ervaren en goed geïnformeerd zijn over C++, maar we hebben ook een zij-aan-zij vergelijking gemaakt van het aantal regels code dat nodig was om verschillende implementaties te voltooien, en voor het grootste deel was er geen significant verschil tussen PlinyCompute en Spark."

Het Plinius-project, die in 2014 gelanceerd werd, is een $ 11 miljoen, Door DARPA gefinancierde inspanning om geavanceerde programmeertools te maken die zowel "autocomplete" als "autocorrecte" code voor programmeurs kunnen maken, op vrijwel dezelfde manier waarop software zoekopdrachten voltooit en spelling corrigeert in webbrowsers en smartphones. Plinius gebruikt machine learning om miljarden regels open-source computerprogramma's te lezen en ervan te leren. en Jermaine zei dat PlinyCompute uit deze inspanning is voortgekomen.

"Het is een rekenkundig complexe machine learning-toepassing, en er was niet echt een goed hulpmiddel om het te maken, "zei hij. "Vroeg, we erkenden dat PlinyCompute een hulpmiddel was dat kon worden toegepast op problemen die veel verder gingen dan waarvoor we het in het Pliny-project gebruikten."