我正在使用 Chapel 编程语言开发调试器。在我的代码中,我需要使用coforall
循环,但不幸的是,我找不到使并行迭代按顺序执行的方法。
这是我的代码的一部分:
coforall i in 1..n by -1 do
{
middle = ( ( _delta[i]._sub.length ) / 2 ) : int;
if( middle != 0 )
{
_delta[2*i ]._sub=_delta[i]._sub[1+middle..];
_delta[2*i-1]._sub=_delta[i]._sub[..middle];
}
...
}
如您所见,我需要以并行和反向顺序执行此循环的迭代。
有什么办法吗?