Gary Kumfert with Bill Bosl, Tammy Dahlgren, Tom Epperly, Scott Kohn, Steve Smith

2533 days ago, 909 views
PowerPoint PPT Presentation
Accomplishing Dialect Interoperability with. Gary Kumfert with Bill Bosl, Tammy Dahlgren, Tom Epperly, Scott Kohn, and Steve Smith. Babel's Extension and CCA. Babel gives dialect interoperability, not parts. We work together with CCA to include parallel appropriated bolster

Presentation Transcript

Slide 1

´╗┐Accomplishing Language Interoperability with Gary Kumfert with Bill Bosl, Tammy Dahlgren, Tom Epperly, Scott Kohn, & Steve Smith

Slide 2

Babel's Scope & CCA Babel gives dialect interoperability, not parts. We work together with CCA to include parallel disseminated bolster We additionally give instruments (Quorum & Alexandria) to encourage part advancement and deployment CCA Compliant Frameworks Component Semantics Compilers & Linkers Operating System

Slide 3

Release Announcement C, C++, F77, Python(client) BETA 0.5

Slide 4

babel-0.5.0.tar.gz Babel code generator written in Java Babel runtime library written in ANSI C Docs (negligible) papers, talks, javadoc html babel101 instructional exercise

Slide 5

Hand Coded Language Interoperability JNI Native SWIG Platform Dependent f77 f90 C C++ Python Java

Slide 6

Truly Object Oriented Reference Counting Exception Handling RMI (future) Babel Enabled Language Interoperability f77 f90 C C++ Python Java

Slide 7

Soon!!! Babel Enabled Language Interoperability What's In This Release: f77 f90 C C++ Python Java

Slide 8

Have a code Want to expand their client base Will learn SIDL Want Babel general and capable Have an issue Want to take care of their issue May never observe SIDL Want programming that is simple & dependable Developers Users Babel Has Two Types of Customers

Slide 9

Babel's Design Priorities Performance Developer/User division What's normal for every dialect? Could uncover C cluster structs in C++ style would be SIDL::array<T> layout <> array<item_t> : open array_mixin < array_t, item_t, item_cxx_wrapper_t> { }

Slide 10

Builds on Industry IDL innovation CORBA COM Designed for Scientific Apps complex sorts dynamic multidimensional exhibits SIDL (Scientific Interface Definition Language) form Hello 1.0; bundle Hello { class World { string getMsg(); }

Slide 11

adaptation MySolverLib 0.1.0; import ESI; bundle MySolverLib { interface MatrixGenerator { ... } class OptionDatabase { void getOption( in string name, out string val); } class Vector executes all ESI.Vector { void setOptions( in OptionDatabase db ); } class Bizarre actualizes MatrixGenerator { ... void setData( in array<dcomplex,2> a ); }

Slide 12

SIDL IOR Scientific Interface Definition Language Internal Object Representation XML eXtensible Markup Language Many types of dialect interoperable interfaces Compiler Compatible Human Compatible Web Compatible

Slide 13

...computerized creation through more elevated amount apparatuses ...Type Descriptions on Shared Repositories CCAScript ...mechanized hunt & revelation by cutting edge manufacturers ...Browsing for Types XML empowers...

Slide 14

Stubs If engineer utilized Babel, they additionally have a SIDL record. IORs SIDL Skels Language Interoperability: How Babel Makes it Work Application: client's LOP (Language Of Preference) Implementation: designers LOP (Can be wrappers to legacy code) Application Impls

Slide 15

Stubs IORs Skels Language Interoperability: How Babel Makes it Work Application: client's LOP (Language Of Preference) Implementation: engineers LOP (Can be wrappers to legacy code) Application Client Side Stubs: client's LOP to C Internal Object Representation (IOR): Always in C Server Side Skeletons: interprets IOR (in C) to designer's LOP Impls

Slide 16

How Much Language Interoperability Have We Achieved? Modes in out inout return esteem Basic Types bool roast int long buoy twofold fcomplex dcomplex string dark Extended Types Objects identifications varieties of essential sorts varieties of articles (clusters are multidimensional, no varieties of exhibits) OO Method Dispatch standard last static interfaces classes Exception Handling For All Combinations of Languages C C C++ C++ F77 F77 Python 1431 experiments (and tallying)

Slide 17

Language Interoperability Developer Concerns: Configuration, Packaging, & Deployment User Concerns: Installation Trust What we anticipate, in view of involvement with our tests...

Slide 18

These aren't new issues... Be that as it may, they are on a bigger scale Developer Concerns: Configuration, Packaging, & Deployment User Concerns: Installation Trust

Slide 19

For Example... To bolster Python and Java All libraries must be shared (*.so) not statically connected (*.a) C++ shared libraries are dangerous Exception support is stage/compiler subordinate Linking issues when interoperating with different dialects Can make substantial imparted library to uncatchable exemptions

Slide 20

GNU Make Autoconf design Automake construct Makefiles Libtool shared libraries CUTE custom testing python's own particular form framework java's inherent (broken) make assistant scripts fixes to autoconf, automake & libtool loads of hacks Babel's Configuration/Build

Slide 21

Test History sparc-sun-solaris2.7-gcc babel 0.5.x babel 0.4.x Configure/Build/Repository issues, not programming disappointments!!! IOR Rewrite # Test Cases Date

Slide 22

Problems influence the User as well... How does a client get and introduce "dialect interoperable" programming? Twofold: if provided by designer Source: Assume "arrange; make introduce"? How to interface into application? In the event that any C++ code, must utilize C++ linker Which C++ to utilize? C++ has no sexually transmitted disease twofold interface

Slide 23

C++ F77 Python Java Crux of the issue We're building 21st century innovation... ... utilizing 30 year old devices. C Autoheader libtool (perl/sh) aclocal Automake (perl) Autoconf (M4) Make Bourne shell

Slide 24

Solution Integrated config, assemble, bundle, test and administration framework. no make inside! can have activity make many documents comprehends indexes utilizes genuine database program all perspectives in one dialect MUST BE OPEN SOURCE

Slide 25

In the interim... Babel takes a shot at different stages, just not mechanized config/testing Java code generator (precompiled) ANSI C runtime library (no issue) Babel's tests are (essentially) obsessive most pessimistic scenario cases We didn't make these issues, we simply practice them forcefully

Slide 26

Future Babel: Will Provide More Build Help "babel.make" presently records code created may include extra banners, macros, and so on arrange right now utilized for relapse tests may produce antiquities valuable for designers partner scripts notices

Slide 27

Line Protocol Stubs Unmarshaler IORs Marshaler Skels Line Protocol Farther Future Babel: Will Do Distributed Computing Application Internet Impls

Slide 28

Closing Remarks Babel Beta 0.5 is discharged Babel empowers dialect interoperability associate C, C++, F77, and Python give a uniform question demonstrate, even in non-OO dialects. Conveying & Installing Language Interoperable Code in General is still hard has broken each device we utilize

Slide 29

The End Bill Bosl, Tammy Dahlgren, Tom Epperly, Scott Kohn, Gary Kumfert, & Steve Smith

Slide 30

A.3. Can HPC and Component Technology REALISTICALLY be integrated? Yes. Be that as it may, HPC Components have tremendous (and remarkable) obstacles: Diverse Architectures Diverse OS's Integration of SPMD and Dist. Comp. Ancient Pkg/Devel/Config/Build instruments Non-CS prepared (or intrigued) clients

Slide 31

B.3. Can the HPC people group truly afford yet another compiler, for example, Babel? Is dialect interoperability critical? How essential?

Slide 32

B.3. How is the Java subset of C++ inadequate as a HPC IDL? What is a "Java subset of C++" ? How can one utilize it to tie to different dialects? get a typical legacy demonstrate? get a typical special case display?

Slide 33

B.5. What is the part of conventional (parallel) tools in segment innovation? Ideally, they're supplanted by present day parallel devices.

Slide 34

B.9. What will be the arrangement issues for be versatile and high-execution? Parts. Absence of Configuration, Packaging, & Deployment apparatuses is the #1 Achilles heel for segments is the #1 everyday agony in Babel advancement #1 reason for disappointment in relapse tests

Slide 35

C.1. Will anybody really attempt to componentize their applications software? Yes. In any case, it will be chaotic. Endeavors to Babelize at LLNL: hypre - need OOP in ANSI C & programmed F77 ties ALPS - need scripting interface for laser plasma material science SAMRAI - structure utilized as a part of ALPS

Slide 36

D.4. Should segments be seen as mostly a library/runtime engineer technology? No. I utilized segments in this PowerPoint Presentation Users can utilize segments without knowing they're utilizing them. This is harder to accomplish in UNIX than different stages

Slide 37

23 Jul 2001 UCRL-PRES-144649 Work performed under the support of the U. S. Division of Energy by the University of California, Lawrence Livermore National Laboratory under Contract W-7405-Eng-48