我需要进行一些 FEM 计算,我想知道并行化是否是一个好主意。问题是我的模型不是特别大,所以在我的笔记本电脑上解决一个问题需要几秒钟。但是我需要进行优化(有很多不同的几何参数要测试),所以我需要多次运行求解器来处理略有不同的几何模型。据我所知,大多数可用的免费软件(Elmer、Fenics、OpenFOAM 等)只有在将域划分为子域之后才能启用并行计算。以这种方式,为单独的子域组装矩阵和求解方程组是单独处理器/内核的任务。我怀疑现阶段的并行化是否会补偿开销。
问题1:我的想法正确吗?
因为最终会有很多计算(不同的参数,不同的频率),我认为某种并行化毕竟是有益的。我正在考虑在其他语言中嵌入 FE 代码,以便在更高级别上为单独的任务进行并行拆分。
问题 2:这个工作流程是否正确?有没有更好的方法?
问题 3:如果没有更好的方法,那么做这些事情的首选语言是什么?Python?C?还有什么?我正在考虑将 Elmer 用于 FE 的东西,但我还没有决定。
我主要在 Octave/Matlab 中编程,之前从未编写过并行程序,所以我在这个领域没有足够的经验。不幸的是,我没有足够的时间自己做实验,所以我非常感谢您的提示。