3,573 research outputs found

    Understanding and Exploiting Optimal Function Inlining

    Get PDF

    Scrap your boilerplate with object algebras

    Get PDF
    htmlabstractTraversing complex Abstract Syntax Trees (ASTs) typically requires large amounts of tedious boilerplate code. For many operations most of the code simply walks the structure, and only a small portion of the code implements the functional- ity that motivated the traversal in the first place. This paper presents a type-safe Java framework called Shy that removes much of this boilerplate code. In Shy Object Algebras are used to describe complex and extensible AST structures. Using Java annotations Shy generates generic boilerplate code for various types of traversals. For a concrete traversal, users of Shy can then inherit from the generated code and over- ride only the interesting cases. Consequently, the amount of code that users need to write is significantly smaller. Moreover, traversals using the Shy framework are also much more structure shy, becoming more adaptive to future changes or extensions to the AST structure. To prove the effectiveness of the approach, we applied Shy in the implementation of a domain-specific questionnaire language. Our results show that for a large number of traversals there was a significant reduction in the amount of user-defined code

    Speculative Staging for Interpreter Optimization

    Full text link
    Interpreters have a bad reputation for having lower performance than just-in-time compilers. We present a new way of building high performance interpreters that is particularly effective for executing dynamically typed programming languages. The key idea is to combine speculative staging of optimized interpreter instructions with a novel technique of incrementally and iteratively concerting them at run-time. This paper introduces the concepts behind deriving optimized instructions from existing interpreter instructions---incrementally peeling off layers of complexity. When compiling the interpreter, these optimized derivatives will be compiled along with the original interpreter instructions. Therefore, our technique is portable by construction since it leverages the existing compiler's backend. At run-time we use instruction substitution from the interpreter's original and expensive instructions to optimized instruction derivatives to speed up execution. Our technique unites high performance with the simplicity and portability of interpreters---we report that our optimization makes the CPython interpreter up to more than four times faster, where our interpreter closes the gap between and sometimes even outperforms PyPy's just-in-time compiler.Comment: 16 pages, 4 figures, 3 tables. Uses CPython 3.2.3 and PyPy 1.

    Systems aspects of COBE science data compression

    Get PDF
    A general approach to compression of diverse data from large scientific projects has been developed and this paper addresses the appropriate system and scientific constraints together with the algorithm development and test strategy. This framework has been implemented for the COsmic Background Explorer spacecraft (COBE) by retrofitting the existing VAS-based data management system with high-performance compression software permitting random access to the data. Algorithms which incorporate scientific knowledge and consume relatively few system resources are preferred over ad hoc methods. COBE exceeded its planned storage by a large and growing factor and the retrieval of data significantly affects the processing, delaying the availability of data for scientific usage and software test. Embedded compression software is planned to make the project tractable by reducing the data storage volume to an acceptable level during normal processing

    Process Monitoring of Continuous Flow Organic Syntheses by means of Inline Fiber Optical Raman Spectroscopy

    Get PDF
    The objective of the current study was to investigate the feasibility of the inline optical fiber Raman spectroscopy as a tool for the process monitoring of the continuous flow organic syntheses. The synthesis of 2-bromo-3,4,5- trimethoxytoluene (product) was studied as a model reaction under a set of different conditions. The reaction was carried out under the batch as well as in the multi jet oscillating disc (MJOD) milli reactor. The reaction was varied by doubling the concentration of the substrate; 3,4,5- trimethoxytoluene (0.15M, 0.3M and 0.6M) whereas the concentration of the solvent (acetic anhydride) was kept constant. The Raman instrument was adjusted to record five spectra per minute. The recorded spectral data was then preprocessed employing the second order differentiation to minimize the band overlapping in the spectra. Multivariate data analysis namely, Principal Component Analysis (PCA), was used to evaluate the spectra due to the presence of overlapping bands for the purpose of process monitoring. The measurement system was tested against the possible process disturbances, the oscillator and the feeding pumps. PCA showed that these disturbances had no impact on the measurement system. The Raman instrument successfully monitored the different organic reactions and discriminated them on the basis of the type of variation occurred. The Raman frequencies; 675, 1050 and 550 cm-1 were assigned to the solvent, substrate and the product. The various reactions undergoing any disagreement were differentiated from the normal reactions mainly due to the temperature effect, malfunctioning of the pump, lower conversion of the substrate, lower yield of the product, formation of the intermediates etc. The offline results obtained from the NMR spectroscopy verified the outcomes of Raman measurements. Thus, it was concluded that the optical fiber Raman spectroscopy proved to be a reliable, rapid and sensitive inline analytical method for the monitoring of the organic processes. Raman spectroscopy along with an appropriate chemometric tool could be employed as a Process Analytical Technology (PAT) in the pharmaceutical and fine chemical industry.JMAMN-QALQAL39
    • 

    corecore