Universität Duisburg-Essen
Verteilte Systeme
GPU Acceleration for Domain Name Servers
Prüfer Dr.-Ing. Matthäus Wander
Betreuer Dr.-Ing. Matthäus Wander
Bearbeiter Johannes Brüderl
Art Masterarbeit
Abgabe Mai 2016

The Domain Name System (DNS) is an Internet-wide distributed naming system, which maps domain names to IP addresses or other entities. The DNS network protocol is stateless, i.e. servers process queries without a client-specific state or session data. Responses are assembled by looking up DNS data in the local server database, which consists mostly of static data sets. With the DNS Security Extensions (DNSSEC), certain responses require additional computation, in particular computing NSEC3 hash values.

Goal: In this Bachelor or Master thesis you develop a DNS server prototype that offloads the computation of hash values to a GPU. The purpose is to free the CPU from computationally intensive tasks and increase the scalability and performance of the DNS server. One of the challenges of this approach is to achieve a low latency overhead together with the highest possible throughput.

In a past project, a group of students has built a prototype for offloading DNSSEC/NSEC3 hash computation to an AMD GPU. They modified a BIND9 DNS server, which turned out to be unsuitable due to architectural limitations. Still, the students demonstrated the benefit of GPU-based hashing to improve the server performance in certain scenarios. You can reuse existing code (interprocess communication between DNS server and a GPU job dispatcher, hash computation written in OpenCL) to create a better solution with another DNS server.

  • Investigate by literature review and experimentation how to optimize GPU programs for low-latency execution.
  • Sketch a suitable DNS server architecture, which supports GPU offloading. Either implement a minimal DNS server from scratch (proof of concept to demonstrate GPU offloading, not a full-blown implementation) or modify an existing open source DNS server.
  • Evaluate your prototype with performance measurements.
    • Can you reduce the CPU load with your approach?
    • What is the impact on the response latency?
    • Can the server handle more or less queries per second with GPU offloading?
  • Implement and evaluate both GPU technologies, AMD and NVIDIA. Which technology is better suited for your approach?
  • Investigate whether you can offload more than just hash computation to the GPU, e.g. offload the DNS server database lookup to the GPU. Is this a suitable approach to improve the server scalability or performance?

Prerequisites: You know the fundamentals of computer networks, Internet technology and programming. The thesis can be written in English or German at your choice. We provide machines with an AMD and an NVIDIA GPU in our computer pool to you.

  • Johannes Brüderl, Benedikt Fabry, Alexander Mintrop, Tobias Reffelmann, Axel Strümper: GPU-basierte Berechnung von NSEC3-Hashes zur Entlastung eines DNS-Servers. Praxisprojektbericht, April 2015.
  • Kazuhiko Komatsu, Katsuto Sato, Yusuke Arai, Kentaro Koyama, Hiroyuki Takizawa, Hiroaki Kobayashi: Evaluating Performance and Portability of OpenCL Programs. The Fifth International Workshop on Automatic Performance Tuning, 2010.

© Universität Duisburg-Essen, Verteilte Systeme - Kontakt: webmaster@vs.uni-due.de

Impressum - Datenschutz