A network researcher at the U.S. Department of Energy's Fermi National Accelerator Laboratory has found a potential new use for graphics processing units -- capturing data about network traffic in real time.
GPU-based network monitors could be uniquely qualified to keep pace with all the traffic flowing through networks running at 10Gbps (gigabits per second) or more, said Fermilab's Wenji Wu.
Wenji presented his work as part of a poster series of new research at the SC 2013 supercomputing conference this week in Denver.
Network analysis tools face an extreme challenge in keeping up with all of the traffic of today's larger networks, he said. Adding to the strain, network administrators increasingly expect to inspect operational data in real-time, as it is happening.
For processing, today's commercial monitoring appliances typically rely on either standard x86 processors or customer ASICs (application specific integrated circuits).
Both architectures have their limitations, Wenji noted. CPUs don't have the memory bandwidth or the compute power to keep pace with the largest networks in real time. As a result, they can drop packets.
ASICs can have sufficient memory bandwidth and compute power for the task, but their custom architecture is difficult, and expensive, to program. Nor do they offer the ability to split processing duties into parallel tasks, which is becoming increasingly necessary for watching high-speed networks.
GPUs can offer all of these capabilities, Wenji said. They have "a great parallel execution model," he said, noting that they offer high memory bandwidth, easy programmability, and can split the packet capturing process across multiple cores.
As their name implies, GPUs were originally designed to render graphics on computer screens. Their architectures, consisting of many processor cores working in tandem, also make them useful as general coprocessors good at inherently parallelizable tasks.
In the latest Top500 ranking of the world's most powerful supercomputers, 38 machines used Nvidia GPUs to boost their output.
The task of monitoring networks requires reading all the data packets as they cross the network, which "requires a lot of data parallelism," Wenji said.
Wenji has built a prototype at Fermilab to demonstrate the feasibility of a GPU-based network monitor, using a Nvidia M2070 GPU and an off-the-shelf NIC (network interface card) to capture network traffic. The system could easily be expanded with additional GPUs, he said.
In this setup, Wenji found that packet processing could be considerably accelerated through GPUs. Compared to a single core CPU-based network monitor, the GPU-based system was able to speed performance by as much as 17 times. Compared to a six core CPU, the speed up from using a GPU was threefold.
Makers of commercial network appliances could use GPUs to boost their devices' line rates, as well as cut development costs by using pre-existing GPU programming models such as the Nvidia CUDA (Compute Unified Device Architecture) framework, Wenji said.