Developing Custom Firmware for the Red Storm SeaStar Network Interface.

The Red Storm SeaStar network interface contains an embedded PowerPC 440 CPU that, out-of-thebox, is used solely to handle network protocol processing. Since this is a fully programmable general purpose CPU, network researchers may wish to program it to perform additional tasks such as NIC-based collective operations and NIC-level computation. This paper describes our experiences developing custom firmware for the SeaStar. In order to make the SeaStar more accessible to non-experts, we have developed a C version of the assembly-based firmware provided by Cray. This high-level language firmware should be much easier to understand and to quickly extend with new features. A detailed overview of the SeaStar programming environment and our C firmware will be presented along with optimization techniques that we have found beneficial.

[1]  Dhabaleswar K. Panda,et al.  NIC-based rate control for proportional bandwidth allocation in Myrinet clusters , 2001, International Conference on Parallel Processing, 2001..

[2]  Scott Pakin,et al.  STORM: Lightning-Fast Resource Management , 2002, ACM/IEEE SC 2002 Conference (SC'02).

[3]  Brian W. Kernighan,et al.  The C Programming Language, Second Edition , 1988 .

[4]  Ronald B. Brightwell,et al.  The portals 3.3 message passing interface document revision 2.1. , 2006 .

[5]  Rolf Riesen,et al.  Design, Implementation, and Performance of MPI on Portals 3.0 , 2003, Int. J. High Perform. Comput. Appl..

[6]  Lustre : A Scalable , High-Performance File System Cluster , 2003 .

[7]  Suzanne M. Kelly,et al.  Software Architecture of the Light Weight Kernel, Catamount , 2005 .

[8]  Fabrizio Petrini,et al.  Hardware- and software-based collective communication on the Quadrics network , 2001, Proceedings IEEE International Symposium on Network Computing and Applications. NCA 2001.

[9]  Hyun-Wook Jin,et al.  NIC-based offload of dynamic user-defined modules for Myrinet clusters , 2004, 2004 IEEE International Conference on Cluster Computing (IEEE Cat. No.04EX935).