我有以下递归功能(注意:它被剥夺了所有不重要的细节)
int recursion(...) {
int minimum = INFINITY;
for(int i=0; i<C; i++) {
int foo = recursion(...);
if (foo < minimum) {
minimum = foo;
}
}
return minimum;
}
注2:有限,但在此简化示例中没有,所以请忽略它。这个问题的关键是如何正确地解决这个问题。
我正在考虑使用任务,但我不确定,如何正确使用它 - 如何对内部循环进行并列化。
编辑1:递归树不平衡。它正在与动态编程方法一起使用,因此随着时间的推移,许多值将从之前的传递中重复使用。这让我很担心,我认为这将是一个很大的瓶颈。
C大概在20左右。
最好的指标是最快的:)
它将以2x Xeon运行,因此有足够的硬件功能可用。