RStan会在超级计算机上运行吗?

Mar*_*ler 10 r stan

Stan是Gelman等人的新贝叶斯分析软件.

我猜,RStan是一种从内部呼叫Stan的方法.

Will Stan/RStan是否可以在配备Linux操作系统的超级计算机上运行,​​如果可以,它可以利用超级计算机的多处理器?有人告诉我,WinBUGS不会在Linux机器上运行和/或无法利用超级计算机的多处理器.

我正在寻找一种加速贝叶斯分析的方法 - 从几周到几天/小时.

Ben*_*ich 20

Stan和rstan应该在支持依赖项的Linux,Mac或Windows上运行.我们没有在BSD或Oracle上进行测试,但我们希望它们可以与g ++或clang编译器一起使用(尽管不是Oracle编译器).

Stan或rstan中没有明确的并行代码,但也没有任何代码阻止二进制同时由多个进程执行.例如,如果您在bash shell中使用命令行中的Stan,则可以执行类似的操作

./my_model --data=my_data.dump --seed=12345 --chain_id=1 --samples=samples_1.csv &
./my_model --data=my_data.dump --seed=12345 --chain_id=2 --samples=samples_2.csv &
Run Code Online (Sandbox Code Playgroud)

等等你喜欢的链条.在并行执行时使用相同的种子但不同的chain_id很重要.

如果您使用的是rstan软件包,则可以stan()使用R和您的操作系统支持的任何并行引擎来调用main 函数.同样,最好传递相同的种子和不同的chain_id.截至rstan v1.0.3(尚未发布),有一个函数被调用sflist2stanfit(),它获取stanfit可能已并行生成的对象列表,并将它们组合成一个stanfit对象进行分析.

有关更多信息,有一个致力于并行执行的线程

https://groups.google.com/d/topic/stan-users/3goteHAsJGs/discussion

  • 没有太大变化.对于RStan来说,2016年5月更容易,因为您可以在调用之前将`cores`参数指定为`stan`或`sampling`或者只是设置`options(mc.cores = parallel :: detectCores())` `stan`或`sampling`.但这只会减少打字.它仍然做同样的事情(并行化链)并且不会在链中并行化任何东西. (2认同)

Mar*_*ler 5

我写道,我会发布我学到的东西.

大学超级计算中心认为RStan将在他们的机器上运行.但是,我必须申请一个帐户,这可能需要一些时间.所以,我不确定RStan会在那些机器上运行一段时间.值得一提的是,他们设施的正式名称是"北极地区超级计算中心".

我在桌面上安装RStan时遇到了麻烦,不得不得到OIT的帮助.所以,这里是我使用的步骤和OIT绅士使用的代码.我有一个Windows 7 Professional操作系统.

  1. 我不得不使用R 2.15.1

  2. 我在目录'C:\ R\R-2.15.1'中安装了R,因此目录名中没有空格

  3. 我不得不安装Rtools.

  4. 我在目录'C:\ Rtools'中安装了Rtools

  5. 确保Rtools出现在路径中,以便R可以在Rtools中找到C++编译器

  6. 去检查:

    计算机,属性,高级系统设置,环境变量,路径.

    我想我应该同时包括:'c:\ Rtools\bin'和:'c:\ Rtools\gcc-4.6.3\bin'

  7. 打开R.

  8. 以下是要输入的R代码(此代码显示在此处:http: //code.google.com/p/stan/wiki/RStanGettingStarted):

    install.packages( '内联')

    install.packages( 'RCPP')

    install.packages( 'RcppEigen')

    选项(repos = c(getOption("repos"),rstan ="http://wiki.stan.googlecode.com/git/R"))

    install.packages('rstan',type ='source')

    库(rstan)

  9. 然后我从这里跑了学校的例子:

http://code.google.com/p/stan/wiki/RStanGettingStarted

上周我一直在尝试使用pdf文件'stan-reference-1.0.2'中包含的指令来安装STAN,而不是上面链接中的指令.

我希望这有助于其他人.如果我知道RStan肯定会在Supercomputing Center机器上运行,我会在这里发布我学到的东西.

我没有卸载STAN来测试上述程序.希望我在上述步骤中没有犯任何错误.

  • 对于它的价值,任何合理设置的集群(以及大多数Unix桌面)很可能已经完成了步骤#2-6的所有等价物...... (2认同)
  • 你需要的只是一个足够晚的R版本和一个最近足够的C++编译器.自2012年以来,我们使RStan更容易安装,并通过更多有关先决条件的信息改进了各种平台安装的文档. (2认同)