Your code runs in parallel, but the issue is likely due to multiple threads executing std::cout simultaneously. OpenMP may be spawning multiple copies of main(), or #pragma omp parallel is applied incorrectly elsewhere. Ensure only the master thread prints by using #pragma omp single inside #pragma omp parallel.