Skip to main content
QUICK REVIEW

[논문 리뷰] FastFlow: Efficient Parallel Streaming Applications on Multi-core

Marco Aldinucci, Massimo Torquati|ArXiv.org|2009. 09. 07.
Distributed systems and fault tolerance참고 문헌 34인용 수 20
한 줄 요약

FastFlow는 다중 코어 시스템에서 효율적인 병렬 스트리밍을 위한 저수준, 락-프리, 패널티-프리 프로그래밍 프레임워크로, 동기화 오버헤드를 최소화하기 위해 최적화된 MPMC(다중 생산자-다중 소비자) 큐를 사용한다. Smith-Waterman 서열 정렬 벤치마크에서 Cilk보다 최대 226% 높은 성능과 TBB보다 96% 높은 성능을 기록하여 세밀한 스트리밍 워크로드에 대해 뛰어난 효율성을 입증한다.

ABSTRACT

Shared memory multiprocessors come back to popularity thanks to rapid spreading of commodity multi-core architectures. As ever, shared memory programs are fairly easy to write and quite hard to optimise; providing multi-core programmers with optimising tools and programming frameworks is a nowadays challenge. Few efforts have been done to support effective streaming applications on these architectures. In this paper we introduce FastFlow, a low-level programming framework based on lock-free queues explicitly designed to support high-level languages for streaming applications. We compare FastFlow with state-of-the-art programming frameworks such as Cilk, OpenMP, and Intel TBB. We experimentally demonstrate that FastFlow is always more efficient than all of them in a set of micro-benchmarks and on a real world application; the speedup edge of FastFlow over other solutions might be bold for fine grain tasks, as an example +35% on OpenMP, +226% on Cilk, +96% on TBB for the alignment of protein P01111 against UniProt DB using Smith-Waterman algorithm.

연구 동기 및 목표

  • 기존 프레임워크에서 메모리 패널티와 원자 연산으로 인한 공유 메모리 스트리밍 애플리케이션의 성능 저하 문제를 해결한다.
  • 임의의 스트리밍 네트워크(순환 그래프 포함)에서 효율적이고 고처리량의 통신을 지원하는 저수준 프레임워크를 설계한다.
  • x86/SSE2 벡터화된 Smith-Waterman 알고리즘과 같은 기존 수작업 최적화 코드를 고성능 통신 계층을 통해 효율적으로 병렬화할 수 있도록 한다.
  • FastFlow가 Cilk, OpenMP, TBB와 같은 최첨단 프레임워크보다 마이크로벤치마크와 실제 스트리밍 애플리케이션 모두에서 뛰어난 성능을 보임을 입증한다.
  • FastFlow를 다중 코어 아키텍처에서 향후 고수준 스켈레탈 스트리밍 프레임워크의 기초로 위치지운다.

제안 방법

  • 잠금과 패널티 없이 작동하는 MPMC 큐를 핵심 통신 원자으로 구현하여 뮤텍스 및 원자 연산으로 인한 동기화 오버헤드를 제거한다.
  • 스레드 전용 식별자(TSS 또는 라이브러리 호출을 통해 제공)를 사용하여 스트리밍 네트워크 내에서 효율적이고 저오버헤드의 작업 라우팅을 가능하게 한다.
  • 스트리밍 파이프라인을 팜 패턴으로 구성: 에미터가 시퀀스 쌍을 생성하고, 워커가 벡터화된 Smith-Waterman 알고리즘으로 처리하며, 컬렉터가 결과를 집계한다.
  • 각 병렬 엔티티(에미터, 워커, 컬렉터)를 스레드에 직접 매핑하여 런타임 오버헤드를 최소화하고 로드 분포를 예측 가능하게 한다.
  • 다양한 쿼리 및 데이터베이스 크기 간 성능 비교를 표준화하기 위해 초당 셀 업데이트 수(CUPS) 지표를 사용한다.
  • 모든 구현체를 동일한 순차적이고 수작업 최적화된 x86/SSE2 Smith-Waterman 코드로 벤치마크하여 공정한 비교를 확보한다.

실험 결과

연구 질문

  • RQ1잠금-프리, 패널티-프리 MPMC 큐 설계가 기존 뮤텍스 기반 또는 원자 기반 동기화 방식보다 스트리밍 워크로드에서 상당히 낮은 통신 오버헤드를 달성할 수 있는가?
  • RQ2Smith-Waterman 서열 정렬 알고리즘에서 FastFlow의 성능은 Cilk, OpenMP, TBB 및 수작업 최적화된 SWPS3 버전과 비교해 어떻게 되는가?
  • RQ3FastFlow의 저수준 통신 추상화가 세밀한 스트리밍 작업 및 데이터-병렬 스트리밍 작업에 대해 더 높은 성능을 내는 데 기여하는가?
  • RQ4TBB는 마이크로벤치마크 결과에서는 강력한 성능을 보였지만, 왜 Smith-Waterman 벤치마크에서는 기대 이상으로 낮은 성능을 보였는가?
  • RQ5FastFlow는 알고리즘 변경 없이도 기존 수작업 최적화된 순차 코드를 효율적으로 병렬화할 수 있는가?

주요 결과

  • FastFlow는 단백질 P01111을 UniProt DB와 정렬할 때 OpenMP보다 최대 35% 높은 성능, Cilk보다 최대 226% 높은 성능을 기록한다.
  • 짧은 쿼리 시퀀스에서는 계산 시간 대비 통신 오버헤드가 낮기 때문에 FastFlow의 성능 우월성이 가장 두드러진다.
  • TBB는 Smith-Waterman 벤치마크에서 예상보다 낮은 성능을 보였는데, 이는 작업 스케줄러나 큐 관리에서 알려지지 않은 오버헤드가 존재할 가능성을 시사한다.
  • 짧은 시퀀스에서 FastFlow는 최첨단 수작업 최적화된 SWPS3 구현보다 뛰어난 성능을 보이며, 기존 코드를 효율적으로 병렬화할 수 있음을 입증한다.
  • FastFlow는 합성 마이크로벤치마크와 실제 생물정보학 워크로드 모두에서 평가된 모든 프레임워크를 일관되게 뛰어넘는다.
  • FastFlow의 설계 덕분에 순환 그래프를 포함한 임의의 스트리밍 네트워크 토폴로지에 대해 저지연, 락-프리 통신 채널을 통해 효율적인 지원이 가능하다.

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

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

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

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