gpt4 book ai didi

c - 数组中每个元素的 OpenMP 缩减

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:50 29 4
gpt4 key购买 nike

学习openMP

    // array b

#pragma omp parallel for // reduction(&&: b[i])?
for (i=2; i<=N; i++)
{
// create local array for each thread
int *localb;
localb = (int*) malloc(N*sizeof(int));
memcpy(localb, b, N*sizeof(localb));

#pragma omp for private(j)
for (j=i+1; j<=N; j++)
{
if (j%i == 0)
localb[j] = 0;
}

是否可以使用 reduction(&&: b[i]) 减少全局数组 b 中的每个元素,以便 b[i] = localb[j] && b[i]?所有数据不是0就是1;如果 j 可以被 i 整除则为 0,否则为 1。

最佳答案

是的,自 OpenMP 4.5 以来,标准直接支持对数组进行归约,只需通过 reduction(&&: b)

如果您的实现尚不支持,请参阅 older answers about that .

关于c - 数组中每个元素的 OpenMP 缩减,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43440364/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com