ACM Home Page
Please provide us with feedback. Feedback
Shangri-La: achieving high performance from compiled network applications while enabling ease of programming
Full text PdfPdf (481 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation table of contents
Chicago, IL, USA
SESSION: Network processing table of contents
Pages: 224 - 236  
Year of Publication: 2005
ISBN:1-59593-056-6
Also published in ...
Authors
Michael K. Chen  Intel Corporation, Santa Clara, CA
Xiao Feng Li  Intel China Research Center Ltd., Beijing, China
Ruiqi Lian  China Academy of Sciences, Beijing, China
Jason H. Lin  Intel China Research Center Ltd., Beijing, China
Lixia Liu  Intel China Research Center Ltd., Beijing, China
Tao Liu  China Academy of Sciences, Beijing, China
Roy Ju  Intel Corporation, Santa Clara, CA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 12,   Downloads (12 Months): 90,   Citation Count: 17
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1065010.1065038
What is a DOI?

ABSTRACT

Programming network processors is challenging. To sustain high line rates, network processors have extremely tight memory access and instruction budgets. Achieving desired performance has traditionally required hand-coded assembly. Researchers have recently proposed high-level programming languages for packet processing, but the challenges of compiling these languages into code that is competitive with hand-tuned assembly remain unanswered.This paper describes the Shangri-La compiler, which accepts a packet program written in a C-like high-level language and applies scalar and specialized optimizations to generate a highly optimized binary. Hot code paths identified by profiling are mapped across processing elements to maximize processor utilization. Since our compilation target has no hardware caches, software-controlled caches are generated for frequently accessed application data structures. Packet handling optimizations significantly reduce per-packet memory access and instruction counts. Finally, a custom stack model maps stack frames to the fastest levels of the target processor's heterogeneous memory hierarchy.Binaries generated by the compiler were evaluated on the Intel IXP2400 network processor with eight packet processing cores and eight threads per core. Our results show the importance of both traditional and specialized optimization techniques for achieving the maximum forwarding rates on three network applications, L3-Switch, MPLS and Firewall.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Amaral, J.N., Gao, G.R., Dehnert, J. and Towle, R. The SGI Pro64 Compiler Infrastructure: A Tutorial. In PACT'00, Philadelphia, PA, October 2000.
2
 
3
 
4
Broadcom Corporation. The Sibyte BCM1250 Processor. http://sibyte.broadcom.com/public/index.html
 
5
 
6
Chiueh, T. and Pradhan, P. High-performance IP routing table lookup using CPU caching. In IEEE Infocom'99, New York, NY, March 1999.
7
8
9
10
11
12
 
13
Goglin, S., Johnson, E.J. and Vin, H. Baker: A Packet Processing Programming Language for Highly Concurrent Hardware. Under preparation for submission.
 
14
 
15
IBM. The PowerNP architecture. http://www.hifn.com/products/5np4g.html.
 
16
Intel Corporation. Intel IXP2400 Network Processor: Hardware Reference Manual. October 2002.
 
17
Intel Corporation. Microengine Version 2 (MEv2): Microengine C Compiler Coding Considerations. June 2003.
 
18
 
19
Ju, R., Chan, S. and Wu, Chengyong. Open Research Compiler for Itanium Processor Family. Tutorial in MICRO-34, Austin, TX, December 2001.
20
21
22
23
24
25
 
26
Intel Corporation. Microengine Version 2 (MEv2): Microengine C Compiler Coding Considerations. June 2003.
 
27
Network Processing Forum. IP Forwarding Application Level Benchmark. http://www.npforum.org/techinfo/ipforwarding_bm.pdf
 
28
Network Processing Forum. MPLS Forwarding Application Level Benchmark and Annex. http://www.npforum.org/techinfo/MPLSBenchmark.pdf
 
29
PMC-Sierra. MIPS-based Processors. http://pmc-sierra.com/processors/
 
30
Rosen, E., Viswanathan, A. and Callon, R. RFC 3031 - Multiprotocol Label Switching Architecture. IETF, January 2001.
 
31
Shah, N., Plishker, W. and Keutzer, K. NP-Click: A Programming Model for the Intel IXP1200. In 2nd Workshop on Network Processors (NP-2), Anaheim, CA, February 2003.
 
32
Shah, N., Plishker, W. and Keutzer, K. Comparing Network Processor Programming Environments: A Case Study. In 2004 Workshop on Productivity and Performance in High-End Computing (P-PHEC), HPCA-10, Madrid, Spain, February 2004.
33
 
34
35
 
36
Vin, H., Mudigonda, J., Jason, J., Johnson, E.J., Ju, R., Kunze, A. and Lian, R. A Programming Environment for Packet-processing Systems: Design Considerations. In 3rd Workshop on Network Processors & Applications, Madrid, Spain, February 2004.
37
 
38
Zhuang, X. and Pande, S. Resolving Register Bank Conflicts for a Network Processor. In PLDI'03, New Orleans, LA, June 2004.

CITED BY  17

Collaborative Colleagues:
Michael K. Chen: colleagues
Xiao Feng Li: colleagues
Ruiqi Lian: colleagues
Jason H. Lin: colleagues
Lixia Liu: colleagues
Tao Liu: colleagues
Roy Ju: colleagues