Communications co-processors (CCPs) have become commonplace in modern MPPs and networks of workstations. These co-processors provide dedicated hardware support for fast communication. In this paper we study how to exploit the capabilities of CCPs for executing user level message handlers. We show, in the context of Active Messages and Split-C, that we can move message handling code to the co-processor thus freeing the main processor for computational work. We address the important issues that arise, such as synchronization, and the limited computational power and flexibility of CCPs. We have implemented co-processor versions of both Active Messages and Split-C. These implementations, developed on the Meiko CS-2, provide us with an excellent experimental platform to evaluate the benefits of a communications co-processor architecture.
Klaus E. Schauser, Chris J. Scheiman, J. Mitchell