Как 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];
            }
        }

Ответы на вопрос(1)

Ваш ответ на вопрос