Matlab과 Scilab의 성능에 관하여

[목차(도우미)]

Matlab을 본격적으로 써본 사람도 아니고 Scilab을 본격적으로 써본 것은 아니다. Matlab으로 복소수 계산을 통하여 굴절율을 계산해본 적이 있었는데 그것이 Matlab을 처음쓴 경험이었다. 당연한 이야기지만 처음 쓰는 사람으로서 능숙하게 쓸 수 없는 것은 당연한 일이고 전기공학 출신의 직원의 도움을 받아서 계산하고자 했지만 결론적으로는 매트랩이 복소수 계산에 적합하지 않았음을 깨닫고 결국에는 볼랜드 C/C++를 써서 계산하였다. 당시 성능으로 본다면 수작업으로 하루 걸릴 계산을 매트랩으로는 2시간, 직접 만든 C프로그램으로는 버튼 클릭과 동시에 계산이 되었다. 성능적 시간이 차이가 나는 것은 계산 자체가 복잡하다는 것이 문제점인데 수작업으로 계산하려면 그래픽의 도움을 받아서 컴퍼스로 작도해가면서 계산해야 하는 것이었다. 매트랩을 쓰면 좀더 간단히 되지만, 역시 매트릭스 계산으로 과정을 풀어야 하는 것이 단순하지 않았다. 물론 매트랩에 능숙하지 않다는 것도 시간에 작용한다.

아무튼 매트랩은 대단한 소프트웨어였다. 자유자재로 쓰지 못한다는 것이 문제였지 그 패키지는 대단한 위력이다.

최근 사이랩(Scilab)이라는 오픈 소스를 써야하는 일이 생겼다. 그런데 이 사이랩은 자바(Java)로 구현된 소프트웨어인듯하다. 매트랩이 C언어도 작성된 것에 비하여 연산 수행 속도가 현저히 떨어진다. 간단한 반복문을 수행함에 있어서 대략 60배의 느린 속도로 결과가 계산된다.(매트랩에서 5초 걸리는 계산을 사이랩은 5분이 걸린다) 오픈소스이고 무료로 이용할 수 있다는 점을 제외하고는 상용 소프트웨어를 대치할 만한 성능은 아직 모자란 것으로 보인다.

자바를 폄하하고자 할 마음은 없지만 각 프로그램 언어가 잘하는 강점 분야가 있기 마련인데, 자바로 수치해석을 구현했다는 것이 성능 저하의 주범으로 보인다. 사이랩은 아직 국내에 알려진지도 얼마 안되었고, 역사도 대략 5년 정도이며 상용 소프트웨어와 성능을 비교할 만한 단계에는 이르지 못한 것 같다. 그래도 오픈소스라는 점에서 실낱같은 기대의 등불은 꺼지지 않았다. 

by 금메달.아빠 on 2010. 12. 27. 01:04