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