加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

R Performance Differential(Solaris vs Windows)

发布时间:2020-12-14 05:40:22 所属栏目:Windows 来源:网络整理
导读:我注意到一个有趣的问题.如果我在具有2GB RAM的 Windows 3.00 gHz Core 2 Duo CPU上的R 2.12.0(32位)中运行以下代码,它将在不到一秒的时间内运行.如果我在带有sparc-sun-solaris2.10的unix-box上运行它(也是32位,虽然unix盒可以运行64位),它需要84秒. unix盒
我注意到一个有趣的问题.如果我在具有2GB RAM的 Windows 3.00 gHz Core 2 Duo CPU上的R 2.12.0(32位)中运行以下代码,它将在不到一秒的时间内运行.如果我在带有sparc-sun-solaris2.10的unix-box上运行它(也是32位,虽然unix盒可以运行64位),它需要84秒. unix盒的处理速度为2.5 gHz.如果我在代码运行时运行top,我注意到我的R进程只占用了大约3.2%的可用cpu状态,即使有更多可用的状态.这可能是问题的一部分吗?我阅读了安装手册,但没有任何内容成为我问题的明显解决方案. unix操作系统是否以某种方式限制了可用资源,而windows则不然?或者,是否有一些更好的方法从未完成的源编译R?如果我没有提供足够的信息来回答这个问题,我很抱歉,这不是我的专业领域.

t0 <- proc.time()[[3]]
x <- rnorm(10000)
for(i in 1:10000){
    sd(x)
}
print(proc.time()[[3]]-t0)

解决方法

诸如T1或T2的处理器具有多个核,并且每个核具有多个链(硬件级上下文切换).如果您可以运行多线程应用程序,您将获得大量吞吐量.典型的预期用例是基于Java的web服务器,例如处理同时20-40个连接.

这类处理器的缺点是这些SPARC芯片的单线程性能非常低.看起来像Oracle is aware的问题;目前T4的开发重点是提高单线程速度.

T1 processor将32个逻辑CPU暴露给操作系统.如果这是你的情况,显示的值是总计算能力的百分比,1 / 32~ = 3.125%,这接近你所看到的.

要从T1处理器中挤出所有性能,您需要使R使用多个CPU,例如通过multicore package.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读