메뉴 건너뛰기

OEQELAB, Seoul National University

NCRCAPAS, Seoul National University

'계산적' 재현성에 대해

2007.05.21 04:27 조회 수 : 13150 추천:330

최근 매트랩을 사용해
복소수 행렬의 고유치, 고유벡터 계산을
많이 하고 있는데 이러한 고유벡터의 수치가
어떤 매트랩 버전을 사용하느냐, 어떤 CPU, 인텔이냐
AMD냐 듀얼이나 모도냐 에 따라 달라지게 됩니다.

사실 이러한 계산결과의 기계의존성은 아주 오래전부터
저를 괴롭게하는 문제였고 이런 결함때문에 지옥같은 경험도
몇번 한 적이 있었습니다. 예전에 읽은 미국수학회 책자에서는
한 수론연구자가 인텔를 장착한 자기 개인 컴퓨터로 계산적인
연구를 하고 있는데 자꾸만 이론과 맞지 않는 엉뚱한 수치가
소수점 몇십번째 자리에서 발생하는데 이때문에 엄청난 손실을
입었다고 인텔을 상대로 손해배상을 요구한적이 있었다고 합니다.

저같은 경우도 AMD나 인텔을 상대로 그렇게 소송까지 불사하고픈
상황들이 한두번이 아니었죠. 지금도 AMD로 구성해놓은 클러스터마다
같은 계산을 하더라도 다른 수치적 결과를 내고 있습니다. 이는 적당히
소프트웨어적으로 처리해서 사용하고 있지만, 문제에 따라 정밀한 계산,
기계에 의존하지 않는 재현성을 요구하는 문제들이 있습니다. 한 예가
유전알고리즘을 병렬컴을 사용해 구현할때의 문제인데 유전알고리즘과 같이 같은 함수를 입력파라미터만 달리 하여 여러 다른 CPU에서 돌려
그 결과를 비교하는 경우 CPU마다 다른 계산치를 내어주는 문제는 가히
지옥과 같은 디버깅을 경험하게 해 줍니다. 그러니 연습장에서 수학적으로 끝난 문제도 제한된 자원(수표현의 정밀도, 양자화된 수공간)와 위에 불평하고 있는 계산치의 기계의존성이라는 불확정때문에 순전히 알고리즘적 장치들을 고안해야 합니다.

이러한 문제는 이미 많이 경험했기 때문에 컴퓨터를 여러대 사용해서 일을 할때는 언제나 염두에 두고 조심하지만 최근에는 매트랩 버전에 따라 계산치가 달리 나오는 사례도 경험을 했습니다.  푸리에모달 방법으로 전자장 문제를 풀때 일반복소행렬의 고유치 문제를 매트랩으로 풀게 되는데 이때 버전마다 달리 내놓는 사소한 차이가 전자장 경계조건에서는 큰 차이를 야기시키며 연속이어야 할 필드 분포를 불연속적으로 만드는 사례가 발견되었습니다. 이에 대한 해결책으로는 간단히 이상하다고 생각된 매트랩 버전을 싹 지우고 필드가 연속으로 잘 나오는 좀 버전이 높은 매트랩을 다시 깐 것인데,

하여간, 계산적 일을 할때는 가뜩이나 수식이나 물리도 골치아픈데 위에서 말한 계산치의 기계의존성이나 수학라이브러리 의존성에 의한 오차문제등이 일을 더 어렵게 만드는 문제가 있습니다.

컴퓨터 공학쪽에서 일하는 사람들은 수치계산의 기계의존성을 해결해 계산적 재현성을 확보하는 일에 힘써주었으면 좋겠습니다. 그렇게 되면 물리적 방정식을 푸는 사람들의 고충이 절반으로 줄어들 것입니다.    
번호 제목 글쓴이 날짜 조회 수
30 광통신사 자격시험 장표 2007.07.10 19188
29 안전한 생활 file 2007.07.04 12411
28 all optical (plasmonic) logic gates 2007.06.16 14088
27 [re] 홀로그램 이미지와 정보량 관계 2007.06.02 12445
26 홀로그램 이미지와 정보량 관계 2007.05.31 14118
25 [re] RCWA vs FDTD 2007.05.31 12421
24 RCWA vs FDTD 2007.05.28 20198
» '계산적' 재현성에 대해 2007.05.21 13150
22 SPR과 superconduction 2007.05.13 12382
21 스핀이라는 개념 2007.05.13 14105
위로