楼主: 求证1加1
9693 12

[程序分享] Julia与R的性能对比 [推广有奖]

  • 1关注
  • 84粉丝

已卖:1份资源

学科带头人

29%

还不是VIP/贵宾

-

威望
3
论坛币
-8924352 个
通用积分
184.3048
学术水平
189 点
热心指数
250 点
信用等级
158 点
经验
45709 点
帖子
1109
精华
0
在线时间
1492 小时
注册时间
2013-2-24
最后登录
2021-1-20

初级热心勋章 初级信用勋章 中级热心勋章

楼主
求证1加1 发表于 2013-11-27 18:01:03 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
不得不说Julia在速度上相比R而言确实有一个非常大的提升,以一个简单的小实验为例,分别通过R和Julia来运行
引用自:
http://rsnippets.blogspot.com/2013/11/simulatin-speed-gnu-r-vs-julia.html

R
  1. library(e1071)
  2. cont.run <- function(burn.in, reps, n, d, l, s) {
  3.   tr <- rep(0, n)
  4.   r <- rep(0, reps)
  5.   for (i in 1:reps) {
  6.     sig <- rnorm(1, 0, d)
  7.     mul <- 1
  8.     if (sig < 0) {
  9.         sig <- -sig
  10.         mul <- -1
  11.     }
  12.     r[i] <- mul * sum(sig > tr) / (l * n)
  13.     tr[runif(n) < s] <- abs(r[i])
  14.   }
  15.   return(kurtosis(r[burn.in:reps]))
  16. }

  17. system.time(replicate(10,
  18.     cont.run(1000, 10000, 1000, 0.005, 10.0, 0.01)))
复制代码

Julia
  1. using Distributions
  2. function cont_run(burn_in, reps, n, d, l, s)
  3.     tr = Array(Float64, n)
  4.     r = Array(Float64, reps)
  5.     for i in 1:reps
  6.         aris = 0
  7.         sig = randn() * d
  8.         mul = 1
  9.         if sig < 0
  10.             sig = -sig
  11.             mul = -1
  12.         end
  13.         for k in 1:n
  14.             if sig > tr[k]
  15.                 aris += 1
  16.             end
  17.         end
  18.         ari = aris / (l * n)
  19.         r[i] = mul * ari
  20.         for j in 1:n
  21.             if rand() < s
  22.                 tr[j] = ari
  23.             end
  24.         end
  25.     end
  26.     kurtosis(r[burn_in:reps])
  27. end

  28. n = 10
  29. t_start = time()
  30. k = Array(Float64, n)
  31. for i in 1:n
  32.     k[i] = cont_run(1000, 10000, 1000, 0.005, 10.0, 0.01)
  33. end
  34. println(time() -t_start)
复制代码


事实上在这个例子中Julia的运行速度可以比R快一个数量级



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Julia Jul Library speed Blogs

个人主页,欢迎订阅http://chenangliu.info/

沙发
swei007 发表于 2013-11-27 18:32:00
Julia是什么?以前没听说过

藤椅
求证1加1 发表于 2013-11-27 19:30:02
swei007 发表于 2013-11-27 18:32
Julia是什么?以前没听说过
与R类似,也是一种解释型编程语言,同样开源免费,性能上非常优异,并且正在迅速发展中。

https://bbs.pinggu.org/thread-2748850-1-1.html 我摘了部分简介下来,具体可以在这里看 http://julialang.org/
个人主页,欢迎订阅http://chenangliu.info/

板凳
swei007 发表于 2013-11-27 21:52:10
嗯,了解了新软件,谢谢!

报纸
求证1加1 发表于 2013-11-27 22:22:53
swei007 发表于 2013-11-27 21:52
嗯,了解了新软件,谢谢!
可以尝试一下哈!
个人主页,欢迎订阅http://chenangliu.info/

地板
swei007 发表于 2013-11-28 10:52:01
对滴!终于有一次走在了前沿!

7
guo.bailing 发表于 2013-11-28 19:53:20
swei007 发表于 2013-11-28 10:52
对滴!终于有一次走在了前沿!
自助者,天助之!

8
soccy 发表于 2013-12-29 03:42:43
不尽然:http://www.r-bloggers.com/gnu-r-vs-julia-is-it-only-a-matter-of-devectorization/
已有 1 人评分热心指数 收起 理由
求证1加1 + 1 鼓励积极发帖讨论

总评分: 热心指数 + 1   查看全部评分

9
碧落侍郎 发表于 2014-1-29 18:58:55
入门难吗

10
求证1加1 发表于 2014-1-29 22:29:56
碧落侍郎 发表于 2014-1-29 18:58
入门难吗
单纯上手的话完全不难,如果你有matlab、R之类的基础的话可以迅速上手
个人主页,欢迎订阅http://chenangliu.info/

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-8 19:29