NLOPTR中的多线程(NLOPT的R包接口)

NLOPTR中的多线程(NLOPT的R包接口),r,multithreading,nlopt,R,Multithreading,Nlopt,我试图通过R接口运行一组相当大的非线性优化。(是的,它一定是R——其他语言不起作用)我一直在代码中低声下气,我承认我不知道NLOPT是否支持多线程操作,如果支持,它是如何被引入的 是吗?R不支持多线程操作。这个答案够了吗?嗯,不,不够。首先,尽管R parse eval循环包含一个GKL,垃圾收集器本质上是单线程的,但是有大量代码使用OpenML或简单的分叉来创建多线程支持的假象。不过,除此之外,还有像xgboost这样的包,它们直接在引擎盖下使用Posix线程,或者像Matrix包一样在引擎盖

我试图通过R接口运行一组相当大的非线性优化。(是的,它一定是R——其他语言不起作用)我一直在代码中低声下气,我承认我不知道NLOPT是否支持多线程操作,如果支持,它是如何被引入的


是吗?

R不支持多线程操作。这个答案够了吗?嗯,不,不够。首先,尽管R parse eval循环包含一个GKL,垃圾收集器本质上是单线程的,但是有大量代码使用OpenML或简单的分叉来创建多线程支持的假象。不过,除此之外,还有像xgboost这样的包,它们直接在引擎盖下使用Posix线程,或者像Matrix包一样在引擎盖下使用OpenBLAS。我想问的是nloptr和/或nlopt是否属于这两种形式。对于真正大的稀疏NLP,像Ipopt这样的解算器(带有R接口ipoptr)可能比nlopt/nloptr中提供的解算器更合适。Ipopt可以配置为使用并行线性代数库,如Pardiso/MKL(大部分时间都花在这些部分上)。@ErwinKalvelagen,这看起来很完美。我的问题是一个具有线性等式和不等式约束的纯二次规划问题,具有非常稀疏的Hessian矩阵和平凡的凸约束,因此内点技术可以满足我的需要,特别是因为ipopt似乎支持稀疏矩阵。