Skip to main content
QUICK REVIEW

[논문 리뷰] A parallel framework for reverse search using mts

David Avis, Charles Jordan|arXiv (Cornell University)|2016. 10. 25.
Algorithms and Data Compression참고 문헌 5인용 수 6
한 줄 요약

이 논문은 기존 순차적 코드를 최소한의 수정으로 병렬화할 수 있도록 해주는 일반적인 C 프레임워크 mts를 제시한다. MPI를 사용하여 192개의 코어에서 근사 선형 속도 향상을 달성하며, 트리 탐색 작업을 워커들 간에 분산하고, 하위 문제에 대한 동적 예산 배정을 하며, 적응형 작업 스케줄링과 메시지 추적을 통해 효율적인 로드 밸런싱을 수행한다.

ABSTRACT

We describe mts, which is a generic framework for parallelizing certain types of tree search programs, that (a) provides a single common wrapper containing all of the parallelization, and (b) minimizes the changes needed to the existing single processor legacy code. The mts code was derived from ideas used to develop mplrs, a parallelization of the reverse search vertex enumeration code lrs. The tree search properties required for the use of mts are satisfied by any reverse search algorithm as well as other tree search methods such as backtracking and branch and bound. mts is programmed in C, uses the MPI parallel environment, and can be run on a network of computers. As examples we parallelize two simple existing reverse search codes: generating topological orderings and generating spanning trees of a graph. We give computational results comparing the parallel codes with state of the art sequential codes for the same problems.

연구 동기 및 목표

  • 기존 순차적 트리 탐색 코드, 특히 역방향 탐색, 백트래킹, 분할정복 기반 탐색에 사용되는 코드의 병렬화 과제를 해결하기 위해.
  • 깊이 중첩된, 잘 테스트된 순차적 코드를 수정하는 복잡성과 위험을 줄이기 위해 재사용 가능하고 일반적인 병렬화 래퍼를 제공하기 위해.
  • 핵심 순회 논리에 변경 없이 분산 클러스터에서 고성능 병렬 실행을 가능하게 하기 위해.
  • 서브문제 크기가 크게 달라지고 사전에 알려지지 않은 상황에서 분산 트리 탐색에서 효율적인 로드 밸런싱과 동적 작업 스케줄링을 지원하기 위해 적응형 예산 설정과 메시지 추적 메커니즘을 도입하기 위해.

제안 방법

  • mts는 최소한의 인터페이스를 사용하여 기존 순차적 역방향 탐색 코드를 래핑하며, 로컬 탐색 함수 f와 인접성 오라클 Adj의 정의만 필요로 한다.
  • 프레임워크는 MPI를 사용하여 분산 실행을 구현하며, 마스터 프로세스가 작업 목록을 관리하고 하위 문제를 워커 프로세스에 배포한다.
  • 각 워커는 깊이 우선 탐색을 통해 부분 트리를 탐색하며, -scale 및 -maxnodes 매개변수로 제어되는 동적 예산 전략을 사용하여 로드를 균형 잡는다.
  • 워커들은 bts() 함수를 통해 미탐색 노드 수를 마스터에 보고하여 마스터가 진행 상황을 추적하고 작업 분포를 조정할 수 있도록 한다.
  • 시스템은 워커 활동과 작업 목록 크기의 히스토그램을 유지하며, 성능 최적화를 위한 매개변수 조정을 안내하기 위해 시각화 스크립트(plotL.gp)를 제공한다.
  • bts() 출력에서 유도된 하위문제 크기의 빈도 파일이 생성되며, 최적의 예산 설정을 안내하기 위해 별도의 스크립트(plotD.gp)를 사용하여 작업 크기 분포를 시각화한다.

실험 결과

연구 질문

  • RQ1핵심 논리를 수정하지 않고도 다양한 역방향 탐색 알고리즘을 병렬화할 수 있는 일반적이고 최소한의 인터페이스를 가진 프레임워크를 설계할 수 있는가?
  • RQ2서브문제 크기가 크게 달라지고 사전에 알려지지 않은 상황에서 분산 트리 탐색에서 어떻게 동적 로드 밸런싱을 달성할 수 있는가?
  • RQ3다양한 입력 유형과 클러스터 구성에서 최적의 성능을 내는 데 필요한 매개변수 설정(-scale, -maxnodes 등)은 무엇인가?
  • RQ4동일한 프레임워크가 최소한의 튜닝으로 다양한 역방향 탐색 문제에서 근사 선형 속도 향상을 달성할 수 있는 정도는 어느 정도인가?
  • RQ5유사한 성능 향상을 얻을 수 있도록 프레임워크를 분할정복 기반 탐색이나 SAT 해결 등 다른 트리 탐색 패러다임으로 확장할 수 있는가?

주요 결과

  • mts는 두 가지 역방향 탐색 문제인 위상 정렬과 스패닝 트리 생성에 대해 192코어 클러스터에서 거의 선형 속도 향상을 달성했다.
  • 기본 매개변수를 사용할 경우, 마스터가 모든 워커를 바쁘게 유지하지 못하는 히스토그램이 생성되어 작은 작업 예산으로 인한 자원 활용도 저하를 보였다.
  • -maxnodes를 1,000,000으로 증가시켰더니 작업 목록이 너무 빨리 비어나는 바람에 과도한 유휴 시간이 발생하여, 너무 큰 예산 설정이 로드 밸런싱 효율을 떨어뜨린다는 점을 확인했다.
  • -scale 200과 -maxnodes 10,000으로 튜닝한 결과, 총 작업 수가 50% 이상 감소했고, 기본 설정 대비 약 5% 향상된 성능을 기록했다.
  • 빈도 파일에서 유도된 하위문제 크기 분포는 많은 작업이 작은 부분 트리에 해당함을 보여주어, 효율성 향상을 위해 프리닝 전략을 도입할 수 있음을 시사했다.
  • 프레임워크가 성능 히스토그램과 하위문제 크기 플롯을 생성할 수 있었기에 매개변수 튜닝이 효과적으로 이뤄졌으며, 실제 환경에서의 실용성도 입증되었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.