멀티코어 환경을 위한 최적 탐색 PBNF 기법
초록
본 논문은 공유 메모리 멀티코어 시스템에서 베스트‑퍼스트 탐색을 병렬화하기 위한 새로운 방법인 PBNF(Parallel Best‑First Search)를 제안한다. 상태 공간을 추상화하여 파티션을 만들고, 파티션 간 중복 검사를 최소한의 락으로 수행한다. 필요 시 사전 확장을 허용해 스레드 유휴 시간을 줄이며, 잠재적 라이브락 상황을 시간 논리로 증명한다. A*, Weighted‑A*, Anytime Weighted‑A*에 적용한 실험 결과, 기존 병렬 탐색 기법보다 8코어 환경에서 현저히 빠른 성능을 보였다.
상세 분석
PBNF는 기존 병렬 베스트‑퍼스트 탐색이 직면한 두 가지 핵심 문제, 즉 중복 상태 관리와 스레드 간 경쟁을 혁신적으로 해결한다. 첫 번째로, 상태 공간을 도메인‑특정 추상화 함수를 이용해 여러 파티션으로 나누고, 각 파티션을 독립적인 작업 큐에 매핑한다. 이때 파티션은 추상 상태에 기반하므로 동일한 추상 상태에 속하는 실제 상태들은 동일 파티션에 할당되어, 파티션 내부에서만 중복 검사가 이루어진다. 결과적으로 전역 해시 테이블에 대한 빈번한 락 획득을 피하고, 메모리 일관성 비용을 크게 감소시킨다. 두 번째로, PBNF는 “speculative expansion”이라는 메커니즘을 도입한다. 특정 파티션의 우선순위가 낮아 현재 스레드가 작업을 찾지 못할 경우, 다른 파티션의 높은 비용 노드를 잠시 확장함으로써 스레드가 유휴 상태에 머무는 것을 방지한다. 이는 작업 부하를 동적으로 재분배하는 형태로, 특히 비균등한 탐색 트리에서 효과적이다.
라이브락 방지를 위해 저자들은 “livelock condition”을 형식적으로 정의하고, 시간 논리(Linear Temporal Logic, LTL)를 사용해 PBNF가 언제든지 진행 가능한 상태를 유지함을 증명한다. 구체적으로, 각 파티션은 일정 주기마다 “steal” 요청을 받아들일 수 있으며, 이 과정에서 파티션 간 순환 의존성이 발생하지 않도록 설계되었다. 이러한 설계는 이론적 안전성을 제공함과 동시에 실제 구현에서 복잡한 데드락 회피 로직을 단순화한다.
실험에서는 STRIPS 기반 플래닝, 격자 경로 탐색, 슬라이딩 타일 퍼즐 등 다양한 도메인을 선택해 8코어 머신에서 A*, Weighted‑A*, Anytime Weighted‑A를 각각 PBNF와 기존 병렬 기법(예: Parallel A, PRA*)에 적용하였다. 결과는 PBNF가 평균 2배 이상, 최악의 경우 3배에 달하는 속도 향상을 보였으며, 특히 높은 휴리스틱 정확도를 가진 문제에서 그 차이가 두드러졌다. 또한 메모리 사용량은 기존 방법과 비슷하거나 약간 낮아, 확장성 측면에서도 유리함을 확인했다.
이 논문은 추상화 기반 파티셔닝과 사전 확장 전략을 결합함으로써, 병렬 베스트‑퍼스트 탐색의 핵심 병목을 근본적으로 해소한다는 점에서 학술적·실용적 기여가 크다. 특히, 추상화 함수 설계가 도메인에 따라 유연하게 조정될 수 있다는 점은 PBNF를 다양한 AI 탐색 문제에 적용할 수 있는 기반을 제공한다. 향후 연구에서는 동적 추상화 업데이트, 하이브리드 분산‑공유 메모리 환경 적용, 그리고 GPU와의 협업 모델 탐색이 기대된다.