48 research outputs found
Fast Native Function Calls for the Babel Language Interoperability Framework Fast Native Function Calls for the Babel Language Interoperability Framework
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
Implementation of an Ascend interpreter
technical repor
Toward the automated generation of components from existing source code
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
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
Recommended from our members
Data Management and Simulation Support Accelerating Carbon Capture Through Computing
The Carbon Capture Simulation Initiative (CCSI) project has developed and deployed scientific infrastructure called the CCSI Toolset. The CCSI Toolset provides state-of-the-art computational modeling and simulation tools to accelerate the commercialization of carbon capture technologies from discovery to development, demonstration, and ultimately the widespread deployment to hundreds of power plants. Carbon capture technologies have the potential to dramatically reduce the carbon emissions from power plants. The CCSI Toolset provides end users in industry with a comprehensive, integrated suite of leading-edge, scientifically validated models with simulation, uncertainty quantification, optimization, risk analysis and decision making support. The CCSI Toolset has at its core an integrated framework that enables execution of simulations and workflows including optimization and uncertainty parameter sweeps using a wide variety of computing platforms including desktops, clusters, Clouds, and HPC systems. The integration framework enables the running of a variety of commercial process simulation packages as well as custom simulators. Moreover, the framework enables scientists to run and manage thousands of concurrent simulations to perform optimizations and uncertainty quantification. Components of the CCSI Toolset are connected through the use of a data management system that stores data to a repository and enables the tracking of provenance for each simulation as well as its associated components. The data management system tracks all the configurations, models, simulations, and results created during the design of a carbon capture system and supports the design life-cycle as well as decision making. The primary contribution of this paper is thus the design and implementation of the integration framework within the CCSI Toolset, which provides both data management and simulation support for CCSI. This integration framework has been deployed and is in use by several groups of researchers and commercial entities
How the common component architecture advances computational science
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
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