컴퓨터로 역행렬을 구하려고 하는데 행렬의 크기가 너무 큽니다. > 과학기술Q&A

본문 바로가기

컴퓨터로 역행렬을 구하려고 하는데 행렬의 크기가 너무 큽니다.

페이지 정보

돌대가리 작성일2017-03-13 12:34

본문

안녕하세요. 한국과학기술인연합 형님들. 식사는 하셨는지요? 도움을 좀 요청하고자 글을 남깁니다.
저는 반도체분야에서 공부를 하고 있고, 석.박 통합과정에 있는 학생입니다. 최근에 반도체 시뮬레이션을 돌리기 위해 matlab으로 프로그램을 짜고 있습니다. 프로그램에는 행렬연산이 포함되어 있는데 행렬의 크기가 상당해서 시뮬레이션하는데 시간이 오래 걸립니다. 하여 병렬연산을 이용해 시간을 좀 단축 시켜보고자 합니다. 역행렬을 구할때 병렬연산을 통해 시간을 단축시키는 방법을 찾아보고 있는데 제가 무지한 탓에 찾기가 쉽지 않은것 같습니다. 역행렬을 구할때 행렬을 쪼개서 연산하는 방법이 있는것 같은데 혹시 병렬연산으로 행렬연산을 해보신분들이 계시다면 어떤 방법으로 하셨는지 힌트를 좀 주실 수 있겠습니까?

댓글 2

앗살라말리꿈님의 댓글

앗살라말리꿈

행렬 연산시 사용하는 solver에 따라서 병렬화 가능 여부가 달라집니다. 우선 가우스 소거법과 같은 직접해법을 사용하신다면 10,000x10,000도 버거울 수 있습니다. 혹시 직접 행렬 해법을 사용하고 계신다면 우선 반복 해법을 적용하시기를 권장합니다.
 행렬의 대칭/비대칭 또는 희소행렬 여부에 따라서 여러가지 반복해법(AMG, JCG, 등등)이 있으니 병렬화를 시도하기 전에 반복 해법을 적용한다면 single core 대비 20~100배 이상 빠르게 연간 가능하니 참조 바랍니다.

과학기술Q&A

SLIDE UP

모바일에서는 읽기만 가능합니다.
PC 버전 보기
© 2002 - 2015 scieng.net