Qual é a diferença entre atômico e crítico no OpenMP?

Qual é a diferença entre atômico e crítico no OpenMP? eu posso fazer isso #pragma omp atomic g_qCount++; mas não é o mesmo que #pragma omp