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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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.
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.
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.
A. D. Birrell and B. J. Nelson. Implementing remote procedure calls. ACM Transactions on Computer Systems, 2(1), Feb. 1984.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
A. Gokhale and D. C. Schmidt. Measuring the performance of communication middleware on high-speed networks. Computer Communication Review, 26(4), Oct. 1996.
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.
B. Janssen and M. Spreitzer. ILU 2.0alpha8 Reference Manual. Xerox Corporation, May 1996. ftp://ftp.parc.xerox.com/pub/ilu/ilu.html.
J. Liedtke. Improving IPC by kernel design. In Proc. of the 14th ACM Symp. on Operating Systems Principles, Asheville, NC, Dec. 1993.
Message Passing Interface Forum. MPI-2: Extensions to the Message-Passing Interface, July 1997. http://www.mpi-forum.org/.
Object Management Group. The Common Object Request Broker: Architecture and Specification, 2.0 edition, July 1995.
Object Management Group. Event service specification. In CORBAservices Specification, chapter 4. Object Management Group, Dec. 1997.
Open Software Foundation and Carnegie Mellon University, Cambridge, MA. Mach 3 Server Writer’s Guide, Jan. 1992.
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.
R. Srinivasan. RPC: Remote procedure call protocol specification version 2. Technical Report RFC 1831, Sun Microsystems, Inc., Aug. 1995.
Sun Microsystems, Inc. ONC+ Developer’s Guide, Nov. 1995.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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