999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析R語言并行計算在大數據分析中的應用

2016-02-09 03:25:25李加慶
電子測試 2016年23期
關鍵詞:進程數據挖掘語言

李加慶,劉 燕

(中國電子科技集團公司第二十八研究所,空中交通管理系統與技術國家重點實驗室,南京,210007)

淺析R語言并行計算在大數據分析中的應用

李加慶,劉 燕

(中國電子科技集團公司第二十八研究所,空中交通管理系統與技術國家重點實驗室,南京,210007)

介紹了當今最流行的統計編程語言R語言,描述了R語言向量化計算思想以及其并行計算的軟件包的使用過程,探討了R語言在大數據分析中的應用。

R語言;并行計算;大數據;Hadoop

1 R語言簡單介紹

R是一種用于統計分析計算及圖形化展示的開源軟件,同時也是一種編程語言,它廣泛應用于商業、工業、政府部門、醫藥和科研等眾多涉及數據分析的領域,隨著近幾年數據挖掘、大數據等概念不斷發展,R作為數據分析的利器也越來越多地被人關注。

R使用方式類似于MATLAB和Python,通常運行于交互模式。在這種模式下,R執行單條命令并顯示運行結果。啟動R顯示的是歡迎語和R提示符,就是最下方的>符號,顯示內容如下:

R version 3.1.0 (2014-04-10) -- "Spring Dance"

Copyright (C) 2014 The R Foundation for Statistical Computing

Platform: i386-w64-mingw32/i386 (32-bit)

...

Type 'demo()' for some demos, 'help()' for on-line help, or

'help.start()' for an HTML browser interface to help.

Type 'q()' to quit R.

>

這時顯示的窗口叫做R控制臺,在R提示符后面輸入命令按回車即可執行,如果有返回結果,將顯示在命令行下方。

2 向量化計算

向量化計算是一種特殊的并行計算的方式,相比于一般程序在同一時間只執行一個操作的方式,它可以在同一時間執行多次操作,通常是對不同的數據執行同樣的一個或一批指令,或者說把指令應用于一個數組/向量。

向量化計算廣泛應用于R和Matlab這樣的現代科學計算軟件,Python的numpy軟件包中也是以向量化計算為基礎。在R語言的基本運算中,向量類型是R語言的核心,R語言代碼或者R交互式會話中中幾乎很少不涉及向量。R語言的向量化運算幾乎可以和底層語言的速度一較高下,并且向量化是天然的并行化方式,如果條件允許,R的向量化編程可以很方便的轉化為并行框架。

如果要對向量x中的每一個元素使用函數f()。在R中直接對x調用f()就能完成。這不僅簡化代碼,還能將代碼運行效率顯著提高到數百倍甚至更多。應用在向量上的函數實際上應用在其每一個元素上。下面的例子中,最左邊的符號>是R提示符,符號<-是R中的賦值符號,c表示“連接”(英文concatenate的簡寫),c(3,1,5)表示把3、1、5三個一元向量連接起來成為一個向量。因為在R中任何數字都是一元向量。

> u <- c(3,1,5)

> v <- c(2,3,7)

> u > v

[1] TRUE FALSE FALSE

最后一行顯示的是u>v命令的結果,可以看出在這里>函數分別運用在u[1]和v[1],得到結構TRUE,然后是u[2]和v[2],得到結果FALSE,以此類推。這里要說明的是,不同于C和Python等語言,R中向量索引從1開始。

利用向量化計算的思想,可以將一些復雜計算簡單化。R中比較常用的函數lapply(X,FUN,…)返回一個與X同樣長度的列表,其中每一個元素都是對X每一個元素調用FUN的結果。lapply函數運用了向量化計算的思想,。lapply是隱式循環函數,雖然其本身其實并不是向量化函數,但該函數對R語言的并行計算起著很大的作用,或者說R的并行計算很多是lapply函數的多種并行化運用。

3 并行計算

R語言的很多強大功能都是由很多優秀的軟件包實現的,關于并行計算有許多軟件包。從版本2.14.0開始,R就內置了parallel包,強化了R的并行計算能力。parallel包整合了早期比較成熟的snow包(snow是Simple Network ofWorkstations的簡稱),以及后期針對Linux系統和Mac OS X系統上應用的multicore包。parallel包可以很容易的在計算集群上實施并行計算,在多個CPU核心的單機上,也能發揮并行計算的功能。

parallel包的思路和lapply函數很相似,都是將輸入數據分割、計算、整合結果。只不過并行計算是用到了不同的cpu來運算。這樣的計算模型可以使用如下方式來表述:

a、啟動M個“工人”進程(worker),并對每個工人進程初始化;

b、向每個工人進程分發任務所需數據;

c、將任務粗略的分為M個大小相等的任務塊(chunks),并將這些任務塊發送到工人進程(包含需要的R代碼);

d、等待所有的工人進程完成計算任務,獲取所有計算結果;

e、對于其他任務重復b-d;

f、關閉所有工人進程。

在parallel包里,對應上述計算模型由核心函數mclapply和parLapply實現,這兩個函數都是對lapply函數的并行化應用。下面舉例說明并行化函數的優勢。

例子1,直接使用lapply函數對500萬個元素的向量進行處理,由于數據集比較大,所以消耗時間比較長。

> fun <- function(x) (x)^2 + 1

> system.time(result <- lapply(1:5000000, fun))

user system elapsed 28.13 0.05 28.17

例子2,繼續使用上面的函數fun,我們來使用parallel包提供處理速度,以parLapply函數在Windows計算機上運行為例,Linux系統中可以用mclapply函數得到類似結果。

> library(parallel)

> cl <- makeCluster(getOption("cl.cores",2)) #打開雙核

> system.time(result <- parLapply(cl,1:5000000, fun)) user system elapsed 4.16 0.18 22.71 > stopCluster(cl)

在這里,makeCluster打開CPU核心的數量由系統核心數目決定,一般由detectCores函數確定系統核心數目,對于Window系統下的Intel處理器,一般使用detectCores(logical = F)來獲得實際的物理核心數量。在并行處理數據時,上面的例子其實將具有500萬個元素的數據集復制了2份,所以占用內存會比較大。

4 R與大數據分析

21世紀人類進入信息社會,傳感器和社會網絡產生海量數據,數據累積的量變引發質變,越來越多的企業、行業和國家以數據為資源進行知識和智力開發,挖掘了數據內在的階值,逐步形成了大數據的概念。由于R語言并行計算存在令人詬病的“吃內存”弱點,所以很多觀點認為R語言處理不了大數據。這里先不論大數據究竟是GB級還是TB或PB級的,甚至說處理不了的數據集才叫大,R語言在處理TB級以上的數據集的確不是強項,可以說效率很低。

R語言的優勢在于其眾多優秀的數據挖掘軟件包,以及諸多非常強大的繪圖軟件包,如ggplot2之類,深得各行業數據分析人士的青睞。近些年數據挖掘和大數據等概念的流行,R作為數據分析工具正逐漸被重視。借助于越來越多并行計算及大數據處理相關的R程序包,R可以結合并行計算框架Hadoop來做大數據處理。R語言的模型算法優勢加上Hadoop處理大數據的優勢,這種結合正慢慢地成為數據挖掘技術的主流。下圖簡單地解釋了R+Hadoop做數據分析時大數據流轉的過程。

5 結語

R語言是主要用于統計分析、繪圖的語言和操作環境。R是屬于GNU系統的一個自由、免費、開源的軟件,它是一個用于統計計算和統計制圖的優秀工具。R語言以軟件包的形式,實現各種統計、建模、分析功能。R語言也存在兩個缺點:一是數據會被一次性讀入內存進行處理,在函數調用會多次拷貝,消耗內存;二是單線程,除了個別的并行計算包,R的大多數包不會利用多個處理器提高計算速度。但是瑕不掩瑜,R語言正在各個行業數據分析領域發揮著它強大的分析能力。

[1] Norman Matloff. R語言編程藝術[M]. 機械工業出版社. 2013.

[2] Q.Ethan McCallum and Stephen Weston. Parallel R[M]. O’Reilly. 2012.

[3] R-core. Package ‘parallel’[M]. 2013.

[4] 張維明,唐九陽.大數據思維[J].指揮信息系統與技術,2015.6(2):1-4

李加慶(1985.01-),男,工程師,主要從事雷達情報處理和飛行安全告警研究

劉燕(1980.11-),女,高級工程師,主要從事雷達情報處理和情報模擬仿真研究

The Application of Language R Parallel Computing in Big Data Analysis

Li Jiaqing,Liu Yan
(The 28th Research Institute of China Electronic Technology Group Corporation,State Key Laboratory of Air Traffic Management System and Technology,NanJing,210007)

This paper introduces the most popular statistical programming language R,describes the use of language R vector computing and its parallel computing software package,and discusses the application of language R in big data analysis.

Language R;parallel computing;big data;Hadoop

猜你喜歡
進程數據挖掘語言
探討人工智能與數據挖掘發展趨勢
語言是刀
文苑(2020年4期)2020-05-30 12:35:30
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
讓語言描寫搖曳多姿
基于并行計算的大數據挖掘在電網中的應用
電力與能源(2017年6期)2017-05-14 06:19:37
累積動態分析下的同聲傳譯語言壓縮
一種基于Hadoop的大數據挖掘云服務及應用
我有我語言
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
基于GPGPU的離散數據挖掘研究
主站蜘蛛池模板: 国内精品九九久久久精品| 亚洲精品午夜天堂网页| 亚洲另类色| 久久精品人人做人人爽97| 亚洲欧洲日韩久久狠狠爱| 午夜国产大片免费观看| 久久这里只有精品8| 国产精品视屏| aaa国产一级毛片| 亚洲人成成无码网WWW| 在线色国产| 国产流白浆视频| 91系列在线观看| 亚洲人妖在线| 日韩一级二级三级| 欧美日本视频在线观看| 一区二区三区四区日韩| 无码精品一区二区久久久| 老司国产精品视频| 久久人搡人人玩人妻精品| 一级做a爰片久久毛片毛片| 亚洲区第一页| 国产成人精品一区二区免费看京| 国产在线拍偷自揄拍精品| 中国特黄美女一级视频| 欧美日韩动态图| 影音先锋亚洲无码| 香蕉视频在线精品| 国产亚洲一区二区三区在线| 色婷婷啪啪| 国产chinese男男gay视频网| 亚洲高清日韩heyzo| 一级黄色欧美| 国产麻豆福利av在线播放| 亚洲无码电影| 亚洲国产中文欧美在线人成大黄瓜 | 日本五区在线不卡精品| 亚洲男人的天堂久久香蕉网| 农村乱人伦一区二区| 999福利激情视频| 为你提供最新久久精品久久综合| 一区二区偷拍美女撒尿视频| 四虎影视无码永久免费观看| 亚洲aaa视频| 亚洲成人精品久久| 亚洲av综合网| 热久久综合这里只有精品电影| 狠狠色丁婷婷综合久久| 2020极品精品国产| 波多野结衣国产精品| 免费av一区二区三区在线| 天天综合色网| 国产亚洲视频中文字幕视频| 五月激激激综合网色播免费| 欧美一区二区三区香蕉视| 国产美女精品在线| 国产在线观看高清不卡| 久久久久亚洲AV成人网站软件| 国产欧美在线| 99re这里只有国产中文精品国产精品 | 国产成人AV综合久久| 久久天天躁夜夜躁狠狠| 国产午夜福利片在线观看| 亚洲色欲色欲www在线观看| 亚洲床戏一区| 久久无码免费束人妻| 手机永久AV在线播放| 国产va在线观看| 亚洲欧美不卡中文字幕| 国产精品一线天| 国产亚洲欧美日韩在线观看一区二区| 亚洲国产欧美国产综合久久 | 第一页亚洲| 伊人大杳蕉中文无码| 黄色网页在线播放| 久久国产黑丝袜视频| 日韩精品久久无码中文字幕色欲| 日本道中文字幕久久一区| 九色在线视频导航91| 欧美一区中文字幕| 国产成人精品在线1区| 亚洲精品成人7777在线观看|