Matlab中的并行优化:梯度还是循环

Matlab中的并行优化:梯度还是循环,matlab,optimization,parallel-processing,Matlab,Optimization,Parallel Processing,我在Matlab中优化一个相当混乱的似然函数,我需要在不同的初始点运行大约1000次单独的优化算法(fmincon),其中有32个自由参数 不幸的是,我不能同时并行优化算法的1000次运行和有限差分梯度的计算。我必须选一个 有没有人知道,将外环并行化并使每个优化在其自身的核心上运行,或者计算有限差分梯度计算是否更有效 谢谢 如果不了解您的代码和/或硬件,就不可能准确回答这个问题 如果你有超过32个核,那么其中一些核在并行梯度计算期间将无所事事。在这种情况下,并行运行1000个模拟可能会更快 另一

我在Matlab中优化一个相当混乱的似然函数,我需要在不同的初始点运行大约1000次单独的优化算法(fmincon),其中有32个自由参数

不幸的是,我不能同时并行优化算法的1000次运行和有限差分梯度的计算。我必须选一个

有没有人知道,将外环并行化并使每个优化在其自身的核心上运行,或者计算有限差分梯度计算是否更有效


谢谢

如果不了解您的代码和/或硬件,就不可能准确回答这个问题

如果你有超过32个核,那么其中一些核在并行梯度计算期间将无所事事。在这种情况下,并行运行1000个模拟可能会更快


另一方面,并行计算梯度可能会使您的CPU更有效地使用其缓存,因为缓存未命中率会更低。您可以看看或。

谢谢!我有25个内核可以使用。我知道我最终需要做一些测试,但我认为有人比我可能已经知道的更有知识。我将查看这些链接我不知道它是否适用于您的情况,但请检查您是否可以使用
gpuarray
。据我所知,只有当你有一个带有cuda内核的Nvidia GPU时,它才能工作,但它可以给你1000个或更多的内核。不保证它会让你的特定程序更快,但值得一试。谢谢!我去看看。实际上现在正在市场上寻找一种新的视频卡。我会记住这一点。