Accurate program analyses for successful specialization of legacy system software

Choosing the accuracy of program analyses is a crucial issue when designing and developing a partial evaluator capable of treating realistic programs, and in particular legacy software. In this paper, we investigate the degree of accuracy of alias and binding-time analyses that is required to successfully exploit the specialization opportunities present in the Sun commercial implementation of the remote procedure call protocol (RPC). The Sun RPC implementation consists of a stack of small parameterized layers. This structure is representative of a certain programming style in operating system and network development. The analysis features that we have explored have been implemented in Tempo, a partial evaluator for C. After automatic specialization of the RPC using Tempo, we measured speedups up to 1.5 for complete remote procedure calls (including network transport) and up to 3.7 for local buffer encoding alone. This experiment suggests that partial evaluation is reaching a high level of maturity.

[1]  Charles Consel,et al.  Program adaptation based on program transformation , 1997, SIGP.

[2]  ConselCharles,et al.  Efficient incremental run-time specialization for free , 1999 .

[3]  Markus Mock,et al.  Annotation-Directed Run-Time Specialization in C , 1997, PEPM.

[4]  Charles Consel,et al.  Safe and efficient active network programming , 1998, Proceedings Seventeenth IEEE Symposium on Reliable Distributed Systems (Cat. No.98CB36281).

[5]  Michael Burrows,et al.  Performance of Firefly RPC , 1990, ACM Trans. Comput. Syst..

[6]  Ulrik Pagh Schultz,et al.  Harissa: A Hybrid Approach to Java Execution , 1999, IEEE Softw..

[7]  Rick Ramsey All About Administering NIS , 1992 .

[8]  Julia L. Lawall,et al.  Automatic, template-based run-time specialization: implementation and experimental study , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[9]  Wang Ming Accurate Binding Time Analysis for Imperative Languages , 2001 .

[10]  Charles Consel,et al.  A Domain Specific Language for Video Device Drivers: From Design to Implementation , 1997, DSL.

[11]  Ulrik Pagh Schultz,et al.  Towards Automatic Specialization of Java Programs , 1999, ECOOP.

[12]  Charles Consel,et al.  Experiments in Program Compilation by Interpreter Specialization , 1998 .

[13]  Charles Consel,et al.  Tempo: specializing systems applications and beyond , 1998, CSUR.

[14]  Gilles Muller,et al.  Scaling up partial evaluation for optimizing the Sun commercial RPC protocol , 1997, PEPM.

[15]  Charles Consel,et al.  Efficient incremental run-time specialization for free , 1999, PLDI '99.

[16]  William I. Nowicki,et al.  NFS: Network File System Protocol specification , 1989, RFC.

[17]  Jacques Noyé,et al.  Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity , 1997 .

[18]  Julia L. Lawall Faster Fourier Transforms via Automatic Program Specialization , 1998, Partial Evaluation.

[19]  Calton Pu,et al.  Fast, optimized Sun RPC using automatic program specialization , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[20]  Renaud Marlet,et al.  Combining Program and Data Specialization , 1999, High. Order Symb. Comput..

[21]  Charles Consel,et al.  A general approach for run-time specialization and its application to C , 1996, POPL '96.

[22]  Willy Zwaenepoel,et al.  The peregrine high‐performance RPC system , 1993, Softw. Pract. Exp..

[23]  Markus Mock,et al.  A retrospective on: "an evaluation of staged run-time optimizations in DyC" , 2004, SIGP.

[24]  Todd A. Proebsting,et al.  USC: a universal stub compiler , 1994, SIGCOMM 1994.

[25]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.

[26]  David D. Clark,et al.  Architectural considerations for a new generation of protocols , 1990, SIGCOMM '90.

[27]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

[28]  Jacques Noyé,et al.  Effective Specialization of Realistic Programs via Use Sensitivity , 1997, SAS.

[29]  Semantics-Based Program Manipulation Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation (PEPM '97), Amsterdam, The Netherlands, June 12-13, 1997 , 1997, PEPM.

[30]  Todd A. Proebsting,et al.  USC: A Universal Stub Compiler , 1994, SIGCOMM.

[31]  Jacques Noyé,et al.  Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity , 2000, Theor. Comput. Sci..

[32]  Charles Consel,et al.  Partial evaluation for software engineering , 1998, CSUR.

[33]  Calton Pu,et al.  Optimistic incremental specialization: streamlining a commercial operating system , 1995, SOSP.

[34]  Henry M. Levy,et al.  Limits to low-latency communication on high-speed networks , 1993, TOCS.

[35]  Olivier Danvy,et al.  Tutorial notes on partial evaluation , 1993, POPL '93.

[36]  Jacques Noyé,et al.  A Uniform Approach for Compile-Time and Run-Time Specialization , 1996, Dagstuhl Seminar on Partial Evaluation.

[37]  Michael Burrows,et al.  Performance of Firefly RPC , 1989, SOSP '89.