Software packet processing frameworks act as critical components in modern network architecture, as the performance of those have vital effect on the quality of the network services. Motivated by the increasing SIMD capabilities and advancing instructions of recent mainstream CPUs, this paper explores a new parallel processing design and implementation of hash-based data structure and algorithm that are frequently used for building network applications. In particular, we propose effective SIMD optimization techniques for the bloom filter and Open vSwitch megaflow cache. Our design reduces memory access latency via proper prefetching and new data structure design to meet the needs of fast data consuming instructions. Our evaluation shows performance improvements up to 162% in bloom filter and 48% in Open vSwitch compared to the scalar code of each.
현대 네트워크 시스템이 효율적으로 잘 작동 하는데 있어 소프트웨어 기반의 패킷 처리 어플리케이션의 성능이 매우 중요하다. 이 논문에서는 단일 명령어로 여러개의 데이터를 처리하는 최신 병렬연산을 적용하여 네트워크 어플리케이션에서 흔히 사용되는 해시 기반의 자료구조 및 알고리즘을 병렬화 하였다. 더 자세히 말하면, 블룸필터 검색 과정과 가상스위치의 패킷분류 과정에 효과적으로 병렬연산을 적용한 사례를 보여준다. 이 논문에서 제시하는 최적화 디자인은 병렬화 알고리즘 뿐 아니라 병렬연산에 최적화한 메모리 프리페치 및 자료구조 설계를 통한 메모리 참조 지연시간 단축도 포함한다. 이를 통해 블룸필터의 검색 성능을 최대 162%, 가상스위치의 성능을 최대 48% 높였다.