Skip to main content

Flexible and Optimized IDL Compilation for Distributed Applications

  • Conference paper
  • First Online:
Languages, Compilers, and Run-Time Systems for Scalable Computers (LCR 1998)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1511))

Abstract

The author of a distributed system is often faced with a dilemma when writing the system’s communication code. If the code is written by hand (e.g., using Active Messages) or partly by hand (e.g., using mpi) then the speed of the application may be maximized, but the human effort required to implement and maintain the system is greatly increased. On the other hand, if the code is generated using a high-level tool (e.g., a corba idl compiler) then programmer efiort will be reduced, but the performance of the application may be intolerably poor. The tradeoff between system performance and development effort arises because existing communication middleware is ineffcient, imposes excessive presentation layer overhead, and therefore fails to expose much of the underlying network performance to application code. Moreover, there is often a mismatch between the desired communication style of the application (e.g., asynchronous message passing) and the communication style of the code produced by an idl compiler (synchronous remote procedure call). We believe that this need not be the case, but that established optimizing compiler technology can be applied and extended to attack these domain-specific problems.

We have implemented Flick, a flexible and optimizing idl compiler, and are using it to explore techniques for producing high-performance code for distributed and parallel applications. Flick produces optimized code for marshaling and unmarshaling data; experiments show that Flickgenerated stubs can marshal data between 2 and 17 times as fast as stubs produced by other idl compilers. Further, because Flick is implemented as a “kit” of components, it is possible to extend the compiler to produce stylized code for many different application interfaces and underlying transport layers. In this paper we outline a novel approach for producing “decomposed” stubs for a distributed global memory service.

This research was supported in part by the Defense Advanced Research Projects Agency, monitored by the Department of the Army under contract number DABT6394C0058, and Air Force Research Laboratory, Rome Research Site, USAF, under agreement number F306029620269. The U.S. Government is authorized to reproduce and distribute reprints for Governmental purposes notwithstanding any copyright annotation hereon.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young. Mach: A new kernel foundation for UNIX development. In Proc. of the Summer 1986 USENIX Conf., pages 93–112, June 1986.

    Google Scholar 

  2. D. C. Anderson, J. S. Chase, S. Gadde, A. J. Gallatin, K. G. Yocum, and M. J. Feeley. Cheating the I/O bottleneck: Network storage with Trapeze/Myrinet. In Proc. of the USENIX 1998 Annual Technical Conf., pages 143–154, New Orleans, LA, July 1998.

    Google Scholar 

  3. J. S. Auerbach and J. R. Russell. The Concert signature representation: IDL as an intermediate language. In Proc. of the Workshop on Interface Definition Languages, pages 1–12, Jan. 1994.

    Google Scholar 

  4. A. D. Birrell and B. J. Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1), Feb. 1984.

    Google Scholar 

  5. G. Buzzard, D. Jacobson, M. Mackey, S. Marovich, and J. Wilkes. An implementation of the Hamlyn sender-managed interface architecture. In Proc. of the Second Symp. on Operating Systems Design and Implementation, pages 245–259, Seattle, WA, Oct. 1996. USENIX Assoc.

    Google Scholar 

  6. J. Carter, A. Ranganathan, and S. Susarla. Khazana: An infrastructure for building distributed services. In Proc. of the Eighteenth International Conf. on Distributed Computing Systems, May 1998.

    Google Scholar 

  7. K. M. Chandy and C. Kesselman. CC++: A declarative concurrent object oriented programming notation. Technical Report CS-TR-92-01, California Institute of Technology, Mar. 1993.

    Google Scholar 

  8. D. D. Clark and D. L. Tennenhouse. Architectural considerations for a new generation of protocols. In Proc. of the SIGCOMM’ 90 Symp., pages 200–208, 1990.

    Google Scholar 

  9. D. E. Culler, A. Dusseau, S. C. Goldstein, A. Krishnamurthy, S. Lumetta, T. von Eicken, and K. Yelick. Parallel programming in Split-C. In Proceedings of Super-computing’ 93, pages 262–273, Portland, OR, Nov. 1993.

    Google Scholar 

  10. E. Eide, K. Frei, B. Ford, J. Lepreau, and G. Lindstrom. Flick: A flexible, optimizing IDL compiler. In Proc. ACM SIGPLAN Conf. on Programming Language Design and Implementation, pages 44–56, Las Vegas, NV, June 1997.

    Google Scholar 

  11. D. R. Engler, M. F. Kaashoek, and J. O’Toole Jr. Exokernel: An operating system architecture for application-level resource management. In Proc. of the 15th ACM Symp. on Operating Systems Principles, pages 251–266, Copper Mountain, CO, Dec. 1995.

    Google Scholar 

  12. M. J. Feeley, W. E. Morgan, F. H. Pighin, A. R. Karlin, and H. M. Levy. Implementing global memory management in a workstation cluster. In Proc. of the 15th ACM Symp. on Operating Systems Principles, pages 201–212, Copper Mountain, CO, Dec. 1995.

    Google Scholar 

  13. B. Ford, M. Hibler, and J. Lepreau. Using annotated interface definitions to optimize RPC. Technical Report UUCS-95-014, University of Utah Department of Computer Science, Mar. 1995.

    Google Scholar 

  14. B. Ford, M. Hibler, and J. Lepreau. Using annotated interface definitions to optimize RPC. In Proc. of the 15th ACM Symp. on Operating Systems Principles, page 232, 1995. Poster.

    Google Scholar 

  15. B. Ford, M. Hibler, J. Lepreau, P. Tullmann, G. Back, and S. Clawson. Microkernels meet recursive virtual machines. In Proc. of the Second Symp. on Operating Systems Design and Implementation, pages 137–151, Seattle, WA, Oct. 1996. USENIX Assoc.

    Google Scholar 

  16. I. T. Foster and K. M. Chandy. Fortran M: A language for modular parallel programming. Journal of Parallel and Distributed Computing, 25(1), Feb. 1995.

    Google Scholar 

  17. I. T. Foster, C. Kesselman, and S. Tuecke. The Nexus task-parallel runtime system. In Proceedings of First International Workshop on Parallel Processing, pages 457–462, 1994.

    Google Scholar 

  18. G. Geist and V. Sunderam. The PVM system: Supercomputer level concurrent computation on a heterogenous network of workstations. In Sixth Annual Distributed-Memory Computer Conference, pages 258–261, 1991.

    Google Scholar 

  19. A. Gokhale and D. C. Schmidt. Measuring the performance of communication middleware on high-speed networks. Computer Communication Review, 26(4), Oct. 1996.

    Google Scholar 

  20. A. Gokhale and D. C. Schmidt. Optimizing the performance of the CORBA Internet Inter-ORB Protocol over ATM. Technical Report WUCS-97-09, Washington University Department of Computer Science, St. Louis, MO, 1997.

    Google Scholar 

  21. B. Janssen and M. Spreitzer. ILU 2.0alpha8 Reference Manual. Xerox Corporation, May 1996. ftp://ftp.parc.xerox.com/pub/ilu/ilu.html.

  22. J. Liedtke. Improving IPC by kernel design. In Proc. of the 14th ACM Symp. on Operating Systems Principles, Asheville, NC, Dec. 1993.

    Google Scholar 

  23. Message Passing Interface Forum. MPI-2: Extensions to the Message-Passing Interface, July 1997. http://www.mpi-forum.org/.

  24. Object Management Group. The Common Object Request Broker: Architecture and Specification, 2.0 edition, July 1995.

    Google Scholar 

  25. Object Management Group. Event service specification. In CORBAservices Specification, chapter 4. Object Management Group, Dec. 1997.

    Google Scholar 

  26. Open Software Foundation and Carnegie Mellon University, Cambridge, MA. Mach 3 Server Writer’s Guide, Jan. 1992.

    Google Scholar 

  27. D. C. Schmidt, T. Harrison, and E. Al-Shaer. Object-oriented components for high-speed network programming. In Proceedings of the First Conference on Object-Oriented Technologies and Systems, Monterey, CA, June 1995. USENIX Assoc.

    Google Scholar 

  28. R. Srinivasan. RPC: Remote procedure call protocol specification version 2. Technical Report RFC 1831, Sun Microsystems, Inc., Aug. 1995.

    Google Scholar 

  29. Sun Microsystems, Inc. ONC+ Developer’s Guide, Nov. 1995.

    Google Scholar 

  30. M. R. Swanson and L. B. Stoller. Direct deposit: A basic user-level protocol for carpet clusters. Technical Report UUCS-95-003, University of Utah Department of Computer Science, Mar. 1995.

    Google Scholar 

  31. T. von Eicken, D. E. Culler, S. C. Goldstein, and K. E. Schauser. Active messages: A mechanism for integrated communication and computation. In Proc. of the 19th International Symp. on Computer Architecture, pages 256–266, May 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Eide, E., Lepreau, J., Simister, J.L. (1998). Flexible and Optimized IDL Compilation for Distributed Applications. In: O’Hallaron, D.R. (eds) Languages, Compilers, and Run-Time Systems for Scalable Computers. LCR 1998. Lecture Notes in Computer Science, vol 1511. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-49530-4_21

Download citation

  • DOI: https://doi.org/10.1007/3-540-49530-4_21

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-65172-7

  • Online ISBN: 978-3-540-49530-7

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics