使用不同的初始猜测并行化 openmdao 优化

parallelize openmdao optimization with different initial guesses

为了找到更好的最小值,我目前创建 运行 多个具有不同初始猜测的 openmdao 问题实例,然后 select 具有最佳性能的解决方案。为了使这个过程更快,我目前使用 Python 的多处理模块并在并行子进程中解决每个 openmdao 问题。

然而,随着我的问题变得更加复杂,我也想并行化优化过程(通过使用 ParallelGroup and/or 分布式组件),我不确定 mpi 是否会与 Python 以奇怪的方式进行多重处理。是否有任何 openmdao 功能可以同时处理解决单个问题和多个问题实例的并行性?

您可以 运行 通过拆分 comm 并将子 comm 传递给 Problem 构造函数,在 MPI 下(没有子进程)OpenMDAO 问题的多个实例。请在此处查看基本示例:

https://github.com/OpenMDAO/OpenMDAO/blob/master/mpitest/test_mpi.py#L207-237

您的问题可以有 ParallelGroup(s),只要您给它足够大的通信就可以了。