我在有8个多核处理器的linux机器上运行R,并且有一个优化问题,我想通过并行化优化例程本身来加快速度。重要的是,这个问题涉及(1)多个参数,(2)模型运行固有的缓慢。一个相当常见的问题!
有没有人知道针对这种情况的并行优化器?
更具体地说,每次算法在参数空间中执行一步时,像nlm()
这样的求解器都会运行多个模型评估(每个参数值两个),因此在这些情况下,当符合多个参数值时,将多个模型运行的实例并行化将大大加快速度。
看起来,使用parallel
包的代码可以这样编写,用户只需做最少的代码修改,就可以从使用nlm()
或optim()
转移到这个并行优化例程。也就是说,似乎可以重写这些例程,基本上不需要更改,除了多次调用模型的步骤将并行完成,这在基于梯度的方法中很常见。
理想情况下,像nlmPara()这样的代码应该包含如下代码
fit <- nlm(MyObjFunc, params0);
并且仅需要较小的修改,例如,
fit <- nlmPara(MyObjFunc, params0, ncores=6);
想法/建议?
PS:我已经采取措施来加速这些模型运行,但它们由于各种原因而变得缓慢(例如,我不需要关于加速模型运行的建议!;-) )。
https://stackoverflow.com/questions/15397390
复制相似问题