Matrix Toolkits for JAVA(MTJ) - 강력 추천
사용하기 편하고 dense 또는 sparse matrix, vector 연산에 모두 유용하다.
Sparse matrix에 대하여, "행렬*벡터 곱"는 빠르다.
<단점>
Sparse matrix에 대하여, "행렬*행렬 곱"은 속도가 매우 느리다.
소스를 직접 보면 알겠지만, "행렬*행렬 곱"의 소스는 Dense Matrix 기준으로 연산하기 때문이다.
따라서 FlexCompRowMatrix 와 SparseVector 를 이용하여 직접 구현해 줘야 한다.
<기타>
nonezero가 십만 이하의 작은 데이타의 경우 GPU 연산(CUDA)과 속도가 비슷하지만,
큰 데이타의 경우는 GPU연산이 훨씬 빠르다.
아무래도 부동소수점 연산 때문에 CPU보다 GPU가 나은 것 같고, JAVA보다 C계열이 빠른 듯 하다..
'Java' 카테고리의 다른 글
[박혜웅] JAVA Runtime Error 별 대처 방법 (0) | 2010.09.13 |
---|---|
[박혜웅] 대용량 데이터 처리를 위한 JAVA Tunning(튜닝) (0) | 2010.08.17 |
[박혜웅] java.lang.OutOfMemoryError in Eclipse (0) | 2009.10.13 |
[박혜웅] 자바소스파일과 데이타파일이 UTF-8 이고, OS인코딩은 다를 때, 이클립스 세팅 (0) | 2009.10.01 |
[강한구] Apache Commons Packages (0) | 2009.05.29 |