Как Loop skewing делает цикл параллелизуемым?
Я читаю о методах преобразования циклов, и мне очень трудно понять, как перекос цикла делает параллелизуемым цикл. Вот два цикла, начальный и второй, в чем разница между этими двумя? Два из них зависят от предыдущей итерации для i и j, что делает второй цикл парализуемым? Или почему мы можем обменяться вторым, а не первым? У них обоих есть зависимости от i и j
for(int i =2; i < 5; i++){
for(int j =2; j < 5; j++){
A[i][j] = A[i-1][j] + A[i][j-1];
}
}
for(int i =2; i < 5; i++){
for(int j =2+i; j < 5+i; j++){
A[i][j-i] = A[i-1][j-i] + A[i][j-1-i];
}
}