The Virtual Processor Interface: Linux Kernel Support for User-level Thread Systems

G.D. Benson, M. Butner, S. Padden, and A. Fedosov (USA)


: High Performance Computing and Network ing, Parallel computing, User-level threads, Linux kernel


Despite an increasing need for thread support in language run-time systems and parallel libraries such as in Java and OpenMP, there is limited support for custom, multiproces sor capable, user-level thread systems in the Linux kernel. To address this lack of support we have developed the vir tual processor interface (VPI) for Linux. Our VPI imple mentation consists of a small set of kernel modifications and new system calls combined with a small user-level li brary that provide an interface that can be used to build thread systems. VPI uses a form of scheduler activations so that user-level thread systems can have complete con trol over the amount of parallelism for an application and the scheduling of threads onto processors. In addition, VPI allows user-level thread systems to schedule new threads in the presence of blocking system calls and page faults. This paper describes VPI and our implementation. We have implemented a complete thread system using VPI, called VPIthreads, and compare its performance to that of current user-level and kernel-level thread systems. Our initial re sults show the VPI-based thread systems can perform better than current production thread systems.

Important Links:

Go Back