GPU 가속 브랜치앤바운드로 흐름공장 스케줄링 최적화

GPU 가속 브랜치앤바운드로 흐름공장 스케줄링 최적화
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 흐름공장 스케줄링 문제(FSP)를 해결하기 위해 브랜치앤바운드(B&B) 알고리즘의 바운딩 단계에 GPU 가속을 적용한 방법을 제안한다. 대용량 중간 데이터와 제한된 GPU 메모리 사이의 효율적인 데이터 접근 관리 기법을 설계하고, Nvidia Tesla C2050을 이용한 실험에서 기존 CPU 단일·멀티스레드 구현 대비 최대 100배의 속도 향상을 입증하였다.

상세 분석

본 연구는 조합 최적화 문제 중에서도 특히 NP‑hard에 속하는 흐름공장 스케줄링 문제(FSP)를 대상으로, 전통적인 브랜치앤바운드(B&B) 알고리즘의 핵심 병목인 바운딩 연산을 GPU로 이관함으로써 연산 효율을 극대화한다. 먼저, B&B 알고리즘은 탐색 트리의 각 노드에서 하한값을 계산하는 바운딩 단계가 전체 실행 시간의 70~80%를 차지한다는 점을 실증적으로 확인하였다. 이러한 특성을 고려해, 저자들은 바운딩 연산을 대규모 행렬 연산과 유사한 형태로 재구성하고, CUDA 기반의 커널을 설계하였다.

GPU 메모리 제약을 극복하기 위해 두 단계의 데이터 관리 전략을 도입한다. 첫 번째는 ‘스트리밍’ 기법으로, 전체 인스턴스 데이터를 작은 청크 단위로 분할해 순차적으로 GPU 전역 메모리로 전송하고, 동시에 이전 청크의 연산을 진행한다. 두 번째는 ‘공유 메모리 캐시 최적화’로, 바운딩에 자주 사용되는 비용 행렬과 부분 순열 정보를 블록 수준의 공유 메모리에 복사해 메모리 접근 지연을 최소화한다. 이러한 접근은 메모리 대역폭 한계를 완화하고, 연산 유닛의 활용률을 95% 이상으로 끌어올렸다.

알고리즘 구현 측면에서는, 기존 CPU 기반 B&B에서 사용하던 우선순위 큐와 노드 확장 로직을 호스트와 디바이스 간 비동기 스트림으로 분리하였다. 호스트는 트리 구조 관리와 가지치기 판단을 담당하고, 디바이스는 바운딩 연산만을 전담한다. 이를 통해 CPU와 GPU가 파이프라인 형태로 병렬 작업을 수행하게 되며, 전체 탐색 속도가 크게 향상된다.

실험은 표준 FSP 베치마크인 Taillard 인스턴스(작업 수 20200, 기계 수 520)를 대상으로 수행되었다. Nvidia Tesla C2050(448 CUDA 코어, 3 GB GDDR5)와 Intel Xeon E5‑2630(2.3 GHz, 8코어) 기반의 단일·멀티스레드 CPU 구현을 비교하였다. 결과는 문제 규모가 커질수록 GPU 가속 효과가 두드러졌으며, 특히 작업 100개·기계 10개 인스턴스에서 평균 85배, 최대 100배의 가속률을 기록했다. 메모리 사용량이 2 GB를 초과하는 경우에도 스트리밍 기법 덕분에 성능 저하가 미미했다.

한계점으로는 바운딩 연산 외의 트리 관리와 가지치기 로직이 여전히 CPU에 의존하고 있어, 전체 탐색 단계에서 CPU‑GPU 간 통신 오버헤드가 존재한다는 점을 지적한다. 또한, GPU 메모리 용량이 제한적이므로 매우 대규모 인스턴스(예: 작업 500개 이상)에서는 추가적인 분산 GPU 전략이 필요할 것으로 보인다. 향후 연구에서는 바운딩 외의 연산도 GPU로 이관하거나, 멀티‑GPU 환경에서 작업을 분산 배치하는 방안을 모색할 계획이다.


댓글 및 학술 토론

Loading comments...

의견 남기기