C++ 用于位图着色的多线程for循环

C++ 用于位图着色的多线程for循环,c++,multithreading,C++,Multithreading,我在程序中有一个循环给位图着色。看起来是这样的: for (int i = 0; i<1920; i++){ for (int j = 0; j < 1080; j++){ compute_pixel(i, j); } } for(int i=0;i这可能是库的一个很好的候选者。下面是一个使用它来并行for循环的示例: #pragma omp parallel #pragma omp for for (i=0; i<N; i++) { //

我在程序中有一个循环给位图着色。看起来是这样的:

for (int i = 0; i<1920; i++){
    for (int j = 0; j < 1080; j++){
        compute_pixel(i, j);
    }
}

for(int i=0;i这可能是库的一个很好的候选者。下面是一个使用它来并行for循环的示例:

#pragma omp parallel
#pragma omp for
for (i=0; i<N; i++) {
  // do something with i
}
#pragma omp并行
#pragma omp for

对于(i=0;我如何使用GPU进行“每像素工作”?GPU在计算工作方面比CPU更令人尴尬地并行化。@user2864740我想那会更好。我没有太多的经验,但请确保循环正确,以便处理相邻像素以充分利用缓存。不要继续ess第0行像素0,然后第1行像素0,可能距离1920x3字节。而是先处理第0行像素0,然后再处理第0行像素1,它就在隔壁,并且已经在缓存中。@koman900但现在这是一个不同的问题-因此我投票认为“太宽”。并发的“好”使用取决于特定的问题域/要求或者这只是“学习如何使用线程和基本同步原语”中的一项任务?@user2864740好吧,我不会说这太宽泛,因为我的问题的内容非常具体,这就是我所期望的答案。GPU确实是一个不同的问题,这就是为什么我会很好地利用关于它的评论,但我不这么认为期待答案GPU@koman900这不是很好吗?如果这回答了你的问题,请随意接受。