Spacedman..

18

首先确保你的慢R版本是正确的.调试R代码可能比调试C代码更容易.完成了吗?大.您现在可以使用正确的代码进行比较.

接下来,找出花时间的东西.使用Rprof运行代码,看看花了多少时间.我为一些我继承过的代码做了这个,发现它花了90%的时间在t()函数中.这是因为程序员有一个矩阵A,并且在无数个地方做了t(A).我在开始时做了一个tA = t(A),并用tA替换每个t(A).大力加速,不费吹灰之力.首先描述您的代码.

现在,你已经找到了瓶颈.是你可以加速R的代码吗?它是一个可以矢量化的循环吗?去做.根据您的黄金标准正确代码检查您的结果.总是.是的,我知道很难比较依赖随机数的算法,因此设置种子相同并再试一次.

还不够快?好的,现在也许你需要在C或C++或Fortran中重写部分(一般是最低级别的部分,以及那些花费大部分时间进行分析的部分),或者如果你真的想用GPU代码那么.

再次,真的检查代码给出与正确的R代码相同的答案.真的检查一下.如果在此阶段您在常规方法中找到任何错误,请将其修复为您认为正确的R代码和最新版本,并重新运行所有测试.建立大量的自动测试.经常运行它们.

阅读有关代码重构的内容.它被称为重构,因为如果你告诉你的老板你正在重写你的代码,他或她会说'你为什么不第一次正确写它?'.如果你说你正在重构你的代码,他们会说"嗯......很好".这实际上是发生的.

正如其他人所说,Rcpp是胜利的.

是的:http://www.cafepress.co.uk/cp/customize/product2.aspx?from = CustomDesigner&number = 618625436 (11认同)

C语言metropolis方法,如何使用Metropolis-Hastings算法将C或C++代码合并到我的R代码中以加速MCMC程序...相关推荐

  1. R语言sys方法:sys.info函数获取系统和用户信息、sys.localeConv函数获取当前区域中的数字和货币表示的详细信息、sys.setFileTime函数更改文件的时间

    R语言sys方法:sys.info函数获取系统和用户信息.sys.localeConv函数获取当前区域中的数字和货币表示的详细信息.sys.setFileTime函数更改文件的时间 目录

  2. C语言试题十之将两个两位数的正整数a b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c的十位和千位上,b数的十位和个位数依次放在c数的个位和百位上。

  3. 博途中用的是c吗_S7-1500系列博途中使用SCL语言编程方法简介

    S7-1500系列博途中使用SCL语言编程方法简介 SCL:Structured Contorl Language,结构化控制语言. 在TIA博途软件中,默认支持SCL语言,在建立程序块时可以直接选择 ...

  4. R语言tidyr包Unite()函数实战详解:多个数据列合并为一列

    R语言tidyr包Unite()函数实战详解:多个数据列合并为一列 目录 R语言tidyr包Unite()函数实战详解:多个数据列合并为一列

  5. MCMC中的Metropolis–Hastings算法与吉布斯采样

    Metropolis–Hastings算法是一种具体的MCMC方法,而吉布斯采样(Gibbs Sampling)是Metropolis–Hastings算法的一种特殊形式.二者在机器学习中具有重要作用 ...

  6. python解zuobiaoxi方程_从马尔可夫链到蒙特卡洛-Metropolis方法(Python)

    这学期在上郭璐老师的<计算物理>,结合<An Introduction to Computational Physics>与网上一些资料,整理一下马尔科夫链与蒙特卡洛法相关笔记 ...

  7. Metropolis–Hastings算法

    1蒙特卡洛方法 蒙特卡罗方法也称统计模拟方法,是一种以概率统计理论为指导的数值计算方法.蒙特卡洛方法的基本思想是,当所求解问题是某种随机事件出现的概率,或者是某个随机变量的期望值时,通过某种" ...

  8. R语言sys方法:sys.chmod函数改变指定文件的权限、Sys.Date函数返回系统的当前日期、Sys.time函数返回系统的当前时间

    R语言sys方法:sys.chmod函数改变指定文件的权限.Sys.Date函数返回系统的当前日期.Sys.time函数返回系统的当前时间 目录

  9. R语言sys方法:sys.getpid函数获取R会话的进程ID、sys.glob函数和file.path函数匹配文件夹下的所有特定类型文件、sys.info函数获取系统和用户信息

    R语言sys方法:sys.getpid函数获取R会话的进程ID.sys.glob函数和file.path函数匹配文件夹下的所有特定类型文件.sys.info函数获取系统和用户信息 目录

最新文章

  1. linux shell 读取文件 笔记
  2. 最温暖的大学,最火热的比赛
  3. 笔尖已加载,但未设置“查看”出口
  4. c语言hook内核作用,hook内核函数的基本方法(附代码,经测试不蓝屏)
  5. DCMTK:DcmSpecificCharacterSet类的测试程序
  6. 《c语言从入门到精通》看书笔记——第10章 指针
  7. DGbroker故障切换示例
  8. css中设置图片旋转45度,css 实现缓和变量,鼠标悬停时元素旋转45度动画
  9. 【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工作原理
  10. mysql访问类型最好的_【干货满满】最全的MySQL性能指南(一):选择最佳的数据类型...
  11. mysql数据还原时报错_还原mysql数据库时报错
  12. SQLServer数据库写入操作时报错:not all arguments converted during string formatting 问题解决
  13. 从月收入8000元到15000元,你和LabVIEW编程高手的差距到底在哪?
  14. 用Java开发数独游戏,源程序与源代码全部开放
  15. Python学习笔记-数据类型(元组 tuple)
  16. apm最高的记录_APM工具使用记录
  17. [2019][CVPR]Balanced Self-Paced Learning for Generative Adversarial Clustering Network 笔记
  18. Spring 事务源码(7)—事务的completeTransactionAfterThrowing回滚、commitTransactionAfterReturning提交以及事务源码总结【一万字】
  19. 问题及解决方法记录:A component required a bean of type ‘org.springframework.web.client.RestTemplate‘ that cou
  20. 计算机应用基础教育教学工作总结,计算机应用基础教学工作总结

热门文章

  1. 文档测试要测什么,怎么测?
  2. linux修改二进制文件
  3. Docker-ce最新版在Ubuntu18.04上的安装、更新、卸载方法(存储库方式)
  4. THREE.js模型贴图不显示
  5. H5版的怀旧游戏机,可在手机电脑上在线玩经典模拟器游戏的网站源码
  6. 模拟CMOS集成电路设计入门学习(2)
  7. 智慧档案馆十防环境监控系统方案
  8. Flutter生成长截图并保存在本地
  9. html5 跨屏框架,Amaze UI优秀案例:跨屏H5前端框架
  10. 56个民族数组Json文件