Fast native function calls for the Babel language interoperability framework

D. Ebner, T. Epperly
{"title":"Fast native function calls for the Babel language interoperability framework","authors":"D. Ebner, T. Epperly","doi":"10.1109/GRID.2010.5698006","DOIUrl":null,"url":null,"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.","PeriodicalId":6372,"journal":{"name":"2010 11th IEEE/ACM International Conference on Grid Computing","volume":"178 1","pages":"329-338"},"PeriodicalIF":0.0000,"publicationDate":"2010-07-02","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"1","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2010 11th IEEE/ACM International Conference on Grid Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/GRID.2010.5698006","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 1

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.
Babel语言互操作性框架的快速本机函数调用
Babel是一个为高性能科学计算需求量身定制的开源语言互操作性框架。它的主要焦点是跨各种语言的快速进程内通信。在这样做的过程中,一些额外的调用开销通常是不可避免的。然而,对于一些语言对,存在允许更有效的函数调用的快捷方式。由于Babel是一个动态框架,所涉及的特定语言集通常只在运行时才知道。在这项工作中,我们提出了一个简单但非常有效的优化方法,可以用来减少不同语言对之间的调用开销。特别是,如果调用者和被调用者用同一种语言实现,则我们的优化是适用的。我们在c++和Python中实现并评估了这些技术。在适用的情况下,我们的优化实际上消除了小内存成本的开销。与以前版本的Babel相比,这意味着加速范围从简单数值参数类型的5倍到字符串类型的125倍。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信