효율적인 병렬 알고리즘을 이용한 탠덤 대기열 시스템 시뮬레이션

효율적인 병렬 알고리즘을 이용한 탠덤 대기열 시스템 시뮬레이션

초록

본 논문은 단일 서버를 갖는 탠덤 대기열 시스템을 대상으로, 무한 및 유한 버퍼 상황 모두에 적용 가능한 병렬 시뮬레이션 알고리즘을 제안한다. 시스템 동역학을 재귀 방정식 형태로 표현하고, 이를 기반으로 다중 프로세서·다중 코어 환경에서 낮은 시간·메모리 복잡도를 보이는 알고리즘을 설계한다. 성능 분석을 통해 제안 알고리즘이 기존 순차 시뮬레이션 대비 선형적인 속도 향상을 달성함을 확인한다.

상세 분석

논문은 먼저 탠덤 대기열 시스템을 수학적으로 모델링한다. 각 스테이지 i(1≤i≤M)는 단일 서버와 버퍼를 가지고, 고객은 첫 번째 스테이지에 도착한 뒤 순차적으로 다음 스테이지로 이동한다. 버퍼 용량이 무한인 경우와 제한된 경우를 각각 별도의 재귀식으로 기술한다. 무한 버퍼에서는 고객의 서비스 시작 시각 S_i(k)와 종료 시각 C_i(k)를
C_i(k)=max{C_i(k‑1),C_{i‑1}(k)}+τ_i(k)
와 같이 정의하고, τ_i(k)는 k번째 고객의 i스테이지 서비스 시간이다. 유한 버퍼에서는 버퍼가 가득 찼을 때 발생하는 블로킹 현상을 반영해, 대기열 입구에서의 대기 시간을 추가적으로 계산한다. 이러한 재귀식은 각 스테이지와 고객에 대해 독립적인 연산으로 분해될 수 있어, 병렬화에 적합한 구조임을 논문은 강조한다.

병렬 알고리즘 설계에서는 두 가지 핵심 전략을 사용한다. 첫째, 고객 인덱스 k를 기준으로 각 스테이지 i에 대한 연산을 동시에 수행하도록 데이터 의존성을 최소화한다. 이를 위해 “시간 슬라이스” 개념을 도입해, 동일한 시간 단계에 속하는 연산들을 하나의 병렬 작업 단위로 묶는다. 둘째, 메모리 접근 패턴을 최적화하기 위해 순차적인 배열 구조를 유지하면서, 각 프로세서가 담당하는 구간을 미리 할당한다. 이렇게 하면 캐시 적중률이 높아지고, 메모리 대역폭 병목을 크게 완화할 수 있다.

알고리즘의 시간 복잡도는 P개의 프로세서가 있을 때 O((M·N)/P + log P) 로 분석된다. 여기서 N은 시뮬레이션 대상 고객 수이며, M은 스테이지 수이다. 특히 버퍼가 유한한 경우에도 추가적인 조건 검사가 O(1) 시간 안에 수행되므로, 전체 복잡도는 크게 변하지 않는다. 메모리 복잡도는 각 스테이지별 서비스 시간과 고객 도착 시각을 저장하는 데 필요한 O(M·N) 에서, 병렬 처리에 필요한 임시 버퍼를 제외하면 O(M·N/P) 로 감소한다.

성능 평가에서는 CPU 기반 다중 코어와 GPU 기반 대규모 병렬 환경을 실험한다. 실험 결과, 고객 수가 10⁶ 이상일 때 CPU 8코어에서는 평균 12배, GPU에서는 45배 이상의 가속률을 기록하였다. 또한, 버퍼 용량을 제한했을 때 발생하는 블로킹 현상이 전체 시뮬레이션 시간에 미치는 영향이 미미함을 확인했다. 이는 재귀식 기반의 병렬 구현이 버퍼 제약을 자연스럽게 포함하면서도 연산량을 크게 늘리지 않기 때문이다.

결론적으로, 논문은 재귀 방정식이라는 간결한 수학적 표현을 활용해 탠덤 대기열 시스템의 동역학을 효율적으로 병렬화할 수 있음을 입증한다. 제안된 알고리즘은 구현이 비교적 단순하면서도 확장성이 뛰어나, 실시간 성능 평가, 대규모 제조 라인 시뮬레이션, 네트워크 패킷 처리 등 다양한 응용 분야에 적용 가능하다.