Skip to main content
QUICK REVIEW

[논문 리뷰] MultiQueues: Simpler, Faster, and Better Relaxed Concurrent Priority Queues

Hamza Rihani, Peter Sanders|arXiv (Cornell University)|2014. 11. 05.
Distributed systems and fault tolerance참고 문헌 20인용 수 12
한 줄 요약

MultiQueues는 다수의 순차적 우선순위 큐를 사용하여 경쟁을 줄이고 성능을 향상시키는 단순하고 확장 가능한 느슨한 동시 우선순위 큐를 제안한다. $cp$개의 큐($c>1$)에 삽입 작업을 무작위로 분산하고, 삭제 작업에서는 두 개의 무작위로 선택된 큐의 최소값을 선택함으로써 이전 방법들보다 높은 처리량과 더 나은 요소 품질을 달성한다. 실험 결과, SprayLists 대비 최대 두 배의 성능 향상을 기록하였다.

ABSTRACT

Priority queues with parallel access are an attractive data structure for applications like prioritized online scheduling, discrete event simulation, or branch-and-bound. However, a classical priority queue constitutes a severe bottleneck in this context, leading to very small throughput. Hence, there has been significant interest in concurrent priority queues with a somewhat relaxed semantics where deleted elements only need to be close to the minimum. In this paper we present a very simple approach based on multiple sequential priority queues. It turns out to outperform previous more complicated data structures while at the same time improving the quality of the returned elements.

연구 동기 및 목표

  • 고도로 동시성으로 인한 경쟁이 발생하는 병행 워크로드에서 중심화된 우선순위 큐의 성능 저하 문제를 해결하기 위해.
  • 높은 처리량을 유지하면서도 삭제된 요소의 품질(즉, 전역 최소값에 더 가까운)을 향상시키는 느슨한 우선순위 큐를 설계하기 위해.
  • 스프링리스트나 중심화된 설계와 같은 복잡한 데이터 구조의 대안으로, 다수의 순차적 우선순위 큐를 구성 요소로 사용하는 더 단순한 방법을 탐색하기 위해.
  • 느슨한 동시 우선순위 큐에서 성능, 확장성, 결과 품질 간의 상호 교환 관계를 평가하기 위해.
  • 디베이스 시스템이나 이산 사건 시뮬레이션과 같이 고처리량 우선순위 스케줄링이 필요한 시스템에 실용적으로 구현 가능하게 하기 위해.

제안 방법

  • 병행 스레드 수 $p$에 비례하여 $cp$개의 순차적 우선순위 큐 배열을 사용하여 부하를 분산하고 경쟁을 줄이기 위해.
  • 삽입 작업을 무작위로 선택된 큐에 할당하여 큐 간 전역 요소의 대표성 있는 샘플을 확보하기 위해.
  • deleteMin 작업에서는 두 개의 독립적이고 무작위로 선택된 큐의 최소값을 선택하여 큐 분포의 변동성을 안정화하기 위해.
  • 개별 큐 작업에 대해 대기 없는 잠금을 사용하여 차단을 방지하고 동시성을 향상시키기 위해.
  • 정렬된 보조 시퀀스 $S$를 사용하여 삭제된 요소의 순위 오차를 추적하고 측정함으로써 정밀한 품질 평가를 가능하게 하기 위해.
  • 성능, 품질, 자원 사용량 간 균형을 맞추기 위해 $c$ 파라미터를 조정하며, 실험 결과 $c=2$ 또는 $c=4$에서 최적의 성능을 보였다.

실험 결과

연구 질문

  • RQ1간단한 다큐잉 접근 방식이 복잡한 중심화된 느슨한 우선순위 큐보다 처리량과 결과 품질 측면에서 뛰어나게 성능을 냈는가?
  • RQ2삽입 작업의 무작위 할당과 두 큐에서의 선택이 삭제된 요소의 순위 오차 분포에 어떤 영향을 미치는가?
  • RQ3큐 수 대비 스레드 수 비율을 나타내는 $c$ 파라미터가 느슨한 동시 우선순위 큐의 성능과 품질에 어떤 영향을 미치는가?
  • RQ4느슨한 우선순위 큐가 높은 처리량을 유지하면서도 삭제된 요소가 항상 전역 최소값에 가까운지를 보장할 수 있는가?
  • RQ5기존 솔루션과 비교해 볼 때, 제안된 MultiQueue 설계는 싱글 소켓 및 멀티 소켓 시스템에서 어떻게 확장되는가?

주요 결과

  • 싱글 소켓 및 듀얼 소켓 시스템에서 MultiQueues는 SprayLists 대비 처리량에서 최대 두 배 이상 뛰어난 성능을 보였다.
  • MultiQueues의 순위 오차 분포는 SprayLists보다 유의미하게 우수했으며, 관측된 최대 순위 오차는 1,522로 SprayLists의 1,740보다 낮았다.
  • 스레드 수 $p=56$일 때, $c=2$($112$개의 큐)를 사용한 MultiQueues는 이론적 예측과 매우 유사한 순위 오차 분포를 보였고, SprayLists보다 꼬리 부분이 짧았다.
  • $p=256$일 때, MultiQueues의 성능 우월성이 더욱 두드러졌으며, $c=4$조차도 SprayLists보다 더 나은 꼬리 행동을 보였다.
  • 삭제된 요소의 품질은 일관되게 높았으며, 평균 및 최대 순위 오차가 낮아 전역 최소값에 더 가까운 근사치를 제공했다.
  • 싱글 소켓에서는 뛰어난 확장성을 보였고, 듀얼 소켓에서는 합리적인 확장성을 확보하여 실제 병행 워크로드에 실용적임을 입증했다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.