인텔 다중코어 시스템을 위한 병렬 빈발 항목 집합 마이닝 알고리즘

인텔 다중코어 시스템을 위한 병렬 빈발 항목 집합 마이닝 알고리즘
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 메모리에 적재 가능한 대규모 트랜잭션 데이터베이스를 대상으로, 인텔 Xeon Phi 다중코어 아키텍처에서 Dynamic Itemset Counting(DIC) 알고리즘을 가속화하는 방법을 제시한다. 비트 기반 데이터 표현과 OpenMP 기반 스레드 수준 병렬성을 활용해 메모리 사용량을 최소화하고, 논리 연산을 통한 지원도 계산을 벡터화한다. 실험 결과, Xeon Phi와 일반 Xeon CPU 모두에서 높은 성능 향상과 좋은 확장성을 확인하였다.

상세 분석

이 연구는 전통적인 Apriori 알고리즘의 한계, 즉 매 반복마다 전체 데이터베이스를 스캔하고 후보 집합이 급격히 폭증하는 문제를 극복하기 위해 DIC(Dynamic Itemset Counting)를 선택하였다. DIC은 후보와 빈발 항목 집합을 동시에 관리하면서, 한 번의 데이터베이스 스캔으로 여러 레벨의 후보를 평가할 수 있어 전체 패스 수를 크게 줄인다. 그러나 DIC 역시 후보 집합 관리와 지원도 계산에 많은 메모리와 연산을 요구한다는 점에서 병렬화가 필요하다.

인텔 Xeon Phi는 수십 개의 저전력 코어와 각 코어당 512비트 SIMD 벡터 유닛을 갖춘 구조로, 메모리 대역폭은 크지만 개별 코어의 클럭은 상대적으로 낮다. 따라서 알고리즘 설계 시 “코어당 작업량을 충분히 크게 유지하면서 SIMD 활용을 극대화”하는 전략이 핵심이다. 논문은 이를 위해 트랜잭션과 항목 집합을 비트 벡터 형태로 저장한다. 각 트랜잭션은 64비트 워드 배열로 표현되며, 항목 집합 역시 동일한 비트 패턴을 가진다. 지원도 계산은 비트 AND 연산 후 POPCNT(비트 집합 개수) 함수를 적용해 한 번에 여러 트랜잭션을 처리할 수 있다. 이 연산은 하드웨어 수준에서 SIMD 명령어로 자동 벡터화가 가능하므로, Xeon Phi의 벡터 유닛을 효율적으로 활용한다.

스레드 수준 병렬성은 OpenMP를 이용해 구현하였다. 데이터베이스를 스레드 수에 따라 균등하게 블록 분할하고, 각 스레드가 자신에게 할당된 블록에 대해 비트 연산을 수행한다. 후보 집합의 동기화는 최소화하기 위해 각 스레드가 로컬 카운터를 유지하고, 일정 주기마다 원자적 합산을 수행한다. 또한 후보 집합 추가·삭제와 같은 구조적 변화를 담당하는 마스터 스레드와 계산 전용 워커 스레드를 구분함으로써, 제어 흐름과 데이터 흐름을 명확히 분리하였다.

메모리 측면에서는 비트 기반 압축이 기존 포인터 기반 구현 대비 8배 이상 공간 절감을 제공한다. 이는 Xeon Phi의 제한된 메모리 용량(보통 8 GB) 내에서 대규모 데이터베이스를 다룰 수 있게 해준다. 또한, 메모리 접근 패턴이 연속적이어서 캐시 친화적이며, NUMA 효과를 최소화한다.

실험에서는 합성 데이터와 실제 마켓 바스켓 데이터(예: Kosarak, Retail) 모두를 사용했으며, Xeon Phi 7120P와 Xeon E5‑2670v2 CPU를 비교 대상으로 삼았다. 결과는 Xeon Phi가 동일 코어 수 대비 2.53배, 전체 코어 수 대비 1.82배의 속도 향상을 보였으며, 스레드 수를 늘릴수록 거의 선형에 가까운 확장성을 나타냈다. 특히 후보 집합이 수천 개 수준일 때, 비트 연산 기반 지원도 계산이 메모리 대역폭 한계에 도달하기 전까지 CPU보다 월등히 빠른 성능을 기록했다.

한계점으로는 데이터베이스가 메모리에 완전히 적재되지 못하는 경우, 디스크 I/O 병목이 발생해 가속 효과가 감소한다는 점이다. 또한, 비트 벡터 길이가 항목 수에 비례하므로, 항목 수가 매우 큰(수십만 이상) 경우 메모리 사용량이 급증할 수 있다. 향후 연구에서는 외부 메모리 친화적 스트리밍 기법과 동적 비트 압축을 결합해 이러한 문제를 완화할 수 있을 것으로 기대한다.


댓글 및 학술 토론

Loading comments...

의견 남기기