Flexible and Optimized IDL Compilation for Distributed Applications
نویسندگان
چکیده
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 eeort 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 eeort will be reduced , but the performance of the application may be intolerably poor. The tradeoo between system performance and development eeort arises because existing communication middleware is ineecient, 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-speciic problems. We have implemented Flick, a exible 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 Flick-generated 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 diierent application interfaces and underlying transport layers. In this paper we outline a novel approach for producing \decomposed" stubs for a distributed global memory service.
منابع مشابه
Flexible IDL compilation for complex communication patterns
Distributed applications are complex by nature, so it is essential that there be effective software development tools to aid in the construction of these programs. Commonplace “middleware” tools, however, often impose a tradeoff between programmer productivity and application performance. For instance, many CORBA IDL compilers generate code that is too slow for high-performance systems. More im...
متن کاملMockingbird: Flexible Stub Compilation from Pairs of Declarations
Mockingbird is a prototype tool for developing interlanguage and distributed applications. It compiles stubs from pairs of interface declarations, allowing existing data types to be reused on both sides of every interface. Other multilanguage stub compilers impose data types on the application, complicating development. Mockingbird supports C/C++, Java, and CORBA IDL, and can be extended to oth...
متن کاملOptimizing a CORBA IIOP Protocol Engine for Minimal Footprint Multimedia Systems
Communication software for hand-held devices must be flexible and efficient to deliver the necessary Quality of Service (QoS) to multimedia applications such as real-time audio and video, video on-demand, electronic mail and fax, and Internet telephony. CORBA Object Request Brokers (ORBs) are an emerging middleware standard targeted for distributed applications. The stringent memory constraints...
متن کاملTowards a Dynamic CORBA Component Platform
Distributed object computing (DOC) middleware, even if commonly used, has several drawbacks to support large and complex distributed applications: no visibility of distributed object interconnections, no implementation separation between business logic and system services, and no application deployment process. In response to this, DOC middleware is evolving to distributed component computing (...
متن کاملPLDI ' 97 Flick : A Flexible , Optimizing IDL
Interface deenition language (IDL) compilers generate \stub functions" that provide separate communicating processes with the abstraction of local object invocation or procedure call. Unfortunately, these compilers have not kept pace with recent advances in fast network technologies and component-based software design. Typical IDL compilers do little optimization because they assume that interp...
متن کامل