고밀도 매트릭스에 PETSc가 얼마나 유용합니까?


14

내가 본 곳마다 PETSc 튜토리얼 / 문서 등은 선형 대수학에 유용하며 일반적으로 스파 스 시스템이 도움이 될 것이라고 지정합니다. 고밀도 매트릭스는 어떻습니까? 조밀 한 대한 해결에 대해 걱정하고 있습니다.Ax=bA

Fortran에서 CG 및 QMR에 대한 자체 코드를 작성했습니다. 기본적인 구성은 의사 코드를 분리하고 가능한 한 약간의 자체 조정으로 BLAS 루틴을 추가하는 것입니다 ( ddot, dnrmdgemv). 이것은 PETSc와 어떻게 비교됩니까?

가장 좋은 대답은 내가 직접 시도해 보는 것이지만 시간과 다른 이유로 인해 불가능하다는 것을 알고 있습니다.

도움을 주시면 감사하겠습니다.

답변:


7

구조가있는 밀집된 매트릭스가있는 경우 (예 : 빠른 변환, Schur 보완 등) PETSc가 유용 할 수 있습니다. 이 경우 전체 행렬을 조립하지 않습니다.

조밀 한 시스템의 경우 PETSc는 현재 PLAPACK을 사용하지만 PETSc 기본 형식의 매트릭스 분포는 통신을 최소화하는 데 가장 적합하지 않습니다 (대부분의 작업에서). Jack Poulson, Matt Knepley와 저는 Jack의보다 현대적인 고밀도 선형 대수 라이브러리 인 Elemental 을 사용하기 위해 PETSc의 고밀도 선형 대수를 포팅하는 것에 대해 논의했습니다 . 아직 일어나지 않았지만 시간이 있으면 그렇게 할 것입니다.

모든 기능을 갖춘 고밀도 선형 대수 라이브러리를 원하면 Elemental을 사용하십시오. PETSc보다 이러한 작업에 대해 항상 완전한 API가있을 수 있습니다. 스파 스 또는 어셈블되지 않은 시스템과 상호 작용해야하는 경우 PETSc를 사용하여 고밀도 부품에 Elemental을 사용해야하는 것을 추출하는 것이 좋습니다 (또는 PETSc 인터페이스를 Elemental에 작성하는 데 도움이 됨).


공유 메모리 시스템에서 작업하고 있다면 어떻게 대답 하시겠습니까?
Inquest

1
여러 MPI 프로세스 또는 여러 pthread를 사용할 수 있습니다. 분산 메모리를 쓸 때 생각하는 메모리 위치가 최고의 스레드 구현을 제외한 모든 성능에 비해 성능을 향상 시키기 때문에 공유 메모리 에서만 작동 하는 병렬 소프트웨어를 작성하는 데는 아무런 의미가 없습니다 . 밀도가 높은 선형 대수를 위해 내부적으로 스레드를 사용하는 "직렬"API 만 원하는 경우 스레드 BLAS를 사용할 수 있습니다.
Jed Brown

코드가 Xeon 12 코어 워크 스테이션에서 작동하기를 원합니다 (현재 클러스터는 보이지 않습니다). (스레드) BLAS에 Intel MKL을 사용하고 있습니다. 그래도 PETSc를 사용해 보시겠습니까?
Inquest

BLAS 만 있으면 행복하고, 이미 코드를 작성 했으므로 사용하십시오. 유연성과 분산 메모리를 사용할 수있는 기회를 원한다면 PETSc를 원할 것입니다.
Jed Brown

관점에서 유연성? 분산 메모리?
Inquest

5

영형()영형(2)

공유 메모리 시스템을 사용하고 있다고 언급 했으므로 libFLAME 및 / 또는 PLASMA를 권장 했지만 레벨 1 및 레벨 2 작업에서 벤더 스레드 BLAS보다 훨씬 빠르다고 생각하지 않습니다.

Jed는 Elemental을 추천 했지만, 나는 레벨 1과 레벨 2 연산이 병렬 밀집 선형 대수 라이브러리의 주요 초점이 아니라는 것을 다시 강조 할 것입니다. 나는 정직하게 그러한 루틴을 벤치마킹 한 적이 없습니다.


따라서 내가 얻는 것부터 모든 후속 병렬 밀도 선형 대수 라이브러리는 고유 벡터 계산, BLAS 대신 시스템 솔루션과 같은 연산을 최적화하려고 시도합니다. 또한 Elemental은 정말 인상적입니다. 내가 할 수있을 때 나는 확실히 그것을 달릴 것이다.
Inquest

일반적으로 레벨 3 BLAS를 최적화합니다. 그 이유는 라이브러리를 사용하는 대부분의 사람들이 일반적으로 레벨 3 BLAS에 맵핑 될 수있는 큰 계산을 수행하기 때문입니다.
Jack Poulson

BLAS 1/2가 더 나아질 수 없기 때문입니까? (표면적 특성 때문에?) O (N ^ 2) 데이터와 O (N ^ 2) 계산?
Inquest

BLAS 1과 2는 일반적으로 계산에서 하위 순서이기 때문입니다. 고성능 고밀도 선형 대수학의 전체 '게임'은 모든 작업에서 올바른 방식으로 눈을 가늘게 뜨고 최대한 많은 작업을 위해 xGEMM 및 친구에게 전화를 걸 수 있습니다.
Jack Poulson

또한, 그들이 메모와 거의 같은 양의 플롭을 수행한다는 사실은 가능한 한 많이 피하는 이유입니다.
Jack Poulson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.