다중 GPU 적응형 분기한정법으로 흐름공장 스케줄링 최적화
초록
본 논문은 순열 기반 조합 최적화 문제인 흐름공장 스케줄링(FSP)을 해결하기 위해, 하위 문제의 하한값 계산을 GPU 풀에서 병렬로 수행하는 적응형 분기한정(B&B) 알고리즘을 설계하였다. 실행 중에 하위 문제 풀 크기를 자동으로 조정하는 휴리스틱을 도입하고, 두 대의 Tesla T10 GPU를 동시에 활용하는 다중‑GPU 프레임워크를 구현하였다. 실험 결과, 대규모 베치마크 인스턴스에서 CPU 대비 최대 105배의 가속을 달성하였다.
상세 분석
이 연구는 전통적인 분기한정(B&B) 알고리즘이 갖는 계산량 폭증 문제를 GPU의 대규모 데이터 병렬성을 이용해 완화하고자 한다. 핵심 아이디어는 “하한값 평가” 단계, 즉 각 서브트리의 하한을 계산하는 연산을 수천 개의 스레드가 동시에 수행하도록 풀(pool) 단위로 배치하는 것이다. 기존 연구에서는 풀 크기를 고정하거나 경험적으로 설정했지만, 본 논문은 문제 인스턴스의 특성(작업 수, 기계 수, 현재 탐색 깊이 등)에 따라 최적 풀 크기가 크게 변한다는 점을 발견하고, 런타임에 동적으로 조정하는 휴리스틱을 제안한다. 구체적으로, 현재 GPU의 SM(Streaming Multiprocessor) 활용률, 메모리 대역폭 사용량, 그리고 하한값 계산에 소요되는 평균 사이클을 모니터링하여, 일정 주기마다 풀 크기를 확대·축소한다.
다중 GPU 활용 측면에서는, 두 개의 Tesla T10을 PCI‑Express 버스에 연결하고, 각 GPU에 독립적인 작업 큐를 할당한다. 작업 분배는 라운드‑로빈 방식과 작업량 예측 모델을 결합해, 어느 한쪽 GPU가 과부하되지 않도록 부하 균형을 유지한다. 또한, GPU 간 데이터 전송 오버헤드를 최소화하기 위해, 하위 문제 구조체를 압축하고, 필요 시 호스트 메모리에서 직접 복사하는 대신 P2P(Peer‑to‑Peer) 메모리 접근을 활용한다.
알고리즘의 정확성을 보장하기 위해, 모든 서브트리의 하한값이 정확히 계산되도록 GPU 커널 내부에서 64비트 정밀 연산을 사용하고, 분기 기준인 최적 상한값(Global Upper Bound)은 원자적 연산을 통해 실시간으로 업데이트한다. 이 과정에서 발생할 수 있는 경쟁 조건을 방지하기 위해, CUDA의 동기화 프리미티브와 스트림을 적절히 배치하였다.
실험에서는 표준 FSP 베치마크(예: Taillard 인스턴스)를 사용해, 문제 규모가 20×20에서 200×20까지 다양하게 테스트하였다. 결과는 풀 크기가 작을 때는 GPU 활용도가 낮아 속도 향상이 제한적이지만, 적응형 풀 조정이 적용되면 평균 30배, 최악의 경우 105배까지 가속이 가능함을 보여준다. 특히, 대규모 인스턴스에서는 두 GPU를 동시에 활용함으로써 단일 GPU 대비 1.8배~2배의 추가 이득을 얻었다.
한계점으로는, 현재 구현이 두 GPU에 최적화돼 있어 4개 이상으로 확장할 경우 통신 오버헤드가 급증할 가능성이 있다. 또한, 하한값 계산이 복잡한 다른 조합 최적화 문제(예: TSP, VRP)에는 별도의 커널 설계가 필요하다. 향후 연구에서는 자동화된 커널 튜닝, 다중 노드 클러스터와의 연계, 그리고 비순열형 문제에 대한 일반화 방안을 모색할 예정이다.
댓글 및 학술 토론
Loading comments...
의견 남기기