并行运行时,ParallelGroup()
即使我可以连接到子组的参数,我也无法连接未知子组。导致问题的代码(为清楚起见更改了名称)如下。这段代码在一组更大的结构中,但它是唯一使用 MPI 的地方:
for i in range(0, nTasks):
self.connect('comp_a.output%i' % i, 'parallel_group.sub_group%i.param_a' % i)
self.connect('input_param%i' % i, 'parallel_group.sub_group%i.param_b' % i)
self.connect('parallel_group.sub_group%i.output' % i, 'comp_b.input%i' % i)
前两个连接似乎工作正常,但最后一个抛出错误:
NameError: Source 'parallel_group.sub_group0.output' cannot be connected to target 'comb_b.input0': 'parallel_group.sub_group0.output' does not exist.
此外,如果我注释掉有问题的行,那么循环中的第一行对于第二个进程将失败,并显示相同的错误消息:
NameError: Source 'comp_a.output1' cannot be connected to target 'parallel_group.sub_group1.param_a': 'parallel_group.sub_group1.param_a' does not exist.
所有连接都适用于我们的串行版本的代码。串行版本是相同的,只是 sub_groups 直接添加到此代码所在的组中,而不是包装在parallel_group
.
我试图查看教程和示例,但无法弄清楚可能出了什么问题。我真的很感激任何关于检查什么或可能有什么问题的建议。很抱歉没有发布完整的代码示例。