Babel Middleware
Babel is an open source middleware system serving the scientific computing community. As a language interoperability tool, Babel enables the arbitrary mixing of software libraries written in C/C++, Fortran, Python, and Java.[1][2] As a distributed computing platform, Babel provides a language-neutral Remote Method Invocation (RMI) scheme similar to Java's RMI which allows third-party plug-ins to specify custom data encodings and network protocols.[3]
Developer(s) | LLNL |
---|---|
Stable release | 2.0.0
/ January 2012 |
Operating system | cross-platform |
Type | middleware |
License | LGPL |
Website | computation |
How it works
Babel requires developers to use an interface description language to specify the platform and language neutral interface to code. Babel uses a custom dialect called SIDL (Scientific Interface Definition Language), which has adaptations specific to computational science and engineering applications. The Babel tool parses the SIDL specification to generate source code which provides the glue between programming languages.
Babel works on all known POSIX and Unix variants, including Linux, Mac OS X, AIX, IRIX, Solaris, Tru64, Cray's XT4, IBM's Blue Gene, and many commodity clusters. Babel does not require special compiler or linker technology and works with GNU, Intel, IBM, PathScale, PGI, and many other compilers. Babel is distributed under an LGPL license.
Impact
Babel won an R&D 100 Award in 2006.[4] [5] It has been used in diverse computational applications such as accelerator beam dynamics, cell biology, chemistry, climate, electron effects, fusion, geomagnetics, materials, nuclear power plants, radio astronomy, and subsurface transport as well as infrastructure such as frameworks, meshing, solvers, sparse linear algebra, and sourcecode refactoring.[6] Babel is also redistributed with some customer applications, the CCA framework, and Debian Linux.
History
Babel was started as an internal research project on software components at Lawrence Livermore National Laboratory in 1999. The first public (alpha) release of Babel was in 2001. Also in 2001 it secured funding from SciDAC (Scientific Discovery Through Advanced Computing) along with its collaborators in the CCA Forum (Common Component Architecture Forum).
Community
Babel development and maintenance is currently funded by United States Department of Energy, but relies heavily on an open source community. Contributors hail from Sandia National Laboratories, Argonne National Laboratory, Oak Ridge National Laboratory, Tech-X Corp, MIT, University of Utah, and more. The Babel development team maintain open software repositories, mailing lists, and issue trackers.
References
- Babel Users' Guide
- Epperly, Thomas GW; Kumfert, Gary; Dahlgren, Tamara; Ebner, Dietmar; Leek, Jim; Prantl, Adrian; Kohn, Scott (2011). "High-performance language interoperability for scientific computing through Babel". The International Journal of High Performance Computing Applications. 26 (3): 260–274. doi:10.1177/1094342011414036.
- Babel RMI paper at IPDPS '07
- R&D 100 Award Archive
- "LLNL Public Affairs Archive". Archived from the original on 2010-05-28. Retrieved 2008-08-17.
- CCA Impact paper at SciDAC 06