性能基准

李岱江

2020-12-17

PSV系列功能基准

压力安全阀

图书馆(物理)

#模拟数据
国家科学政策计划= 500
奈特= 100
树_模拟=::rtree公司(n个=nspp)
通信(_S)= 矩阵(红细胞瘤(nspp*奈特,尺寸= 1,问题= 0.6),
                  nrow公司=奈特,ncol公司=nspp)
行名称(命令符号)= 粘贴0(“站点_”,1:现场)
colnames公司(comm_sim)= 粘贴0(“t”,1:nspp)
通信信号(_S)=comm_sim[,tree_sim$提示标签]
#大约快40倍
红色基准线::基准(
  “皮坎特” ={皮坎特::压力安全阀(comm_sim,tree_sim)},
  “风R” ={风::压力安全阀(comm_sim、tree_sim、,中央处理器= 错误的)},
  “物理c++” ={风::压力安全阀(comm_sim、tree_sim、,中央处理器= 真的)},
  复制= 10,
  列= c(c)(“测试”,“复制”,“已过”,
              “相对”,“user.self”,“系统自身”))
#>相对user.self sys.self测试复制已用时间
#>3物理量++10 0.339 1.000 0.298 0.030
#>2楼10 3.287 9.696 2.907 0.303
#>1皮坎特10 16.265 47.979 14.824 0.795

伪随机序列

通信信号(_S)= 矩阵(rpois公司(nspp*硫铁矿,),nrow公司=硫铁矿,ncol公司=nspp)
行名称(命令符号)= 粘贴0(“站点_”,1:现场)
列名(命令符号)= 粘贴0(“t”,1:nspp)
通信信号(_S)=comm_sim[,tree_sim$提示标签]
#大约快2-3倍
红色基准线::基准(
  “皮坎特” ={皮坎特::伪随机序列(comm_sim,tree_sim)},
  “风R” ={风::伪随机序列(comm_sim、tree_sim、,中央处理器= 错误的)},
  “物理c++” ={物理::伪随机序列(comm_sim、tree_sim、,中央处理器= 真的)},
  复制= 20,
  列= c(c)(“测试”,“复制”,“已过去”,
              “相对”,“user.self”,“系统自身”))
#>相对user.self sys.self测试复制已用时间
#>3 phyr c++20 1.456 1.000 1.329 0.105
#>2物理R 20 4.233 2.907 3.453 0.555
#>1皮坎特20 3.858 2.650 3.319 0.475

多氯联苯

#pcd大约快20倍
红色基准线::基准(
  “风” ={风::多氯联苯(通信=命令a,树=藻树,代表= 1000,冗长的= 错误的)},
  “皮坎特” ={皮坎特::多氯联苯(通信=命令a,树=藻树,代表= 1000)},
  复制= 10,
  列= c(c)(“测试”,“复制”,“已过去”,
              “相对”,“user.self”,“系统自身”))
#>相对user.self sys.self测试复制已用时间
#>1物理10 0.214 1.000 0.192 0.012
#>2皮坎特10 4.516 21.103 4.043 0.074

社区PGLMM基准(pglmm公司)

要比较cpp版本和R版本,以及来自佩兹包裹。

图书馆(dplyr)
通信=通信(_a)
通信$网站= 行名称(通信)
日期=第三年::聚集(通信,钥匙= “sp”,价值= “频率”,-现场)%>% 
  left_join(左_连接)(嫉妒,由= “站点”)%>% 
  left_join(左_连接)(特征,由= “sp”)
日期$= as.数字(日期$频率> 0)
#pez::communityPGLMM的数据准备,phyr::pglmm不需要
日期= 安排(日期、地点、sp)
日期= 滤波器(日期,sp%单位:% 样品(独特的(日期$sp),10),
网站%单位:% 样品(独特的(日期$现场),5))
国家安全生产计划= n_distinct(非重复)(日期$sp)
奈特= n_distinct(非重复)(日期$现场)

日期$网站= as.系数(日期$现场)
日期$服务提供商= as.系数(日期$sp)

=::滴落.tip(藻树,设置差异(藻树$提示标签,独特的(日期$sp))
Vphy公司<-::真空断路器(树)
Vphy公司<-Vphy公司/最大值(弗菲)
Vphy公司<-Vphy公司/经验(行列式(弗菲)$模数,模量[1]/nspp)
Vphy公司=Vphy公司[水平(日期$sp),水平(日期$sp)]

#准备随机效果
再现场<- 列表(1,场地=日期$现场,共价= 诊断(现场)
re.sp公司<- 列表(1,标准普尔=日期$服务提供商,共价= 诊断(nspp))
射线照相术<- 列表(1,特殊用途=日期$服务提供商,共价=Vphy)
#sp嵌套在站点中
重新测试phy<- 列表(1,标准普尔=日期$服务提供商,共价=弗菲,场地=日期$现场)
重新测试代表<- 列表(1,标准普尔=日期$服务提供商,共价= 解决(Vphy),场地=日期$现场)#等于sp__@站点
#可以命名
重新= 列表(re.sp公司=回复:,re.sp.phy公司=re.sp.phy,重新测试phy=re.nested.phy,回复:,再现场=现场)

#对于小数据集,速度大约快4-10倍
红色基准线::基准(
  “phyr c++bobyqa” ={风::pglmm公司(频率~ 1 +阴影+(1|sp__)+(1|现场)+(1|标准普尔__@现场),
日期,覆盖(_R)= 列表(标准普尔=藻树),REML公司= 错误的,
              中央处理器= 真的,优化器= “博比卡”)},
  “phyr c++Nelder-Mead” ={风::pglmm公司(频率~ 1 +阴影+(1|sp__)+(1|现场)+(1|标准普尔__@现场),
日期,覆盖(_R)= 列表(标准普尔=藻树),REML公司= 错误的,
              中央处理器= 真的,优化器= “尼尔德·米德”)},
  “phyr R Nelder-Mead” ={风::pglmm公司(频率~ 1 +阴影+(1|sp__)+(1|现场)+(1|标准普尔__@现场),
日期,覆盖(_R)= 列表(标准普尔=菲洛特里),雷米= 错误的,
              中央处理器= 错误的,优化器= “Nelder-Mad”)},
  “pez R Nelder-Mead” ={佩兹::社区PGLMM(频率~ 1 +阴影,数据=日期,标准普尔=日期$服务提供商,场地=日期$现场,
                      随机效果=重新,REML公司= 错误的)},
  复制= 5,
  列= c(c)(“测试”,“复制”,“已过去”,
              “相对”,“user.self”,“系统自身”)
)
#>相对于user.self sys.self运行的测试复制
#>4 pez R内尔德-梅德5 32.214 88.989 30.821 0.374
#>1 phyr c++bobyqa 5 0.362 1.000 0.342 0.006
#>2 phyr c++Nelder-Mead 5(2个)1.156 3.193 1.115 0.015
#>3 phyr R Nelder-Mead 5号机组33.281 91.936 31.198 0.480

#对于小数据集,速度大约快6倍
红色基准线::基准(
  “phyr c++bobyqa” ={风::pglmm公司(帕~ 1 +阴影+(1|sp__)+(1|现场)+(1|标准普尔__@现场),
日期,家庭= “二项式”,覆盖(_R)= 列表(标准普尔=藻树),REML公司= 错误的,
              中央处理器= 真的,优化器= “博比卡”)},
  “phyr c++Nelder-Mead” ={风::pglmm公司(帕~ 1 +阴影+(1|sp__)+(1|现场)+(1|标准普尔__@现场),
日期,家庭= “二项式”,覆盖(_R)= 列表(标准普尔=藻树),REML公司= 错误的,
              中央处理器= 真的,优化器= “Nelder-Mad”)},
  “phyr R Nelder-Mead” ={风::pglmm公司(帕~ 1 +阴影+(1|sp__)+(1|现场)+(1|标准普尔__@现场),
日期,家庭= “二项式”,冠状病毒= 列表(标准普尔=藻树),REML公司= 错误的,
              中央处理器= 错误的,优化器= “Nelder-Mad”)},
  “pez R Nelder-Mead” ={佩兹::社区PGLMM(帕~ 1 +阴影,数据=日期,标准普尔=日期$服务提供商,
                                             家庭= “二项式”,场地=日期$现场,
                      随机效果=重新,REML公司= 错误的)},
  复制= 5,
  列= c(c)(“测试”,“复制”,“已过”,
              “相对”,“user.self”,“系统自身”)
)
#>相对user.self sys.self测试复制已用时间
#>4 pez R内尔德-梅德5 49.296 42.314 45.731 0.604
#>1 phyr c++bobyqa 5 1.840 1.579 1.750 0.033
#>2 phyr c++Nelder-Mead 5 1.165 1.000 1.093 0.021型
#>3 phyr R Nelder-Mead 5号机组24.355 20.906 23.024 0.317

基准cor_phylo()

图书馆(猿)
#设置模拟数据的参数值
n个<- 50
物理<- rcoal公司(编号:,提示标签= 1:n)
trt名称<- 粘贴0(“票面价值”,1:2)

<- 矩阵(c(c)(1,0.7,0.7,1),nrow公司= 2,ncol公司= 2)
d日<- c(c)(0.3,0.95)
地下二层<- 1

<- c(c)(0.2,1)
M(M)<- 矩阵(硒,nrow公司=编号:,ncol公司= 2,旁观者= 真的)
列名(百万)<-trt名称

#设置仿真所需的矩阵
第页<- 长度(d)

明星<- 压力(n)
明星$边缘长度<- 阵列(1,暗淡= c(c)(编号:,1))
明星$提示标签<-物理(phy)$提示标签

Vphy公司<- 真空断路器(物理)
Vphy公司<-Vphy公司/最大值(弗菲)
Vphy公司<-虚拟物理/经验(行列式(弗菲)$模数,模量[1]/n)

<- 矩阵(1,nrow公司=编号:,ncol公司= 1)%*% 诊断(弗菲)-Vphy公司
C类<- 矩阵(0,nrow公司=第页*编号:,ncol公司=第页*n)
对于(i)在里面 1:第页)对于(j)在里面 1:第页){
<-(d[i]^*(日[j]^t吨(套)*(1 -(d[i])*d【j】)^Vphy))/(1 -天[i]*d【j】)
C[(n)*(i)- 1)+ 1):(i)*n) ,(n*(j)- 1)+ 1):(j)*n) ]<-R(i,j)*
}
MM(毫米)<- 矩阵(百万)^2,ncol公司= 1)
V(V)<-C类+ 诊断(as.数字(MM))

身份证件<- t吨(焦耳(五) )

XX年<-身份证件%*% rnorm公司(2 *n)
X(X)<- 矩阵(XX,n,p)
列名(十)<-trt名称
行名称(X)<-物理(phy)$提示标签
行名称(百万)<-物理(phy)$提示标签

U型<- 列表(cbind公司(rnorm公司(编号:,平均值= 2,标准偏差= 10)))
姓名(U)<-trt名称[2]

X[,2]<-X[,2]+B2级[1]*单位[[1]][,1]-B2层[1]* 意思是(U[[1]][,1])

z(z)<- cor_phylo公司(变量=X、,
               协变量=U、,
               测量_错误=M、,
               物理(phy)=物理,
               物种=物理(phy)$提示标签)


U2乐队<- 列表(无效的,矩阵(rnorm公司(编号:,平均值= 2,标准偏差= 10),nrow公司=编号:,ncol公司= 1))
行名称(U2[[2]])<-物理(phy)$提示标签
列名(U2[[2]])<- “第2部分”
X2个=X(X)
X2[,2]<-X2[,2]+B2层[1]*U2乐队[[2]][,1]-B2层[1]* 意思是(U2[[2]][,1])

zr(零)<- 身体(X(X)=X2,塞姆=M、,单位=U2中,物理(phy)=物理,方法= “Nelder-Mad”)

红色基准线::基准(
  “cor_phylo” ={cor_phylo公司(变量=X、,协变量=U、,测量_错误=M、,
                           物理(phy)=物理,物种=物理(phy)$提示.标签)},
  “身体” ={身体(X(X)=X2,塞姆=M、,U型=U2、,物理(phy)=物理,方法= “Nelder-Mad”)},
  复制= 5,
  列= c(c)(“测试”,“复制”,“已过去”,
              “相对”,“user.self”,“系统自身”)
)
#>相对user.self sys.self测试复制已用时间
#>1 cor_phylo 5 4.511 1.000 4.329 0.062
#>2小体5 16.190 3.589 13.863 1.369