Distribuerad R
Utvecklare | HP |
---|---|
Stabil frisättning | 1.2.0 / 22 oktober 2015
|
Förvar | |
Skrivet i | C++ , R |
Operativ system | Linux |
Typ | maskininlärningsalgoritmer _ |
Licens | GNU General Public License |
Hemsida |
Distributed R är en öppen källkod, högpresterande plattform för R -språket. Den delar upp uppgifter mellan flera bearbetningsnoder för att minska exekveringstiden och analysera stora datamängder. Distribuerad R förbättrar R genom att lägga till distribuerade datastrukturer , parallellitetsprimitiver för att köra funktioner på distribuerad data, en uppgiftsschemaläggare och flera dataladdare. Det används mest för att implementera distribuerade versioner av maskininlärningsuppgifter. Distribuerad R är skriven i C++ och R , och behåller det välbekanta utseendet och känslan av R. Från och med februari 2015 tillhandahåller Hewlett-Packard (HP) företagsstöd för Distributed R med proprietära tillägg såsom en snabb dataladdare från Vertica -databasen.
Historia
Distributed R startades 2011 av Indrajit Roy, Shivaram Venkataraman, Alvin AuYoung och Robert S. Schreiber som ett forskningsprojekt vid HP Labs. Det var öppen källkod 2014 under GPLv2-licensen och är tillgänglig på GitHub .
I februari 2015 nådde Distributed R sin första stabila version 1.0, tillsammans med företagssupport från HP.
Komponenter
Distribuerad R är en plattform för att implementera och exekvera distribuerade applikationer i R. Målet är att utöka R för distribuerad datoranvändning, samtidigt som enkelheten och utseendet och utseendet hos R behålls. Distribuerad R består av följande komponenter:
- Distribuerade datastrukturer : Distribuerad R utökar R:s vanliga datastrukturer som array, data.frame och list för att lagra data över flera noder. Motsvarande distribuerade R-datastrukturer är darray, dframe och dlist. Många av de vanliga datastrukturoperationerna i R, såsom colSums, rowSums, nrow och andra, är också tillgängliga på distribuerade datastrukturer.
- Parallell loop : Programmerare kan använda den parallella loopen, kallad foreach, för att manipulera distribuerade datastrukturer och utföra uppgifter parallellt. Programmerare anger bara datastrukturen och funktionen för att uttrycka applikationer, medan körtiden schemalägger uppgifter och, om så krävs, flyttar runt data.
- Distribuerade algoritmer : Distribuerade versioner av vanliga maskininlärnings- och grafalgoritmer, som klustring, klassificering och regression.
- Dataladdare : Användare kan utnyttja distribuerade R-konstruktioner för att implementera parallella kontakter som laddar data från olika källor. Distributed R tillhandahåller redan implementeringar för att ladda data från filer och databaser till distribuerade datastrukturer.
Integration med databaser
HP Vertica tillhandahåller tät integration med deras databas och Open source Distributed R-plattformen. HP Vertica 7.1 innehåller funktioner som möjliggör snabb, parallell laddning från Vertica-databasen till Distribute R. Denna parallella Vertica-lastare kan vara mer än fem gånger (5x) snabbare än att använda traditionella ODBC-baserade kontakter. Vertica-databasen stöder även distribution av maskininlärningsmodeller i databasen. Distribuerade R-användare kan anropa de distribuerade algoritmerna för att skapa modeller för maskininlärning, distribuera dem i Vertica-databasen och använda modellen för poängsättning och förutsägelser i databasen. Arkitektoniska detaljer för Vertica-databasen och Distributed R-integration beskrivs i Sigmod 2015-dokumentet.