Il team PlinyCompute della Rice University include (da sinistra) Shangyu Luo, Sourav Sikdar, Jia Zou, Tania Lorido, Binhang Yuan, Jessica Yu, Chris Jermain, Carlos Monroy, Dimitrije Jankov e Matt Barnet. Credito:Jeff Fitlow/Rice University
Gli scienziati informatici del Pliny Project della Rice University, finanziato dalla DARPA, credono di avere la risposta per ogni programmatore di sistemi stressato che ha lottato per implementare oggetti e flussi di lavoro complessi su piattaforme di "big data" come Spark e ha pensato:"Non c'è un modo migliore ?"
Il PlinyCompute di Rice sarà presentato qui giovedì alla conferenza ACM SIGMOD 2018. In un documento di conferenza peer-reviewed, il team descrive PlinyCompute come "un sistema puramente per lo sviluppo di alte prestazioni, codici di big data."
come Scintilla, PlinyCompute mira alla facilità d'uso e all'ampia versatilità, ha detto Chris Jermaine, il professore di informatica Rice che ha guidato lo sviluppo della piattaforma. A differenza di Scintilla, PlinyCompute è progettato per supportare i tipi intensi di calcolo che in precedenza erano possibili solo con i supercomputer, o computer ad alte prestazioni (HPC).
"Con l'apprendimento automatico, e soprattutto l'apprendimento profondo, le persone hanno visto cosa possono fare gli algoritmi di analisi complessi quando vengono applicati ai big data, " disse Jermaine. "Tutti, dai dirigenti di Fortune 500 ai ricercatori di neuroscienze, chiede a gran voce algoritmi sempre più complessi, ma i programmatori di sistemi hanno per lo più cattive opzioni per fornirlo oggi. HPC può fornire le prestazioni, ma ci vogliono anni per imparare a scrivere codice per HPC, e forse peggio, uno strumento o una libreria che potrebbe richiedere giorni per essere creato con Spark può richiedere mesi per essere programmato su HPC.
"Spark è stato creato per i big data, e supporta cose che HPC non supporta, come un facile bilanciamento del carico, tolleranza ai guasti e allocazione delle risorse, che sono un must assoluto per le attività ad alta intensità di dati, " ha detto. "Per questo motivo, e poiché i tempi di sviluppo sono molto più brevi rispetto all'HPC, le persone stanno creando nuovi strumenti che funzionano su Spark per attività complesse come l'apprendimento automatico, analisi dei grafici e altro ancora."
Poiché Spark non è stato progettato pensando a calcoli complessi, le sue prestazioni computazionali possono essere spinte solo fino a questo punto, disse Jia Zou, uno scienziato ricercatore di riso e primo autore del documento ACM SIGMOD che descrive PlinyCompute.
PlinyCompute della Rice University è una piattaforma per big data progettata specificamente per lo sviluppo di codici ad alte prestazioni e ad alta intensità di dati. Credito:Plinio Project/Rice University
"Spark è costruito sulla Java Virtual Machine, o JVM, che gestisce i runtime e astrae la maggior parte dei dettagli relativi alla gestione della memoria, " disse Zou, che ha trascorso sei anni alla ricerca di analisi su larga scala e sistemi di gestione dei dati presso IBM Research-China prima di entrare in Rice nel 2015. "Le prestazioni di Spark risentono della sua dipendenza dalla JVM, soprattutto quando le richieste computazionali aumentano per attività come l'addestramento di reti neurali profonde per l'apprendimento profondo.
"PlinyCompute è diverso perché è stato progettato da zero per prestazioni elevate, " Zou ha detto. "Nel nostro benchmarking, abbiamo scoperto che PlinyCompute era almeno due volte più veloce e in alcuni casi 50 volte più veloce nell'implementare la manipolazione di oggetti complessi e i calcoli in stile libreria rispetto a Spark."
Ha detto che i test hanno dimostrato che PlinyCompute supera strumenti comparabili per la costruzione di strumenti e librerie ad alte prestazioni.
Jermaine ha detto che non tutti i programmatori troveranno facile scrivere codice per PlinyCompute. A differenza della codifica basata su Java richiesta per Spark, Le librerie e i modelli di PlinyCompute devono essere scritti in C++.
"C'è più flessibilità con PlinyCompute, " ha detto Jermaine. "Questa può essere una sfida per le persone meno esperte e meno informate sul C++, ma abbiamo anche eseguito un confronto fianco a fianco del numero di righe di codice necessarie per completare varie implementazioni, e per la maggior parte non c'era alcuna differenza significativa tra PlinyCompute e Spark."
Il progetto Plinio, che ha lanciato nel 2014, è un $ 11 milioni, Sforzo finanziato dalla DARPA per creare strumenti di programmazione sofisticati in grado di "completare automaticamente" e "correggere automaticamente" il codice per i programmatori, più o meno allo stesso modo in cui il software completa le query di ricerca e corregge l'ortografia sui browser Web e sugli smartphone. Plinio utilizza l'apprendimento automatico per leggere e imparare da miliardi di righe di programmi per computer open source, e Jermaine ha detto che PlinyCompute è nato da questo sforzo.
"È un'applicazione di machine learning computazionalmente complessa, e non c'era davvero un buon strumento per crearlo, " ha detto. "All'inizio, abbiamo riconosciuto che PlinyCompute era uno strumento che poteva essere applicato a problemi ben oltre quello per cui lo stavamo usando nel Progetto Plinio."