Professur Rechnerarchitektur






Diplomarbeit

Enhancing an InfiniBand driver by utilizing an efficient malloc/free library supporting multiple page sizes


Ausgabedatum: 15.04.2006
Abgabedatum: 16.10.2006

Zielstellung:

To leverage high speed interconnects like InfiniBand it is important to minimize the communication overhead. The most interfering overhead is the registration of communication memory. This registration process generally encompasses the pinning of the requested quantity of memory using mlock(), the address translation (virtual to physical addresses) and finally the transfer of the obtained physical addresses to the IB controller.
Due to the costs of memory registration several approaches try to reduce the impact of this operation on middleware or application level. These approaches base on pre-registering techniques or caching strategies (hash table/ tree structures) to hold pages that were once registered. But all approaches are limited in space.
To further accelerate the memory registration the most obvious improvement is the usage of larger pages. Most modern processors support multiple page sizes and Linux provides the appropriate framework using hugetlbfs filesystem. Currently there is only one library known that provides an malloc/free using large pages, the libhugepagealloc library (http://www10.informatik.uni-erlangen.de/Research/Projects/DiME-new/libhugepagealloc.html). But this library is quite simple in allocating huge pages because it supports only 4MB pages. So it can be used as a starting point.

Aufgabe:
Design and implement an efficient malloc/free library supporting multiple page size. Enhance an InfiniBand driver that it can handle different page sizes simultaneously. Compare both versions in terms of latency and bandwidth numbers.

Anforderungen:

  • Kenntnisse in C und Linux-Kernel Programmierung
  • Kenntnisse über die Organisation paralleler und verteilter Systeme

Betreuer: Frank Mietke
Betreuender Hochschullehrer: Prof. Dr. Wolfgang Rehm