Re: [問題] 關於R的速度

作者: Wush978 (拒看低質媒體)   2015-01-23 22:09:02
R 在跑ML/DM演算法時,核心還是用C/C++去實做的,
更底層的線性代數則是用如BLAS等庫。
這種做法的好處在於,抓取運行效能和寫程式碼的平衡。
例如整理資料時,由於每次面對的資料都不同,可以快速用R Script來開發。
但是進入到最佳化運算時,由於每次要做的計算都類似,就可以用C 來加速。
比較R 這類直譯語言的時候,最主要的考量點還是功能性,而非速度。
速度的部分都可以透過C 撰寫的外掛來針對bottle neck 做加速。
而且第三方的套件庫核心,通常也會用C 來開發。
我自己也是平時寫R ,碰到bottle neck 再使用Rcpp來加速。
和純C++ 應用比起來,更有彈性:
- 不吃效能的部分,用R script開發比C 快很多(IO、Logging、Configuration...)
- R 能夠直接傳pointer 給C 處理資料,所以R extension 和純C 的差別應該只在於
呼叫動態函式庫的overhead
- R 的套件很豐富
- R 有自己的Build Chain (對於不習慣使用CMake 的我是個加分)
回到你的問題,
在自然語言處理,比較有名的套件就是:
R 的tm、http://cran.r-project.org/web/packages/tm/index.html
Python 的nltk,http://www.nltk.org/
建議你可以先都試試看。
10G 資料的話,
核心部分沒有C 應該還是吃力。
※ 引述《vvrr (vvrr)》之銘言:
: [問題類型]:
:
: 效能諮詢(我想讓R 跑更快)
:
: [軟體熟悉度]:
: 入門(寫過其他程式,只是對語法不熟悉)
: [問題敘述]:
: 目前主要的工作是關於自然語言處理(Natural Language Processing),
: 一直以來都是用C在做大量的文字處理(處理量約是10G左右)。
: 前幾天同事發現R語言,提到有不少套件可以使用,
: 想詢問大家,如果處理這種量級的資料,
: R的速度會很慢嗎?和其他語言(C, java, php, ...)相比的感覺?
: 我查的資料提到R主要是做「統計」的運算,
: 在這裡:http://www.meetup.com/Taiwan-R/ 提到可以做ML/DM。
: R給我的感覺是類似script,但是一般做ML/DM資料量都很大,
: 「是不是 R經過compiler之後就能直逼 C的效能?」有這樣的疑問。
: 不知道有沒有版友有實際上使用的經驗能分享?
: 謝謝
: [關鍵字]:
: 速度, 效能, NLP
作者: cywhale (cywhale)   2015-01-23 22:48:00
感謝詳析..請教什麼是R 自己的Build Chain?
作者: Wush978 (拒看低質媒體)   2015-01-23 23:12:00
詳情請見 http://ppt.cc/nA6i

Links booklink

Contact Us: admin [ a t ] ucptt.com