Đoạn mã sau có song song với vòng đầu tiên (bên ngoài) hay nó song song với toàn bộ vòng lặp lồng nhau?OpenMP xử lý các vòng lồng nhau như thế nào?
#pragma omp parallel for
for (int i=0;i<N;i++)
{
for (int j=0;j<M;j++)
{
//do task(i,j)//
}
}
Tôi chỉ muốn chắc chắn nếu các mã trên sẽ parallelize toàn bộ lồng nhau cho-vòng (như vậy, một thread nhiệm vụ liên quan trực tiếp (i, j)), hoặc nó chỉ song song quá trình bên ngoài cho vòng lặp (như vậy, nó đảm bảo rằng, đối với mỗi luồng song song với chỉ số vòng lặp i, vòng lặp bên trong của nó sẽ được thực hiện tuần tự trong một chuỗi duy nhất, đó là rất import).
Cảm ơn, điều đó thật tuyệt, tôi chỉ muốn song song các vòng ngoài trong khi đảm bảo các vòng lặp bên trong thực hiện công việc tuần tự. – user0002128