[논문 리뷰] Comparative computational results for some vertex and facet enumeration codes
이 논문은 단순한 문제부터 매우 고도로 열거된 문제에 이르기까지 다양한 테스트 문제를 사용하여 볼록 다면체의 병렬 및 순차적 정점 및 면 열거 코드를 비교한다. 병렬화, 특히 MPI 기반의 mplrs 코드를 통해 상당한 성능 향상이 이루어졌음을 입증한다. cp6 문제와 같은 가장 도전적인 문제에서 cddr+ 대비 최대 600배 빠른 성능을 기록하여, 보편적인 하드웨어 클러스터에서도 대규모 열거가 가능하게 한다.
We report some computational results comparing parallel and sequential codes for vertex/facet enumeration problems for convex polyhedra. The problems chosen span the range from simple to highly degenerate polytopes. We tested one code (lrs) based on pivoting and four codes (cddr+, ppl, normaliz, PORTA) based on the double description method. normaliz employs parallelization as do the codes plrs and mplrs which are based on lrs. We tested these codes using various hardware configurations with up to 1200 cores. Major speedups were obtained by parallelization, particularly by the code mplrs which uses MPI and can operate on clusters of machines.
연구 동기 및 목표
- 다양한 종류의 볼록 다면체에서 정점 및 면 열거 코드의 성능을 평가하기 위해.
- 계산적으로 어려운 열거 문제 해결에 병렬화가 미치는 영향을 평가하기 위해.
- 다양한 다면체 유형에 가장 효과적인 알고리즘과 하드웨어 구성 요소를 특정하기 위해.
- 다면체의 열거 정도와 출력 크기에 따라 연구자들이 적절한 도구를 선택하는 데 실용적인 지침을 제공하기 위해.
제안 방법
- 연구는 여섯 가지 코드를 평가한다: lrs(피벗 방법), cddr+, ppl, normaliz, porta(이중 기술 방법), 그리고 병렬 버전인 mplrs와 plrs.
- 테스트 문제로는 순환 다면체, 치환체, 상관 다면체, 그리고 cp6 및 zfw91과 같은 매우 고도로 열거된 사례를 포함한다.
- 단일 머신과 최대 1200코어의 클러스터에서 계산을 수행하였으며, 대규모 테스트에는 Tsubame2 슈퍼컴퓨터를 사용하였다.
- 비어 있는 기반 수와 출력 크기 추정치를 통해 열거의 어려움을 평가하였으며, 결과는 문제의 처리 가능성과 관련이 있음을 시사한다.
- 성능는 초 단위와 코어 수 및 문제 유형에 따른 성능 향상 비율로 측정되었다.
- MPI를 사용한 mplrs 코드는 클러스터를 통해 분산 계산을 가능하게 하여, 거의 선형적 확장성을 보였다.
실험 결과
연구 질문
- RQ1다양한 정도의 열거성을 가진 다면체에서 정점 및 면 열거 알고리즘이 어떻게 성능을 내는가?
- RQ2mplrs와 같은 MPI 기반 구현을 통해 병렬화로 얻을 수 있는 성능 향상 수준은 어느 정도인가?
- RQ3cp6 및 zfw91과 같이 출력 크기가 큰 매우 고도로 열거된 다면체에 대해 가장 효과적인 알고리즘은 무엇인가?
- RQ416~312코어의 소규모 클러스터는 단일 코어 실행 대비 실행 시간을 크게 줄일 수 있는가?
- RQ5lrs 기반의 출력 크기 및 실행 시간 추정치는 문제의 처리 가능성 예측에 얼마나 신뢰할 수 있는가?
주요 결과
- 1200코어에서 mplrs는 cp6 문제에서 cddr+ 대비 600배 빠른 성능을 기록하여, 42분 만에 작업을 완료하였다.
- 가장 어려운 문제(cp6)의 경우, 단일 머신에서 3주가 걸리던 총 실행 시간이 312코어 클러스터에서 16,280초(4.5시간)로 단축되었다.
- Tsubame2 슈퍼컴퓨터에서 mplrs는 거의 선형적 성능 향상을 보였으며, 1200코어로 cp6의 실행 시간을 42분으로 줄였다.
- cp6와 같이 매우 고도로 열거된 문제에서는 lrs 기반 피벗 방법이 유일하게 실행 가능한 접근 방식이었으며, 출력 크기는 작지만 계산량은 매우 높았다.
- cp6 및 bv7와 같이 작은 정수 출력을 가진 문제에서는 normaliz 및 cddr+와 같은 이중 기술 방법이 lrs 기반 접근보다 효율성이 떨어졌다.
- 약 10만 달러에 구축한 1200코어 클러스터를 사용하면 대부분의 연구팀이 슈퍼컴퓨터 수준의 성능에 접근할 수 있다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.