희소 선형 시스템을 해결하기위한 라이브러리


21

희소 선형 방정식 시스템을 해결하는 여러 가지 라이브러리가 있지만 차이점이 무엇인지 파악하기가 어렵습니다.

내가 알 수있는 한 Trilinos , PETScIntel MKL 세 가지 주요 패키지가 있습니다 . 그들은 모두 희소 행렬 해결을 할 수 있고, 모두 빠르며 (내가 알 수있는 한, 어떤 벤치 마크도 찾을 수 없었습니다) 병렬화가 가능합니다. 내가 찾을 수없는 것은 차이점입니다.

그렇다면 다른 희소 선형 시스템 솔버의 차이점은 무엇입니까?

답변:


29

문제에 대한 목표와 견해가 다른 모든 것이 더 많습니다. 그것은 실제로 당신이 해결하려고하는 것에 달려 있습니다. 다음은 불완전한 패키지 목록입니다. 더 자세한 내용을 자유롭게 추가하십시오.

대규모 분산 반복 솔버 패키지

  • PETSc — Krylov subspace 방법과 선형 솔버 간의 쉬운 전환에 중점을 둔 패키지입니다. 이 카테고리의 다른 제품보다 훨씬 가볍습니다.
  • Trilinos — FEM 응용 제품을위한 다양한 패키지
  • Hypre — 위의 두 가지와 비슷합니다. PETSc에서 다운로드 할 수있는 매우 우수한 멀티 그리드 솔버로 인해 주목할 만합니다.

병렬 다이렉트 솔버 패키지

시리얼 다이렉트 솔버 패키지

대화식 환경 (초소형 시스템에 적합)

다른 목록


9

MKL은 분산 병렬 처리 (예 : MPI)를 수행하지 않으며 스파 스 솔버에 대한 지원은 근본적으로 다른 두 레벨에서는 그렇지 않습니다. 현재 의미있는 벤치 마크는 SpMV (Sparse Matrix-Vector product)의 확장 가능한 성능입니다. 이것은 메모리 대역폭이 제한되어 있으므로 나사 만 조일 수 있습니다. PETSc와 Trilinos는 이것에 잘 작동합니다.

실제 차이점은 어떤 프로그래밍 환경이 생산성을 향상 시키는가입니다.


C 또는 C ++로 작업하고 싶습니까?
Andrew Spott

그것보다 조금 더 개방적입니다. 대부분의 수치 컴퓨팅 언어에서 Trilinos 또는 PETSc를 호출 할 수 있습니다 (C, Python, C ++ 및 Fortran은 모두 실행 가능한 옵션이며 어느 정도는 MATLAB입니다).
Aron Ahmadia

PETSc는 F90 배열을 올바르게 처리합니다. :), 전체 객체 모델을 Matlab에서 사용할 수 있습니다.
매트 Knepley

1
PETSc와 Trilinos는 또한 어느 정도 다른 지역 사회에 참여합니다. 아마도 먼저 해결하려는 문제의 종류를 고려해야하고, 비슷한 툴킷에서 유사한 문제에 대한 기존 예제가 이미 있습니까?
Aron Ahmadia

1
다른 프로젝트의 예를보고 결정하는 것이 좋습니다. 어떤 시스템이 문제에 더 적합한 지에 대한 구체적인 예가 있다면 더 대답 할 수있는 질문이 될 것입니다. 그렇지 않으면, 우리는 나의 졸업 경력을 통해 수행 된 종교 전쟁 만 시작할 것입니다.
aterrel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.