Como o Loop inclinado torna o loop paralelamente agradável?

Estou lendo sobre técnicas de transformação de loop e tenho muita dificuldade em entender como o enviesamento de loop torna um loop paralelista. Aqui estão dois loops, o inicial e o segundo, qual é a diferença entre os dois? Os dois dependem da iteração anterior em i e j, o que torna o segundo loop paralelizável? Ou por que podemos fazer o intercâmbio no segundo e não no primeiro? Ambos têm dependências iej

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];
            }
        }

questionAnswers(1)

yourAnswerToTheQuestion