2011-03-31 5 views
1

가우스 제거를 거꾸로 만드는 방법은 무엇입니까? 저는 행렬의 가우시안 제거 반 (행렬 아래에 대각선 아래에 0이 있습니다)으로 가우시안 제거법을 풀어서 역방향 대체를 만들었습니다. 그러나 미래의 MPI 병렬화를 위해 나는 많은 관점을 보지 못합니다. 그래서 전방 및 후방 가우스 제거를 병렬화하는 것이 더 좋을 것이라고 생각합니다. 어떻게 생각해?가우스 제거 정방향 및 역 병렬화?

감사합니다.

+4

*** 선형 시스템을 해결할 경우 LU (QR 또는 Cholesky) 분해를위한 병렬 알고리즘이 있습니다. ScaLAPACK을 PBLAS와 함께 사용하면 MPI 레이어의 상단에서 작동하며 모두 효율적으로 프로그래밍됩니다. 당신은 분명히 여기 바퀴를 재발견하고 싶지 않습니다. 지난 40 년 동안 수치 선형 대수학에 들어가는 엄청난 연구가있었습니다. –

답변

1

어떻게 절제의 첫 번째 단계를 병렬 처리 했습니까?

내 말은, 역 병렬 처리는 기본적으로 동일한 알고리즘이며, 위에서 아래로 끝났습니다. 그렇다면 알고리즘을 다시 사용하지 않는 이유는 무엇입니까? 내 마음에 온

그냥 하나의 알고리즘은 구현하기가 용이해야한다 :

크기의 행렬을 가정 [K X K] A_x_y이 xx 번째 줄에 y'th 요소입니다. 그래서 지금은 그냥이 같은 뒤쪽으로 이동합니다

i = k 
while(i > 1) 
     broadcast A_i_i 
     if(line < i) 
      do Gaussion elimination step 
     i-- 

중요한 부분은 라인의 다른 모든 부분은 이미 제로 I 때문에 만, (당신은 LSE가있는 경우 또는이) 하나 개의 요소를 방송 할 필요가 기본적으로 당신이 각 프로세서에 여러 줄을 나누었다 고 가정했는데, 그것은 나를 위해 가장 합리적인 MPI 데이터로 나뉘어 보인다.

+0

나는 프로세서에 끊어지는 선을 나누는 것에 대한 생각을 가지고 있으며 주석을 주셔서 감사합니다. – Waypoint