48 research outputs found

    Fast Native Function Calls for the Babel Language Interoperability Framework Fast Native Function Calls for the Babel Language Interoperability Framework

    No full text
    Abstract Babel is an open-source language interoperability framework tailored to the needs of high-performance scientific computing. Its primary focus is on fast in-process communication across various languages. In doing so, some additional call overhead is often inevitable. For several pairs of languages, however, shortcuts exist that allow for more efficient function calls. As Babel is a dynamic framework, the particular set of languages involved is often only known at runtime. In this work, we present a simple yet very effective optimization that can be used to reduce the call overhead between various pairs of languages. In particular, our optimization is applicable if caller and callee are implemented in the same language. We implement and evaluate these techniques for C++ and Python. When applicable, our optimization virtually eliminates the overhead for a small memory cost. Compared to previous versions of Babel, this means a speedup ranging from about 5x for simple numerical argument types up to roughly 125x for strings

    Toward the automated generation of components from existing source code

    No full text
    A major challenge to achieving widespread use of software component technology in scientific computing is an effective migration strategy for existing, or legacy, source code. This paper describes initial work and challenges in automating the identification and generation of components using the ROSE compiler infrastructure and the Babel language interoperability tool. Babel enables calling interfaces expressed in the Scientific Interface Definition Language (SIDL) to be implemented in, and called from, an arbitrary combination of supported languages. ROSE is used to build specialized source-to-source translators that (1) extract a SIDL interface specification from information implicit in existing C++ source code and (2) transform Babel’s output to include dispatches to the legacy code.

    High-Performance Language Interoperability for Scientific Computing through Babel

    No full text
    High-performance scientific applications are usually built from software modules written in multiple programming languages. This raises the issue of language interoperability which involves making calls between languages, converting basic types, and bridging disparate programming models. Babel provides a feature-rich, extensible, high-performance solution to the language interoperability problem currently supporting C, C++, FORTRAN 77, Fortran 90/95, Fortran 2003/2008, Python, and Java. Babel supports object-oriented programming features and interface semantics with runtime enforcement. In addition to in-process language interoperability, Babel includes remote method invocation to support hybrid parallel and distributed computing paradigms. </jats:p

    How the common component architecture advances computational science

    No full text
    Abstract. Computational chemists are using Common Component Architecture (CCA) technology to increase the parallel scalability of their application ten-fold. Combustion researchers are publishing science faster because the CCA manages software complexity for them. Both the solver and meshing communities in SciDAC are converging on community interface standards as a direct response to the novel level of interoperability that CCA presents. Yet, there is much more to do before component technology becomes mainstream computational science. This paper highlights the impact that the CCA has made on scientific applications, conveys some lessons learned from five years of the SciDAC program, and previews where applications could go with the additional capabilities that the CCA has planned for SciDAC 2

    Small Molecule Catalysts with Therapeutic Potential

    Get PDF
    Catalysts are employed in many areas of research and development where they combine high efficiency with often astonishing selectivity for their respective substrates. In biology, biocatalysts are omnipresent. Enzymes facilitate highly controlled, sophisticated cellular processes, such as metabolic conversions, sensing and signalling, and are prominent targets in drug development. In contrast, the therapeutic use of catalysts per se is still rather limited. Recent research has shown that small molecule catalytic agents able to modulate the redox state of the target cell bear considerable promise, particularly in the context of inflammatory and infectious diseases, stroke, ageing and even cancer. Rather than being “active” on their own in a more traditional sense, such agents develop their activity by initiating, promoting, enhancing or redirecting reactions between biomolecules already present in the cell, and their activity therefore depends critically on the predisposition of the target cell itself. Redox catalysts, for instance, preferably target cells with a distinct sensitivity towards changes in an already disturbed redox balance and/or increased levels of reactive oxygen species. Indeed, certain transition metal, chalcogen and quinone agents may activate an antioxidant response in normal cells whilst at the same time triggering apoptosis in cancer cells with a different pre-existing “biochemical redox signature” and closer to the internal redox threshold. In pharmacy, catalysts therefore stand out as promising lead structures, as sensor/effector agents which are highly effective, fairly selective, active in catalytic, i.e., often nanomolar concentrations and also very flexible in their structural design
    corecore