相关疑难解决方法(0)

OpenMP 多个线程更新同一数组

我的程序中有以下代码,我想使用 OpenMP 加速它。

...
for(i=curr_index; i < curr_index + rx_size; i+=2){ 
    int64_t tgt = rcvq[i];
    int64_t src = rcvq[i+1];
    if (!TEST(tgt)) {
        pred[tgt] = src;
        newq[newq_count++] = tgt;
    }
} 
Run Code Online (Sandbox Code Playgroud)

目前,我有一个版本如下:

...
chunk = rx_sz / omp_nthreads;

#pragma omp parallel for num_threads(omp_nthreads)
for (ii = 0; ii < omp_nthreads; ii++) { 
    int start = curr_index + ii * chunk;
    for (index = start; index < start + chunk; index +=2) { 
        int64_t tgt = rcvq[index];
        int64_t src = rcvq[index+1];
        if …
Run Code Online (Sandbox Code Playgroud)

c multithreading openmp race-condition

2
推荐指数
1
解决办法
5276
查看次数

标签 统计

c ×1

multithreading ×1

openmp ×1

race-condition ×1