GANDALF is a novel GPU-based middle-box architecture and framework for building efficient and feature-rich data flow processing applications. Besides providing rich functionality and high-level programming primitives to application developers, GANDALF offers significant performance improvements through OS-level support for high-throughput cross-device communication, and increased scalability through transparent load balancing across multiple GPUs.
The goal of this work is to develop a middlebox architecture based on modern GPUs that will provide high performance and flexible programmability, such as arbitrary data processing, modification, and caching. Besides the programmability and high performance design goals, we have two additional requirements, necessitated by real-world experience. First, the provided programmability should be easy to use. Second, it is highly desirable that the platform is built from (inexpensive) commodity components. Our target is to provide an easy-to-program platform that has a pricing advantage over non-commodity expensive ones, enabling widespread adoption
Specifically, we propose:
The implementation of a new middlebox framework for high-performance GPU-based data processing applications. Given the wide variety of different application needs from processing raw data at the lowest level (e.g., data link frames, file blocks) up to higher levels (e.g., TCP/UDP packets, file objects) our framework will enable easy development of applications that process data at multiple layers of the protocol stack, and with throughputs in the order of tens of Gbit/s. The system will be able to exploit multiple GPUs when present, and enable transparent load-balancing of heavy workloads across them.
A GPU-based API that includes a rich set of functions (such as pattern matching, key-value storage, hashing, and cryptographic operations) to support both passive and in-line processing of high-bandwidth data flows, that simplify the development of applications directly in GPUs.
A set of applications built on top of this system.