Results 1 - 10
of
10
Generating Efficient Protocol Code from an Abstract Specification
, 1996
"... A protocol compiler takes as input an abstract specification of a protocol and generates an implementation of that protocol. Protocol compilers usually produce inefficient code both in terms of code speed and code size. In this paper, we show that by compiling a modular specification into an integra ..."
Abstract
-
Cited by 57 (0 self)
- Add to MetaCart
A protocol compiler takes as input an abstract specification of a protocol and generates an implementation of that protocol. Protocol compilers usually produce inefficient code both in terms of code speed and code size. In this paper, we show that by compiling a modular specification into an integrated automaton and by selectively optimizing its different transitions, it is possible to automatically generate efficient protocol code. Our protocol compiler takes as input a protocol specification in the synchronous language Esterel and compiles it into a C implementation. This process is divided into two stages. First, the specicfiation is compiled into an integrated automaton by the Esterel front end. This automaton is then optimized and converted into an efficient C implementation by a protocol code optimizer called HIPPCO. HIPPCO improves performance and reduces code size by simultaneously optimizing the performance of common path whi...
Demultiplexed Architectures: A Solution for Efficient STREAMS Based Communication Stacks
- IEEE Network Magazine
, 1997
"... : This paper analyzes the efficiency of various high performance implementation techniques for the communication system of UNIX workstations. Using an Open System implies that a certain compatibility level is required from the protocol, user interface, and implementation framework. These constraints ..."
Abstract
-
Cited by 20 (0 self)
- Add to MetaCart
: This paper analyzes the efficiency of various high performance implementation techniques for the communication system of UNIX workstations. Using an Open System implies that a certain compatibility level is required from the protocol, user interface, and implementation framework. These constraints limit the opportunities to design a high performance communication system. We have designed an experimental platform around the TCP/IP protocol suite, using the STREAMS environment. A BSD TCP/IP stack and a classic STREAMS based TCP/IP stack serve as reference implementations for performance comparisons. We explain why the efficiency of some high performance implementation techniques we applied to this platform is limited. The impacts of the hardware architecture, of the operating system, and of the communication stack architecture on performances are analyzed. It is shown that the efficiency of data transmission would benefit from more simplicity and more synchronism in the communication e...
Compact and Efficient Presentation Conversion Code
, 1997
"... Presentation conversion is a key operation in any development environment for distributed applications, such as Corba, Java-RMI, DCE or ASN.1-based environments. It is also well-known performance bottleneck in high-speed network communication. Presentation conversion code is usually generated by an ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Presentation conversion is a key operation in any development environment for distributed applications, such as Corba, Java-RMI, DCE or ASN.1-based environments. It is also well-known performance bottleneck in high-speed network communication. Presentation conversion code is usually generated by an automatic code generation tool referred to as stub compiler. The quality of the code generated by a stub compiler is often very low. The code is either very slow, or has a large code size, or both. This paper describes the design and experimental evaluation of an optimization stage for a stub compiler. The optimization stage automates the trade-off between code size and execution speed of the code generated by the compiler. This is achieved by using a hybrid of two implementation alternatives for presentation conversion routines (interpreted and procedure-driven code). The optimization problem is modeled as a Knapsack problem. A Markov model in combination with a heuristic branch predictor is used for...
HIPPCO: A High Performance Protocol Code Optimizer
, 1995
"... This report presents HIPPCO, an High Performance Protocol Code Optimizer. HIPPCO belongs to the HIPPARCH compiler. HIPPARCH is a tool which proposes to generate automatically from the application communication requirements and the network characteristics an efficient implementation of a customized p ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
This report presents HIPPCO, an High Performance Protocol Code Optimizer. HIPPCO belongs to the HIPPARCH compiler. HIPPARCH is a tool which proposes to generate automatically from the application communication requirements and the network characteristics an efficient implementation of a customized protocol. HIPPCO is the last stage of this protocol compiler. It takes as input a description of the protocol automaton, optimizes it and generates an implementation in C. HIPPCO decomposes the protocol automaton in two parts: the common and uncommon path. It then uses this decomposition to apply a set of optimizations toward a good code speed/code size tradeoff. In the first part of this report, the code speed optimizations are described. Those optimizations reduces the number of executed instructions and improves the instruction cache and pipeline behaviors. In the second part, a comparison of HIPPCO automatically generated implementations of TCP are compared with the BSD implementation. ...
Automating Performance Optimisation by Heuristic Analysis of A Formal Specification
, 1996
"... Many advantages have been given for using formal specifications in the design and implementation of communication systems. Performance is usually not among them. It is commonly believed that code generated by an automatic tool from a formal specification is inherently slower than code implemented ma ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Many advantages have been given for using formal specifications in the design and implementation of communication systems. Performance is usually not among them. It is commonly believed that code generated by an automatic tool from a formal specification is inherently slower than code implemented manually. This paper gives experimental evidence that this contention might be false. The key idea is to integrate heuristics used by a human programmer when optimizing code into the code generation tool. This way, the tool can generate code that is competitive with code written by a human programmer, and even better for specications of sufficient complexity. Experiments were conducted using the presentation conversion routines generated by an ASN.1 compiler. The paper describes the design and implementation of an optimisation stage that automates the trade-off between code size and execution speed in these routines. For this purpose, a heuristic method to predict the frequency of type usage is dev...
Demultiplexed Architectures: A Solution for Efficient STREAMS Based Communication Stacks
"... Abstract: This paper analyzes the efficiency of various high performance implementation techniques for the communication system of UNIX workstations. Using an Open System implies that a certain compatibility level is required from the protocol, user interface, and implementation framework. These con ..."
Abstract
- Add to MetaCart
Abstract: This paper analyzes the efficiency of various high performance implementation techniques for the communication system of UNIX workstations. Using an Open System implies that a certain compatibility level is required from the protocol, user interface, and implementation framework. These constraints limit the opportunities to design a high performance communication system. We have designed an experimental platform around the TCP/IP protocol suite, using the STREAMS environment. A BSD TCP/IP stack and a classic STREAMS based TCP/IP stack serve as reference implementations for performance comparisons. We explain why the efficiency of some high performance implementation techniques we applied to this platform is limited. The impacts of the hardware architecture, of the operating system, and of the communication stack architecture on performances are analyzed. It is shown that the efficiency of data transmission would benefit from more simplicity and more synchronism in the communication environment, from direct data paths between the applications and the device drivers, and from a limited ILP integration.
Automatic Protocol Code Optimizations
"... This paper is focused on the compiler optimization stage. More specifically, we present the optimization techniques which transform protocol internal tree representation in order to generate fast implementation. Our approach consists of increasing the execution speed of the most frequently used path ..."
Abstract
- Add to MetaCart
This paper is focused on the compiler optimization stage. More specifically, we present the optimization techniques which transform protocol internal tree representation in order to generate fast implementation. Our approach consists of increasing the execution speed of the most frequently used path (the common path) and minimizing the code size of the less frequently used path (the uncommon path). The optimizations presented in this paper concern the speed optimization of the common path. They restructure the initial protocol tree, generated by the front-end compiler, to improve cache locality and reduce the average number of instructions to execute. We show how programmers' expertise can be formalized and used to automatically generate customized code. In the following section, we present the context of our work by describing the Hipparch protocol compiler. In section 3, we introduce our optimization approach: a common/uncommon path approach. Section 4, describes the dioeerent tree transformations optimizing the speed of the generated code. In section 5, we compare the performance of few HIPPCO generated versions
Génération Automatique d'Implantations Optimisées de Protocoles
"... Un compilateur de protocoles prend en entr#e une sp#cication formelle d'un protocole et g#n#re automatiquement son implantation. Les compilateurs de protocoles produisent g#n#ralement des implantations tr#s peu performantes en terme de vitesse et de taille de code. Dans cet article, nous mon ..."
Abstract
- Add to MetaCart
Un compilateur de protocoles prend en entr#e une sp#cication formelle d'un protocole et g#n#re automatiquement son implantation. Les compilateurs de protocoles produisent g#n#ralement des implantations tr#s peu performantes en terme de vitesse et de taille de code. Dans cet article, nous montrons que la combinaison de deux approches rend la g#n#ra tion automatique d'implantations performantes possible. Ces techniques sont i) l'utilisation d'un compilateur synchrone qui g#n#re # partir de la sp#cication modulaire un automate minimum (au lieu de plusieurs automates ind#pendants), et ii) l'utilisation d'un optimiseur qui am#liore la structure de l'automate et g#n#re une implantation C optimis#e. Nous avons d#velopp# un compilateur de protocoles qui combine ces deux techniques. Ce compilateur prend en entr#e une sp#cication de protocole #crite en Esterel. La sp#ci cation est compil#e en un automate int#gr# par le premi#re passe du compilateur Esterel. L'automate est ensuite opti...