Calcular o histograma com o OpenMP

Eu quero paralelizar esse código, obtendo o melhor desempenho. "histograma" armazena um número de aparências de uma determinada cor (existem 10 cores diferentes, portanto o tamanho do histograma é 10). "img" é uma matriz que armazena uma determinada informação de imagem. Em cada índice de img é armazenada uma cor (valor int, intervalo 0..9). Este é o código:

for( i=0; i<N1; i++ ){
  for( j=0; j<N2; j++ ){
    histogram[ img[i][j] ]  = histogram[ img[i][j] ] + 1;
  }
}

Eu tentei isso, mas o desempenho é tão ruim (pior que a execução serial):

#pragma omp parallel for schedule(static, N1/nthreads) private(i,j)
for(i=0; i<N1; i++){
  for(j=0; j<N2; j++)
  {
    #pragma omp atomic
    histogram[img[i][j]]++;
  }
}

Alguma sugestão? Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion