看帖神器
未名空间
追帖动态
头条新闻
每日新帖
最新热帖
新闻存档
热帖存档
文学城
虎扑论坛
未名空间
北美华人网
北美微论坛
看帖神器
登录
← 下载
《看帖神器》官方
iOS App
,体验轻松追帖。
R的并行计算太扯了
查看未名空间今日新帖
最新回复:2020年6月21日 8点28分 PT
共 (23) 楼
返回列表
订阅追帖
只看未读
更多选项
阅读全帖
只看图片
只看视频
查看原帖
d
didadida
4 年多
楼主 (未名空间)
我怀疑那些写教程比较并行计算速度优势的都是用原生R的
我在Microsoft R Open上计算,本身是用MKL优化了,并行的提高效果基本没有
不用并行,CPU占用率50%
用了并行,占用率长时间100%,风扇猛转,最后总运行时间差不多
l
lightroom
4 年多
2 楼
haha, 把cpu用满不容易吧
【在 didadida(滴滴嗒嗒)的大作中提到:】
:我怀疑那些写教程比较并行计算速度优势的都是用原生R的
:
p
pptwo
4 年多
3 楼
开了超线程做计算,CPU 50%正好,到100%不慢就不错了。
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我怀疑那些写教程比较并行计算速度优势的都是用原生R的
: 我在Microsoft R Open上计算,本身是用MKL优化了,并行的提高效果基本没有
: 不用并行,CPU占用率50%
: 用了并行,占用率长时间100%,最后总运行时间差不多
m
magliner
4 年多
4 楼
用原生R怎么了 , 有什么不对么 ?
R并行是快, 虽然不是线性增长那么快, 但感觉还是挺明显的。
不知道微软R是怎么回事, 要不要花钱 ?
d
didadida
4 年多
5 楼
原生R非常慢
Rocker的R是加了openBLAS重新编译了
【 在 magliner (magliner) 的大作中提到: 】
: 用原生R怎么了 , 有什么不对么 ?
: R并行是快, 虽然不是线性增长那么快, 但感觉还是挺明显的。
: 不知道微软R是怎么回事, 要不要花钱 ?
s
stxxx
4 年多
6 楼
R的并行运算效果还是很明显的。先检查下自己搞对了没有,别总感觉就自己高,那帮
写package的都在吃x,那样很silly。
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我怀疑那些写教程比较并行计算速度优势的都是用原生R的
: 我在Microsoft R Open上计算,本身是用MKL优化了,并行的提高效果基本没有
: 不用并行,CPU占用率50%
: 用了并行,占用率长时间100%,风扇猛转,最后总运行时间差不多
l
lshtar
4 年多
7 楼
很可能是cache missing太多
a
attain79
4 年多
8 楼
我以前用过dosnow加foreach 很简单的并行 效果很好
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我怀疑那些写教程比较并行计算速度优势的都是用原生R的
:
: 我在Microsoft R Open上计算,本身是用MKL优化了,并行的提高效果基本没有
:
: 不用并行,CPU占用率50%
: 用了并行,占用率长时间100%,风扇猛转,最后总运行时间差不多
d
didadida
4 年多
9 楼
【 在 magliner (magliner) 的大作中提到: 】
: 用原生R怎么了 , 有什么不对么 ?
: R并行是快, 虽然不是线性增长那么快, 但感觉还是挺明显的。
: 不知道微软R是怎么回事, 要不要花钱 ?
https://mran.microsoft.com/open
免费很长时间了
唯一缺点就是到了 3.5.3 就没再更新
d
didadida
4 年多
10 楼
我昨天发了贴后,查了一下微软的资料,说他家的R自动对R程序做了并行优化,所以不要刻意使用并行,否则要么没什么提高,要么还不如不做
【 在 stxxx (Chen) 的大作中提到: 】
: R的并行运算效果还是很明显的。先检查下自己搞对了没有,别总感觉就自己高,那帮
: 写package的都在吃x,那样很silly。
l
longtian
4 年多
11 楼
同意,我的经验也是一样的
R并行的时候是直接把计算分配到每个thread,所以机器的thread是个限制。而且R会
copy所有的数据程序到每个thread,所以可能出现内存不足的问题
【 在 magliner (magliner) 的大作中提到: 】
: 用原生R怎么了 , 有什么不对么 ?
: R并行是快, 虽然不是线性增长那么快, 但感觉还是挺明显的。
: 不知道微软R是怎么回事, 要不要花钱 ?
i
iloveYolanda
4 年多
12 楼
糊涂了,R不是单线程的吗,怎么并行计算?
s
stxxx
4 年多
13 楼
自动并行也是很可怕的,用户写的code有问题的话,很容易宕机。
软软的Open R估计是跟不上RStudio的节奏,要放弃了,现在还有多少在用它?
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我昨天发了贴后,查了一下微软的资料,说他家的R自动对R程序做了并行优化,所以不
: 要刻意使用并行,否则要么没什么提高,要么还不如不做
m
magliner
4 年多
14 楼
楼主用的是微软R, mran,
https://mran.microsoft.com/rro
写到:
Plus these key enhancements:
Multi-threaded math libraries that brings multi-threaded computations to R.
A high-performance default CRAN repository that provide a consistent and
static set of packages to all Microsoft R Open users.
我估计微软已经把底层计算重新写了一遍, 能优化的优化,能并行的并行 . foreach
对baseR灵, 对微软R不灵, 不奇怪。
w
wx2123
4 年多
15 楼
R还在提高,有个过程。
d
didadida
4 年多
16 楼
【 在 stxxx (Chen) 的大作中提到: 】
: 自动并行也是很可怕的,用户写的code有问题的话,很容易宕机。
: 软软的Open R估计是跟不上RStudio的节奏,要放弃了,现在还有多少在用它?
软软估计是对R丧失了信心
软软的R Tools for Visual Studio 比Rstudio强了不少,已经停了
l
lix0519
4 年多
17 楼
R open就一个用icc和mkl build R, 也就用blas和lapack的时候会用多线程,其他的
时候并没有区别。楼上几个是不是对blas和opemmp一无所知?
m
magliner
4 年多
18 楼
确实对你说的这些一无所知 。 不过我想微软花这么大功夫折腾R, 想必做了很大改动/改进吧 ? 底下的各种计算应该优化一遍吧 ?
我上面贴了链接,证明微软对R(我理解是base R的各种函数,库什么的)做了大改动。
只是一点猜想, 你懂得多,欢迎多分享。
【 在 lix0519 (tgh1122334) 的大作中提到: 】
: R open就一个用icc和mkl build R, 也就用blas和lapack的时候会用多线程,其他的
: 时候并没有区别。楼上几个是不是对blas和opemmp一无所知?
d
didadida
4 年多
19 楼
我在linux下按照网上的文章下载mkl重新编译了R的源代码
跑benchmark 25分数不错
但是运行我自己写的R比在Microsoft R Open上多花20%以上的时间
微软显然不是仅仅编译
【 在 lix0519 (tgh1122334) 的大作中提到: 】
: R open就一个用icc和mkl build R, 也就用blas和lapack的时候会用多线程,其他的
: 时候并没有区别。楼上几个是不是对blas和opemmp一无所知?
m
magliner
4 年多
20 楼
所以你的结论是 ??
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我在linux下按照网上的文章下载mkl重新编译了R的源代码
: 跑benchmark 25分数不错
: 但是运行我自己写的R比在Microsoft R Open上多花20%以上的时间
: 微软显然不是仅仅编译
d
dracodoc
4 年多
21 楼
微软只是买了个公司挂上自己logo而已(搜索Revolution Analytics),没有真的下大功夫。要是真的把底层全改了,全能并行,会有人不用吗?现实中有多少人用?
还有vs code,有多少人用来写R?RStudio是整个一套东西,RMD,shiny,R近年的进步一大半来自RStudio或RStudio资助的东西。
真正有作用的就是intel优化的MKL库而已,这玩意自己装起来不好装。你用base R也一样能并行就并行,最多效率比MKL低一点。
用户级别用R的并行,主要是Embarrassingly parallel,分几个R session去处理不同
数据,几乎没有进程间通讯。
windows上必须用socket,overhead高而且需要额外copy环境。linux/mac上可以用fork,效率高不需要手工copy。
如果想什么都不做,不改代码提高效率,希望最大的是GraalVM,现在还不成熟,如果
成熟了,可以直接把R的效率提高一个档次,这才是从底层去做的优化,用高性能JVM。
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我在linux下按照网上的文章下载mkl重新编译了R的源代码
: 跑benchmark 25分数不错
: 但是运行我自己写的R比在Microsoft R Open上多花20%以上的时间
: 微软显然不是仅仅编译
d
didadida
4 年多
22 楼
base R很差,这点毋庸置疑
我比较过
按照速度,运行我自己写的R,基本上是
Microsoft R Open for Windows (本机运行)>> 我自己用MKL编译的R运行在Docker = Rocker的OPenBLAS的docker >>> BASE R for Windows (本机运行)
运行benchmark25.R
我自己用MKL编译的R运行在Docker上居然速度超过了Microsoft R Open运行在本机
唯一区别是一个是R 4.0.1, Microsoft R Open是3.5.3
【 在 dracodoc (david) 的大作中提到: 】
: 微软只是买了个公司挂上自己logo而已(搜索Revolution Analytics),没有真的下大
: 功夫。要是真的把底层全改了,全能并行,会有人不用吗?现实中有多少人用?
: 还有vs code,有多少人用来写R?RStudio是整个一套东西,RMD,shiny,R近年的进步
: 一大半来自RStudio或RStudio资助的东西。
: 真正有作用的就是intel优化的MKL库而已,这玩意自己装起来不好装。你用base R也一
: 样能并行就并行,最多效率比MKL低一点。
: 用户级别用R的并行,主要是Embarrassingly parallel,分几个R session去处理不同
: 数据,几乎没有进程间通讯。
: windows上必须用socket,overhead高而且需要额外copy环境。linux/mac上可以用
fork
: ,效率高不需要手工copy。
: ...................
d
didadida
4 年多
23 楼
【 在 magliner (magliner) 的大作中提到: 】
: 所以你的结论是 ??
不要再折腾自己编译R了
老老实实用Microsoft R Open 3.5.3
请输入帖子链接
收藏帖子
我怀疑那些写教程比较并行计算速度优势的都是用原生R的
我在Microsoft R Open上计算,本身是用MKL优化了,并行的提高效果基本没有
不用并行,CPU占用率50%
用了并行,占用率长时间100%,风扇猛转,最后总运行时间差不多
haha, 把cpu用满不容易吧
【在 didadida(滴滴嗒嗒)的大作中提到:】
:我怀疑那些写教程比较并行计算速度优势的都是用原生R的
:
开了超线程做计算,CPU 50%正好,到100%不慢就不错了。
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我怀疑那些写教程比较并行计算速度优势的都是用原生R的
: 我在Microsoft R Open上计算,本身是用MKL优化了,并行的提高效果基本没有
: 不用并行,CPU占用率50%
: 用了并行,占用率长时间100%,最后总运行时间差不多
用原生R怎么了 , 有什么不对么 ?
R并行是快, 虽然不是线性增长那么快, 但感觉还是挺明显的。
不知道微软R是怎么回事, 要不要花钱 ?
原生R非常慢
Rocker的R是加了openBLAS重新编译了
【 在 magliner (magliner) 的大作中提到: 】
: 用原生R怎么了 , 有什么不对么 ?
: R并行是快, 虽然不是线性增长那么快, 但感觉还是挺明显的。
: 不知道微软R是怎么回事, 要不要花钱 ?
R的并行运算效果还是很明显的。先检查下自己搞对了没有,别总感觉就自己高,那帮
写package的都在吃x,那样很silly。
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我怀疑那些写教程比较并行计算速度优势的都是用原生R的
: 我在Microsoft R Open上计算,本身是用MKL优化了,并行的提高效果基本没有
: 不用并行,CPU占用率50%
: 用了并行,占用率长时间100%,风扇猛转,最后总运行时间差不多
很可能是cache missing太多
我以前用过dosnow加foreach 很简单的并行 效果很好
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我怀疑那些写教程比较并行计算速度优势的都是用原生R的
:
: 我在Microsoft R Open上计算,本身是用MKL优化了,并行的提高效果基本没有
:
: 不用并行,CPU占用率50%
: 用了并行,占用率长时间100%,风扇猛转,最后总运行时间差不多
【 在 magliner (magliner) 的大作中提到: 】
: 用原生R怎么了 , 有什么不对么 ?
: R并行是快, 虽然不是线性增长那么快, 但感觉还是挺明显的。
: 不知道微软R是怎么回事, 要不要花钱 ?
https://mran.microsoft.com/open
免费很长时间了
唯一缺点就是到了 3.5.3 就没再更新
我昨天发了贴后,查了一下微软的资料,说他家的R自动对R程序做了并行优化,所以不要刻意使用并行,否则要么没什么提高,要么还不如不做
【 在 stxxx (Chen) 的大作中提到: 】
: R的并行运算效果还是很明显的。先检查下自己搞对了没有,别总感觉就自己高,那帮
: 写package的都在吃x,那样很silly。
同意,我的经验也是一样的
R并行的时候是直接把计算分配到每个thread,所以机器的thread是个限制。而且R会
copy所有的数据程序到每个thread,所以可能出现内存不足的问题
【 在 magliner (magliner) 的大作中提到: 】
: 用原生R怎么了 , 有什么不对么 ?
: R并行是快, 虽然不是线性增长那么快, 但感觉还是挺明显的。
: 不知道微软R是怎么回事, 要不要花钱 ?
糊涂了,R不是单线程的吗,怎么并行计算?
自动并行也是很可怕的,用户写的code有问题的话,很容易宕机。
软软的Open R估计是跟不上RStudio的节奏,要放弃了,现在还有多少在用它?
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我昨天发了贴后,查了一下微软的资料,说他家的R自动对R程序做了并行优化,所以不
: 要刻意使用并行,否则要么没什么提高,要么还不如不做
楼主用的是微软R, mran,https://mran.microsoft.com/rro
写到:
Plus these key enhancements:
Multi-threaded math libraries that brings multi-threaded computations to R.
A high-performance default CRAN repository that provide a consistent and
static set of packages to all Microsoft R Open users.
我估计微软已经把底层计算重新写了一遍, 能优化的优化,能并行的并行 . foreach
对baseR灵, 对微软R不灵, 不奇怪。
R还在提高,有个过程。
【 在 stxxx (Chen) 的大作中提到: 】
: 自动并行也是很可怕的,用户写的code有问题的话,很容易宕机。
: 软软的Open R估计是跟不上RStudio的节奏,要放弃了,现在还有多少在用它?
软软估计是对R丧失了信心
软软的R Tools for Visual Studio 比Rstudio强了不少,已经停了
R open就一个用icc和mkl build R, 也就用blas和lapack的时候会用多线程,其他的
时候并没有区别。楼上几个是不是对blas和opemmp一无所知?
确实对你说的这些一无所知 。 不过我想微软花这么大功夫折腾R, 想必做了很大改动/改进吧 ? 底下的各种计算应该优化一遍吧 ?
我上面贴了链接,证明微软对R(我理解是base R的各种函数,库什么的)做了大改动。
只是一点猜想, 你懂得多,欢迎多分享。
【 在 lix0519 (tgh1122334) 的大作中提到: 】
: R open就一个用icc和mkl build R, 也就用blas和lapack的时候会用多线程,其他的
: 时候并没有区别。楼上几个是不是对blas和opemmp一无所知?
我在linux下按照网上的文章下载mkl重新编译了R的源代码
跑benchmark 25分数不错
但是运行我自己写的R比在Microsoft R Open上多花20%以上的时间
微软显然不是仅仅编译
【 在 lix0519 (tgh1122334) 的大作中提到: 】
: R open就一个用icc和mkl build R, 也就用blas和lapack的时候会用多线程,其他的
: 时候并没有区别。楼上几个是不是对blas和opemmp一无所知?
所以你的结论是 ??
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我在linux下按照网上的文章下载mkl重新编译了R的源代码
: 跑benchmark 25分数不错
: 但是运行我自己写的R比在Microsoft R Open上多花20%以上的时间
: 微软显然不是仅仅编译
微软只是买了个公司挂上自己logo而已(搜索Revolution Analytics),没有真的下大功夫。要是真的把底层全改了,全能并行,会有人不用吗?现实中有多少人用?
还有vs code,有多少人用来写R?RStudio是整个一套东西,RMD,shiny,R近年的进步一大半来自RStudio或RStudio资助的东西。
真正有作用的就是intel优化的MKL库而已,这玩意自己装起来不好装。你用base R也一样能并行就并行,最多效率比MKL低一点。
用户级别用R的并行,主要是Embarrassingly parallel,分几个R session去处理不同
数据,几乎没有进程间通讯。
windows上必须用socket,overhead高而且需要额外copy环境。linux/mac上可以用fork,效率高不需要手工copy。
如果想什么都不做,不改代码提高效率,希望最大的是GraalVM,现在还不成熟,如果
成熟了,可以直接把R的效率提高一个档次,这才是从底层去做的优化,用高性能JVM。
【 在 didadida (滴滴嗒嗒) 的大作中提到: 】
: 我在linux下按照网上的文章下载mkl重新编译了R的源代码
: 跑benchmark 25分数不错
: 但是运行我自己写的R比在Microsoft R Open上多花20%以上的时间
: 微软显然不是仅仅编译
base R很差,这点毋庸置疑
我比较过
按照速度,运行我自己写的R,基本上是
Microsoft R Open for Windows (本机运行)>> 我自己用MKL编译的R运行在Docker = Rocker的OPenBLAS的docker >>> BASE R for Windows (本机运行)
运行benchmark25.R
我自己用MKL编译的R运行在Docker上居然速度超过了Microsoft R Open运行在本机
唯一区别是一个是R 4.0.1, Microsoft R Open是3.5.3
【 在 dracodoc (david) 的大作中提到: 】
: 微软只是买了个公司挂上自己logo而已(搜索Revolution Analytics),没有真的下大
: 功夫。要是真的把底层全改了,全能并行,会有人不用吗?现实中有多少人用?
: 还有vs code,有多少人用来写R?RStudio是整个一套东西,RMD,shiny,R近年的进步
: 一大半来自RStudio或RStudio资助的东西。
: 真正有作用的就是intel优化的MKL库而已,这玩意自己装起来不好装。你用base R也一
: 样能并行就并行,最多效率比MKL低一点。
: 用户级别用R的并行,主要是Embarrassingly parallel,分几个R session去处理不同
: 数据,几乎没有进程间通讯。
: windows上必须用socket,overhead高而且需要额外copy环境。linux/mac上可以用
fork
: ,效率高不需要手工copy。
: ...................
【 在 magliner (magliner) 的大作中提到: 】
: 所以你的结论是 ??
不要再折腾自己编译R了
老老实实用Microsoft R Open 3.5.3