并行编程这个代码看起来像它的要求吗?竞争条件和forall声明的帮助

时间:2010-09-02 01:55:21

标签: parallel-processing

继承人的问题..我把我想出的东西放在底部..但我有点困惑......我告诉使用forall声明..但我们还没有学到这一点。因此,我试图教自己一些..这似乎是一个很难找到的主题。编码语言称为pidgin或Peril-L,它表示他们将定义一个名为Peril-L的pidgin编程语言,可用于分析和开发并行算法。我不知道看起来像C ++真的......

使用forall重写迭代求和程序;不要忘记竞争条件? 迭代求和程序:

sum = 0;
for(i=0; i<n; i++)
{
sum+=[i];
}

下面是线程迭代解决方案的哪一部分:

for(i=start; i<end; i++)
{
sum+=x[i];
}

我不知道forall意味着什么...不确定我是否曾使用过forall声明,如果这就是它想要的东西?

我认为它想要类似的东西?

int *x;
mutex m;
int i = 0;

int itersum()
{
forall(index in(0..i-1))
{
mutex_lock(m);
sum+=x[index];
i++;
mutex_unlock(m);
}
return sum;
}

也许我写错了什么?但是甚至会出现使用forall声明的竞争条件吗?我真的不明白forall是如何运作的。上面的forall声明有竞争条件吗?

0 个答案:

没有答案