스키퍼: 한 번의 에지 스캔으로 최대 매칭을 구현한다

스키퍼: 한 번의 에지 스캔으로 최대 매칭을 구현한다
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

**
본 논문은 그래프의 모든 에지를 단 한 번만 읽어 최대 매칭을 찾는 비동기 알고리즘 Skipper를 제안한다. 충돌을 즉시 해결하는 JIT(Just‑In‑Time) 예약·커밋 방식을 도입해 EMS 기반 방법의 반복·프루닝·무작위화 오버헤드를 제거하고, 정점당 1바이트 메모리만 사용한다. APRAM 모델에서 구현된 Skipper는 실험에서 224 억 에지 규모 그래프에 대해 평균 8배, 최대 15.6배의 속도 향상을 보였다.

**

상세 분석

**
Skipper는 기존의 EMS(Endpoints Mutual Selection) 방식이 갖는 두 단계(선택·정제)와 반복적인 그래프 프루닝을 완전히 배제한다. 핵심 아이디어는 각 에지를 처리할 때 양 끝점의 상태를 동시에 검사·갱신함으로써, 해당 에지가 매칭에 포함될지 즉시 결정하는 JIT 충돌 해결 메커니즘이다. 이를 위해 각 정점마다 1바이트의 ‘matched’ 플래그만 유지하고, 에지 리스트를 CSR/CSC 형식으로 순차적으로 스캔한다. 스레드는 공유 메모리 상의 플래그를 원자적으로 CAS(compare‑and‑swap)하거나 fetch‑add 연산으로 업데이트하며, 충돌이 발생하면 즉시 다른 스레드가 해당 에지를 건너뛴다.

알고리즘은 APRAM(Asynchronous Parallel Random Access Machine) 모델을 가정한다. 즉, 스레드 간 동기화가 최소화되고, 메모리 접근 지연이 비동기적으로 처리된다. 이 설계는 메모리 대역폭에 제한적인 대규모 그래프 처리에서 병목을 크게 감소시킨다. 이론적으로 Skipper의 기대 작업량은 O(|E|)이며, 정점당 1바이트 메모리 사용량은 기존 SIDMM이 요구하는 수십 바이트에 비해 10배 이상 절감한다.

실험에서는 12개의 실세계·합성 그래프(최대 224 억 에지)를 대상으로 64‑코어 서버에서 평가하였다. Skipper는 SIDMM 대비 4.9∼15.6배(기하 평균 8.0배)의 실행 시간 단축을 달성했으며, 특히 50 억 에지 이상 대형 그래프에서는 평균 10.3배의 가속을 기록했다. 메모리 접근 횟수는 SGMM 대비 0.3∼0.8배 수준으로, 기존 병렬 알고리즘이 초래하는 과도한 메모리 트래픽을 효과적으로 억제한다.

결과적으로 Skipper는 “한 번의 에지 스캔, 즉시 충돌 해결”이라는 설계 원칙을 통해 작업 효율성을 극대화하고, 대규모 그래프 환경에서 실용적인 병렬 최대 매칭 솔루션을 제공한다.

**


댓글 및 학술 토론

Loading comments...

의견 남기기