Rice Universitys PlinyCompute-team inkluderar (från vänster) Shangyu Luo, Sourav Sikdar, Jia Zou, Tania Lorido, Binhang Yuan, Jessica Yu, Chris Jermaine, Carlos Monroy, Dimitrije Jankov och Matt Barnett. Kredit:Jeff Fitlow/Rice University
Datavetare från Rice Universitys DARPA-finansierade Pliny Project tror att de har svaret för varje stressad systemprogrammerare som har kämpat för att implementera komplexa objekt och arbetsflöden på "big data"-plattformar som Spark och tänkte:"Finns det inte ett bättre sätt ?"
Rices PlinyCompute kommer att presenteras här på torsdag vid 2018 års ACM SIGMOD-konferens. I ett refereegranskat konferensbidrag, teamet beskriver PlinyCompute som "ett system enbart för att utveckla högpresterande, stora datakoder."
Som Spark, PlinyCompute strävar efter användarvänlighet och bred mångsidighet, sa Chris Jermaine, Rice-professorn i datavetenskap som leder utvecklingen av plattformen. Till skillnad från Spark, PlinyCompute är designad för att stödja de intensiva typer av beräkningar som bara tidigare har varit möjliga med superdatorer, eller högpresterande datorer (HPC).
"Med maskininlärning, och särskilt djupinlärning, människor har sett vad komplexa analysalgoritmer kan göra när de appliceras på big data, " sa Jermaine. "Alla, från Fortune 500-chefer till neurovetenskapsforskare, ropar efter mer och mer komplexa algoritmer, men systemprogrammerare har oftast dåliga alternativ för att tillhandahålla det idag. HPC kan ge prestanda, men det tar år att lära sig att skriva kod för HPC, och kanske värre, ett verktyg eller bibliotek som kan ta dagar att skapa med Spark kan ta månader att programmera på HPC.
"Spark byggdes för big data, och det stöder saker som HPC inte gör, som enkel lastbalansering, feltolerans och resursallokering, som är ett absolut måste för dataintensiva uppgifter, " sade han. "På grund av det, och eftersom utvecklingstider är mycket kortare än med HPC, människor bygger nya verktyg som körs ovanpå Spark för komplexa uppgifter som maskininlärning, grafanalys och mer."
Eftersom Spark inte utformades med komplexa beräkningar i åtanke, dess beräkningsprestanda kan bara drivas så långt, sa Jia Zou, en risforskare och första författare till ACM SIGMOD-artikeln som beskriver PlinyCompute.
Rice Universitys PlinyCompute är en stordataplattform designad speciellt för att utveckla högpresterande och dataintensiva koder. Kredit:Plinius Project/Rice University
"Spark är byggd ovanpå Java Virtual Machine, eller JVM, som hanterar körtider och abstraherar bort de flesta detaljer om minneshantering, sa Zou, som tillbringade sex år med att undersöka storskaliga analys- och datahanteringssystem på IBM Research-China innan han började på Rice 2015. "Sparks prestanda lider av dess beroende av JVM, speciellt när beräkningskraven ökar för uppgifter som att träna djupa neurala nätverk för djupinlärning.
"PlinyCompute är annorlunda eftersom den designades för hög prestanda från grunden, " sa Zou. "I vår benchmarking, vi fann att PlinyCompute var minst dubbelt så snabb och i vissa fall 50 gånger snabbare på att implementera komplex objektmanipulation och biblioteksliknande beräkningar jämfört med Spark."
Hon sa att testerna visade att PlinyCompute överträffar jämförbara verktyg för konstruktion av högpresterande verktyg och bibliotek.
Jermaine sa att inte alla programmerare kommer att finna det lätt att skriva kod för PlinyCompute. Till skillnad från den Java-baserade kodning som krävs för Spark, PlinyCompute-bibliotek och modeller måste skrivas i C++.
"Det finns mer flexibilitet med PlinyCompute, " sa Jermaine. "Det kan vara en utmaning för människor som är mindre erfarna och kunniga om C++, men vi körde också en jämförelse sida vid sida av antalet kodrader som behövdes för att slutföra olika implementeringar, och för det mesta fanns det ingen signifikant skillnad mellan PlinyCompute och Spark."
Pliniusprojektet, som lanserades 2014, är 11 miljoner dollar, DARPA-finansierat försök att skapa sofistikerade programmeringsverktyg som kan både "autokomplettera" och "autokorrigera" kod för programmerare, ungefär på samma sätt som mjukvara slutför sökfrågor och korrigerar stavning i webbläsare och smartphones. Plinius använder maskininlärning för att läsa och lära av miljarder rader av datorprogram med öppen källkod, och Jermaine sa att PlinyCompute föddes ur denna ansträngning.
"Det är en beräkningsmässigt komplex maskininlärningsapplikation, och det fanns verkligen inget bra verktyg för att skapa det, sade han. Tidigt, vi insåg att PlinyCompute var ett verktyg som kunde tillämpas på problem långt utöver vad vi använde det till i Pliny-projektet."