Programování s velkými daty v R. - Programming with Big Data in R
Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
Paradigma | SPMD a MPMD |
---|---|
Navrhl | Wei-Chen Chen, George Ostrouchov, Pragneshkumar Patel a Drew Schmidt |
Vývojář | Základní tým pbdR |
Poprvé se objevil | Září 2012 |
Náhled verze | |
Psací disciplína | Dynamický |
OS | Cross-platform |
Licence | Obecná veřejná licence a Veřejná licence Mozilla |
webová stránka | www |
Ovlivněno | |
R, C, Fortran, MPI, a ØMQ |
Programování s velkými daty v R. (pbdR)[1] je řada R balíčky a prostředí pro statistické výpočty s velká data pomocí vysoce výkonného statistického výpočtu.[2] PbdR používá stejný programovací jazyk jako R s S3 / S4 tříd a metod, které se používají mezi statistici a těžaři dat pro vývoj statistický software. Významný rozdíl mezi pbdR a R kódem spočívá v tom, že pbdR se zaměřuje hlavně na distribuovaná paměť systémy, kde jsou data distribuována napříč několika procesory a analyzována v a dávkový režim, zatímco komunikace mezi procesory je založena na MPI který se snadno používá ve velkém vysoce výkonná výpočetní technika (HPC) systémy. Systém R se hlavně zaměřuje[Citace je zapotřebí ] na svobodných vícejádrový stroje pro analýzu dat prostřednictvím interaktivního režimu, jako např GUI rozhraní.
Dvě hlavní implementace v systému Windows R použitím MPI jsou Rmpi[3] a pbdMPI pbdR.
- PbdR postavený na pbdMPI používá SPMD paralelismus kde je každý procesor považován za pracovníka a vlastní části dat. The SPMD paralelismus představený v polovině roku 1980, je zvláště účinný v homogenních výpočetních prostředích pro velká data, například pro výkon rozklad singulární hodnoty na velké matrici nebo při hraní shluková analýza na velkoplošných velkých datech. Na druhou stranu neexistuje žádné omezení použití paralelismus manažer / pracovník v SPMD paralelismus životní prostředí.
- Rmpi[3] používá paralelismus manažer / pracovník kde jeden hlavní procesor (manažer) slouží jako kontrola nad všemi ostatními procesory (pracovníky). The paralelismus manažer / pracovník zavedený kolem začátku roku 2000 je zvláště efektivní pro velké úkoly v malých shluky, například, bootstrap metoda a Simulace Monte Carlo v aplikovaných statistikách od i.i.d. ve většině se běžně používá předpoklad Statistická analýza. Zejména paralelismus tažení úloh má lepší výkon pro Rmpi v heterogenních výpočetních prostředích.
Myšlenka SPMD paralelismus je nechat každého procesora dělat stejné množství práce, ale na různých částech velké datové sady. Například moderní GPU je velká sbírka pomalejších koprocesorů, které mohou jednoduše použít stejný výpočet na různé části relativně menších dat, ale paralelismus SPMD končí efektivním způsobem získání konečných řešení (tj. čas do řešení je kratší).[4]
Návrh obalu
Programování s pbdR vyžaduje použití různých balíčků vyvinutých základním týmem pbdR. Vyvinuté balíčky jsou následující.
Všeobecné | I / O | Výpočet | aplikace | Profilování | Klient-server |
---|---|---|---|---|---|
pbdDEMO | pbdNCDF4 | pbdDMAT | pmclust | pbdPROF | pbdZMQ |
pbdMPI | pbdADIOS | pbdBASE | pbdML | pbdPAPI | dálkový ovladač |
pbdSLAP | hpcvis | pbdCS | |||
kazaam | pbdRPC |
Mezi těmito balíčky poskytuje pbdMPI souhrnné funkce MPI knihovna a také produkuje sdílená knihovna a konfigurační soubor pro prostředí MPI. Všechny ostatní balíčky spoléhají na tuto konfiguraci při instalaci a načítání knihovny, což zamezuje problémům s propojováním a kompilací knihovny. Všechny ostatní balíčky mohou přímo snadno využívat funkce MPI.
- pbdMPI --- efektivní rozhraní pro MPI OpenMPI nebo MPICH2 se zaměřením na jeden program / více dat (SPMD ) styl paralelního programování
- pbdSLAP --- sdružuje škálovatelné husté knihovny lineární algebry s dvojitou přesností pro R, na základě ScaLAPACK verze 2.0.2, která obsahuje několik škálovatelných balíků lineární algebry (jmenovitě BLACS, PBLAS, a ScaLAPACK ).
- pbdNCDF4 --- rozhraní k Parallel Unidata NetCDF 4 formátovat datové soubory
- pbdBASE --- nízká úroveň ScaLAPACK kódy a obaly
- pbdDMAT --- třídy distribuované matice a výpočetní metody se zaměřením na lineární algebru a statistiku
- pbdDEMO --- sada ukázek a příkladů balíčků a tato sjednocující viněta
- pmclust --- paralelně modelování založené na klastrování pomocí pbdR
- pbdPROF --- profilovací balíček pro MPI kódy a vizualizaci analyzovaných statistik
- pbdZMQ --- rozhraní k ØMQ
- remoter --- R klient se vzdálenými R servery
- pbdCS --- klient pbdR se vzdálenými servery pbdR
- pbdRPC --- vzdálené volání procedury
- kazaam --- velmi vysoké a hubené distribuované matice
- pbdML --- sada nástrojů pro strojové učení
Mezi těmito balíčky je balíček pbdDEMO kolekce 20+ ukázek balíčků, které nabízejí ukázkové použití různých balíčků pbdR, a obsahuje vinětu, která nabízí podrobná vysvětlení ukázek a poskytuje matematický nebo statistický přehled.
Příklady
Příklad 1
Ahoj světe! Uložte následující kód do souboru s názvem "demo.r"
### Počáteční MPIknihovna(pbdMPI, klid = SKUTEČNÝ)inic()comm.cat(„Ahoj světe! N“)### Dokončitdokončit()
a použijte příkaz
mpiexec -np 2 Rscript demo.r
provést kód kde Rscript je jeden z spustitelného programu příkazového řádku.
Příklad 2
Následující příklad upravený z pbdMPI ilustruje základní syntaxe jazyka pbdR. Protože pbdR je navržen v SPMD, všechny R skripty jsou ukládány do souborů a spouštěny z příkazového řádku pomocí mpiexec, mpirun atd. Uložte následující kód do souboru s názvem „demo.r“
### Počáteční MPIknihovna(pbdMPI, klid = SKUTEČNÝ)inic().comm.size <- kom. velikost().comm.rank <- komunikační()### Nastavte vektor x na všechny procesory s různými hodnotamiN <- 5X <- (1:N) + N * .comm.rank### Všechny redukují x pomocí operace sčítáníy <- allreduce(jako. cizinec(X), op = "součet")komunikační tisk(y)y <- allreduce(as.double(X), op = "součet")komunikační tisk(y)### Dokončitdokončit()
a použijte příkaz
mpiexec -np 4 Rscript demo.r
provést kód kde Rscript je jeden z spustitelného programu příkazového řádku.
Příklad 3
Následující příklad upravený z pbdDEMO ilustruje základní výpočet ddmatrix pbdR, který provádí rozklad singulární hodnoty na danou matici. Uložte následující kód do souboru s názvem „demo.r“
# Inicializovat procesní mřížkuknihovna(pbdDMAT, klid=T)-li(kom. velikost() != 2) komunikační zastávka(„Pro tuto ukázku jsou zapotřebí přesně 2 procesory.“)init.grid()# Nastavení pro zbytekcomm.set.seed(rozdíl=SKUTEČNÝ)M <- N <- 16BL <- 2 # blocking --- předání jedné hodnoty BL předpokládá blokování BLxBLdA <- ddmatrix("rnorm", nrow=M, ncol=N, znamenat=100, sd=10)# LA SVDsvd1 <- La.svd(dA)komunikační tisk(svd1$d)# Dokončitdokončit()
a použijte příkaz
mpiexec -np 2 Rscript demo.r
provést kód kde Rscript je jeden z spustitelného programu příkazového řádku.
Další čtení
- Raim, A.M. (2013). Úvod do distribuovaného výpočtu s pbdR v UMBC High Performance Computing Facility (PDF) (Technická zpráva). UMBC High Performance Computing Facility, University of Maryland, Baltimore County. HPCF-2013-2. Archivovány od originál (PDF) dne 04.02.2014. Citováno 2013-06-26.
- Bachmann, M.G., Dyas, A.D., Kilmer, S.C. a Sass, J. (2013). Blokujte cyklickou distribuci dat v pbdR a její účinky na výpočetní účinnost (PDF) (Technická zpráva). UMBC High Performance Computing Facility, University of Maryland, Baltimore County. HPCF-2013-11. Archivovány od originál (PDF) dne 04.02.2014. Citováno 2014-02-01.CS1 maint: více jmen: seznam autorů (odkaz)
- Bailey, W. J., Chambless, C.A., Cho, B.M. a Smith, J. D. (2013). Identifikace nelineárních korelací ve vysoce dimenzionálních datech s aplikací na simulace molekulární dynamiky proteinů (PDF) (Technická zpráva). UMBC High Performance Computing Facility, University of Maryland, Baltimore County. HPCF-2013-12. Archivovány od originál (PDF) dne 04.02.2014. Citováno 2014-02-01.CS1 maint: více jmen: seznam autorů (odkaz)
- Dirk Eddelbuettel. „Vysoce výkonný a paralelní výpočet s R“.
- „R na 12 000 jader“.
Tento článek byl v roce 2012 přečten 22 584krát, protože byl zveřejněn 16. října 2012 a zařadil se na 3. místo[5] - Google Summer of Code - R 2013. "Profilové nástroje pro paralelní výpočty s R". Archivovány od originál dne 29. 06. 2013.
- Wush Wu (2014). „在 雲端 運算 環境 使用 R 和 MPI“.
- Wush Wu (2013). „快速 在 AWS 建立 R 和 pbdMPI 的 使用 環境“.
Reference
- ^ Ostrouchov, G., Chen, W.-C., Schmidt, D., Patel, P. (2012). „Programování s velkými daty v R“.CS1 maint: více jmen: seznam autorů (odkaz)
- ^ Chen, W.-C. & Ostrouchov, G. (2011). „HPSC - vysoce výkonné statistické výpočty pro intenzivní výzkum dat“. Archivovány od originál dne 19. 7. 2013. Citováno 2013-06-25.
- ^ A b Yu, H. (2002). "Rmpi: Parallel Statistical Computing in R". R Novinky.
- ^ Mike Houston. „Folding @ Home - GPGPU“. Citováno 2007-10-04.
- ^ „100 nejčtenějších příspěvků R v roce 2012 (statistiky od blogerů R) - velká data, vizualizace, manipulace s daty a další jazyky“.