Responsiveness without interrupts

Abstract
Recent advances in network and operating system technology allow applications to directly exploit gigabits of network commu- nication per second. However, most such communication inter- faces provide no efficient means of asynchronous notification to processes of incoming messages. Instead, applications are ex- pected to poll frequently. In addition to the burden placed on the programmer, polls are rarely cheap enough to sprinkle indis- criminately in all program loops. We show that the resulting delay in handling messages can be very detrimental to applic a- tion performance. We characterize the communication behavior of our applications and show that the majority of notification delay is caused by a relatively small number of large delays. This result explains why coarse-grained timeout schemes are able to produce acceptable performance on network interfaces that lack explicit interrupt notifications. We then study two methods of addressing this notification delay. First, we show that multi-threading schemes intended to hide other forms of communication delay are also fairly effective at hiding notification delay. Second, we evaluate several strategies for minimizing notification delay directly though judicious inser- tion of network polls. Both techniques produce performance comparable to fast software interrupts, especially important on communication systems that do not provide interrupt capabilities, such as PVM or MPI.

This publication has 14 references indexed in Scilit: